From d7c2f5df1ab57a7fcde089bfdd9584b463d48b47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Mon, 30 Aug 2021 00:27:13 +0200 Subject: [PATCH] Provide digits from unit of measure issue10677 review365801002 --- bom.py | 33 ++++----------------------------- production.py | 17 +++-------------- 2 files changed, 7 insertions(+), 43 deletions(-) diff --git a/bom.py b/bom.py index 3f9c369de9..5c816b8e92 100644 --- a/bom.py +++ b/bom.py @@ -54,15 +54,11 @@ class BOMInput(ModelSQL, ModelView): domain=[ ('category', '=', Eval('uom_category')), ], depends=['uom_category']) - unit_digits = fields.Function(fields.Integer('Unit Digits'), - 'on_change_with_unit_digits') - quantity = fields.Float('Quantity', required=True, + quantity = fields.Float('Quantity', digits='uom', required=True, domain=['OR', ('quantity', '>=', 0), ('quantity', '=', None), - ], - digits=(16, Eval('unit_digits', 2)), - depends=['unit_digits']) + ]) @classmethod def __setup__(cls): @@ -88,7 +84,6 @@ class BOMInput(ModelSQL, ModelView): category = self.product.default_uom.category if not self.uom or self.uom.category != category: self.uom = self.product.default_uom - self.unit_digits = self.product.default_uom.digits else: self.uom = None @@ -97,12 +92,6 @@ class BOMInput(ModelSQL, ModelView): if self.product: return self.product.default_uom.category.id - @fields.depends('uom') - def on_change_with_unit_digits(self, name=None): - if self.uom: - return self.uom.digits - return 2 - def get_rec_name(self, name): return self.product.rec_name @@ -149,10 +138,8 @@ class BOMTree(ModelView): __name__ = 'production.bom.tree' product = fields.Many2One('product.product', 'Product') - quantity = fields.Float('Quantity', digits=(16, Eval('unit_digits', 2)), - depends=['unit_digits']) + quantity = fields.Float('Quantity', digits='uom') uom = fields.Many2One('product.uom', 'Uom') - unit_digits = fields.Integer('Unit Digits') childs = fields.One2Many('production.bom.tree', None, 'Childs') @classmethod @@ -175,7 +162,6 @@ class BOMTree(ModelView): 'quantity': quantity, 'uom': input_.uom.id, 'uom.rec_name': input_.uom.rec_name, - 'unit_digits': input_.uom.digits, 'childs': childs, } result.append(values) @@ -186,13 +172,11 @@ class OpenBOMTreeStart(ModelView): 'Open BOM Tree' __name__ = 'production.bom.tree.open.start' - quantity = fields.Float('Quantity', required=True, - digits=(16, Eval('unit_digits', 2)), depends=['unit_digits']) + quantity = fields.Float('Quantity', digits='uom', required=True) uom = fields.Many2One('product.uom', 'Unit', required=True, domain=[ ('category', '=', Eval('category')), ], depends=['category']) - unit_digits = fields.Integer('Unit Digits', readonly=True) category = fields.Many2One('product.uom.category', 'Category', readonly=True) bom = fields.Many2One('product.product-production.bom', @@ -201,12 +185,6 @@ class OpenBOMTreeStart(ModelView): ], depends=['product']) product = fields.Many2One('product.product', 'Product', readonly=True) - @fields.depends('uom') - def on_change_with_unit_digits(self): - if self.uom: - return self.uom.digits - return 2 - class OpenBOMTreeTree(ModelView): 'Open BOM Tree' @@ -227,7 +205,6 @@ class OpenBOMTreeTree(ModelView): 'quantity': quantity, 'uom': uom.id, 'uom.rec_name': uom.rec_name, - 'unit_digits': uom.digits, 'childs': childs, }] return { @@ -256,10 +233,8 @@ class OpenBOMTree(Wizard): defaults['category'] = product.default_uom.category.id if getattr(self.start, 'uom', None): defaults['uom'] = self.start.uom.id - defaults['unit_digits'] = self.start.unit_digits else: defaults['uom'] = product.default_uom.id - defaults['unit_digits'] = product.default_uom.digits defaults['product'] = product.id if getattr(self.start, 'bom', None): defaults['bom'] = self.start.bom.id diff --git a/production.py b/production.py index 6f660b1a79..792ad30242 100644 --- a/production.py +++ b/production.py @@ -110,16 +110,13 @@ class Production(ShipmentAssignMixin, Workflow, ModelSQL, ModelView): 'invisible': ~Eval('product'), }, depends=['uom_category']) - unit_digits = fields.Function(fields.Integer('Unit Digits'), - 'on_change_with_unit_digits') - quantity = fields.Float('Quantity', - digits=(16, Eval('unit_digits', 2)), + quantity = fields.Float( + "Quantity", digits='uom', states={ 'readonly': ~Eval('state').in_(['request', 'draft']), 'required': Bool(Eval('bom')), 'invisible': ~Eval('product'), - }, - depends=['unit_digits']) + }) cost = fields.Function(fields.Numeric('Cost', digits=price_digits, readonly=True), 'get_cost') inputs = fields.One2Many('stock.move', 'production_input', 'Inputs', @@ -418,11 +415,9 @@ class Production(ShipmentAssignMixin, Workflow, ModelSQL, ModelView): category = self.product.default_uom.category if not self.uom or self.uom.category != category: self.uom = self.product.default_uom - self.unit_digits = self.product.default_uom.digits else: self.bom = None self.uom = None - self.unit_digits = 2 self.explode_bom() @fields.depends('product') @@ -430,12 +425,6 @@ class Production(ShipmentAssignMixin, Workflow, ModelSQL, ModelView): if self.product: return self.product.default_uom.category.id - @fields.depends('uom') - def on_change_with_unit_digits(self, name=None): - if self.uom: - return self.uom.digits - return 2 - @fields.depends(methods=['explode_bom']) def on_change_bom(self): self.explode_bom()