Remove Weight UoM Digits on carrier price list

This commit is contained in:
Cédric Krier
2023-08-20 12:50:27 +02:00
parent 2df68915d8
commit 270ee0f8cb
2 changed files with 11 additions and 17 deletions
+10 -14
View File
@@ -20,8 +20,6 @@ class Carrier(metaclass=PoolMeta):
'readonly': Bool(Eval('weight_price_list', [])),
},
help="The Unit of Measure of weight criteria for the price list.")
weight_uom_digits = fields.Function(fields.Integer("Weight UoM Digits"),
'on_change_with_weight_uom_digits')
weight_currency = fields.Many2One('currency.currency', 'Currency',
states={
'invisible': Eval('carrier_cost_method') != 'weight',
@@ -46,16 +44,6 @@ class Carrier(metaclass=PoolMeta):
if selection not in cls.carrier_cost_method.selection:
cls.carrier_cost_method.selection.append(selection)
@staticmethod
def default_weight_uom_digits():
return 2
@fields.depends('weight_uom')
def on_change_with_weight_uom_digits(self, name=None):
if self.weight_uom:
return self.weight_uom.digits
return 2
def compute_weight_price(self, weight):
"Compute price based on weight"
for line in reversed(self.weight_price_list):
@@ -94,8 +82,8 @@ class WeightPriceList(ModelSQL, ModelView):
carrier = fields.Many2One(
'carrier', "Carrier", required=True,
help="The carrier that the price list belongs to.")
weight = fields.Float('Weight',
digits=(16, Eval('_parent_carrier', {}).get('weight_uom_digits', 2)),
weight = fields.Float(
"Weight", digits='weight_uom',
domain=[
('weight', '>=', 0),
],
@@ -108,6 +96,10 @@ class WeightPriceList(ModelSQL, ModelView):
currency = fields.Function(fields.Many2One(
'currency.currency', "Currency"),
'on_change_with_currency')
weight_uom = fields.Function(fields.Many2One(
'product.uom', "Weight UoM",
help="The Unit of Measure of the weight."),
'on_change_with_weight_uom')
@classmethod
def __setup__(cls):
@@ -117,3 +109,7 @@ class WeightPriceList(ModelSQL, ModelView):
@fields.depends('carrier', '_parent_carrier.weight_currency')
def on_change_with_currency(self, name=None):
return self.carrier.weight_currency if self.carrier else None
@fields.depends('carrier', '_parent_carrier.weight_uom')
def on_change_with_weight_uom(self, name=None):
return self.carrier.weight_uom if self.carrier else None
@@ -95,7 +95,6 @@ Create product::
Create carrier::
>>> Carrier = Model.get('carrier')
>>> WeightPriceList = Model.get('carrier.weight_price_list')
>>> kilogram, = ProductUom.find([('name', '=', 'Kilogram')])
>>> carrier = Carrier()
>>> party = Party(name='Carrier')
@@ -110,8 +109,7 @@ Create carrier::
... (1, Decimal(40)),
... (5, Decimal(180)),
... ):
... line = WeightPriceList(weight=weight, price=price)
... carrier.weight_price_list.append(line)
... line = carrier.weight_price_list.new(weight=weight, price=price)
>>> carrier.save()
Receive a single product line::