diff --git a/inventory.py b/inventory.py index ae77a51a45..2e8e724b10 100644 --- a/inventory.py +++ b/inventory.py @@ -144,12 +144,14 @@ class InventoryLine(OSV): _rec_name = 'product' product = fields.Many2One('product.product', 'Product', required=True, - domain=[('type', '=', 'stockable')]) + domain=[('type', '=', 'stockable')], on_change=['product']) uom = fields.Function('get_uom', type='many2one', relation='product.uom', - string='UOM', on_change_with=['product']) - expected_quantity = fields.Float('Expected Quantity', digits=(12, 6), - readonly=True) - quantity = fields.Float('Quantity', digits=(12, 6)) + string='UOM') + unit_digits = fields.Function('get_unit_digits', type='integer', + string='Unit Digits') + expected_quantity = fields.Float('Expected Quantity', + digits="(16, unit_digits)", readonly=True) + quantity = fields.Float('Quantity', digits="(16, unit_digits)") inventory = fields.Many2One('stock.inventory', 'Inventory') def __init__(self): @@ -161,15 +163,17 @@ class InventoryLine(OSV): 'Product must be unique by inventory!'), ] - def on_change_with_uom(self, cursor, user, ids, vals, context=None): + def on_change_product(self, cursor, user, ids, vals, context=None): product_obj = self.pool.get('product.product') uom_obj = self.pool.get('product.uom') + res = {} if vals.get('product'): product = product_obj.browse(cursor, user, vals['product'], context=context) - return uom_obj.name_get(cursor, user, product.default_uom.id, + res['uom'] = uom_obj.name_get(cursor, user, product.default_uom.id, context=context)[0] - return False + res['unit_digits'] = product.default_uom.digits + return res def get_uom(self, cursor, user, ids, name, arg, context=None): uom_obj = self.pool.get('product.uom') @@ -184,6 +188,12 @@ class InventoryLine(OSV): res[line_id] = uom2name[res[line_id]] return res + def get_unit_digits(self, cursor, user, ids, name, arg, context=None): + res = {} + for line in self.browse(cursor, user, ids, context=context): + res[line.id] = line.product.default_uom.digits + return res + InventoryLine() diff --git a/inventory.xml b/inventory.xml index 3d2ad1f4c8..804f9c3311 100644 --- a/inventory.xml +++ b/inventory.xml @@ -99,6 +99,7 @@