changeset cfadb18689ec in modules/production:default
details: 
https://hg.tryton.org/modules/production?cmd=changeset&node=cfadb18689ec
description:
        Provide digits from unit of measure

        issue10677
        review365801002
diffstat:

 bom.py        |  33 ++++-----------------------------
 production.py |  17 +++--------------
 2 files changed, 7 insertions(+), 43 deletions(-)

diffs (157 lines):

diff -r 21ca5ae2a3a1 -r cfadb18689ec bom.py
--- a/bom.py    Sun Jul 04 17:54:47 2021 +0200
+++ b/bom.py    Mon Aug 30 00:27:13 2021 +0200
@@ -54,15 +54,11 @@
         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 @@
             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 @@
         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 @@
     __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 @@
                 '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 @@
     '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 @@
         ], 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 @@
                 'quantity': quantity,
                 'uom': uom.id,
                 'uom.rec_name': uom.rec_name,
-                'unit_digits': uom.digits,
                 'childs': childs,
                 }]
         return {
@@ -256,10 +233,8 @@
         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 -r 21ca5ae2a3a1 -r cfadb18689ec production.py
--- a/production.py     Sun Jul 04 17:54:47 2021 +0200
+++ b/production.py     Mon Aug 30 00:27:13 2021 +0200
@@ -110,16 +110,13 @@
             '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 @@
             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 @@
         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()

Reply via email to