Provide digits from unit of measure
issue10677 review365801002
This commit is contained in:
1 parent
95553fb9ce
commit
d7c2f5df1a
2 files changed
+7
-43
No files matched your search
@@ -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
|
||||
|
||||
+3
-14
@@ -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()
|
||||
|
||||
Reference in new issue
Block a user