diff --git a/move.py b/move.py
index 8187158632..67e32635aa 100644
--- a/move.py
+++ b/move.py
@@ -18,9 +18,12 @@ class Move(OSV):
select=1, states=STATES,
on_change=['product', 'type', 'currency', 'uom', 'company'],
domain=[('type', '!=', 'service')])
- uom = fields.Many2One("product.uom", "Uom", required=True, states=STATES)
- quantity = fields.Float("Quantity", digits=(12, 6), required=True,
- states=STATES)
+ uom = fields.Many2One("product.uom", "Uom", required=True, states=STATES,
+ domain="[('category', '=', (product, 'product'))]")
+ unit_digits = fields.Function('get_unit_digits', type='integer',
+ string='Unit Digits', on_change_with=['uom'])
+ quantity = fields.Float("Quantity", required=True,
+ digits="(16, unit_digits)", states=STATES)
from_location = fields.Many2One("stock.location", "From Location", select=1,
required=True, states=STATES,
domain=[('type', '!=', 'warehouse')],
@@ -147,6 +150,21 @@ class Move(OSV):
res[move.id] = 'output'
return res
+ def on_change_with_unit_digits(self, cursor, user, ids, vals,
+ context=None):
+ uom_obj = self.pool.get('product.uom')
+ if vals.get('unit'):
+ uom = uom_obj.browse(cursor, user, vals['unit'],
+ context=context)
+ return uom.digits
+ return 2
+
+ def get_unit_digits(self, cursor, user, ids, name, arg, context=None):
+ res = {}
+ for move in self.browse(cursor, user, ids, context=context):
+ res[move.id] = move.uom.digits
+ return res
+
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')
@@ -160,6 +178,7 @@ class Move(OSV):
context=context)
res['uom'] = uom_obj.name_get(cursor, user,
product.default_uom.id, context=context)[0]
+ res['unit_digits'] = product.default_uom.digits
if vals.get('type', 'internal') == 'input':
unit_price = product.cost_price
if vals.get('uom') and vals['uom'] != product.default_uom.id:
diff --git a/move.xml b/move.xml
index 1bd8985d9f..28d695abbc 100644
--- a/move.xml
+++ b/move.xml
@@ -48,6 +48,7 @@
+
]]>
@@ -64,6 +65,7 @@
+
]]>
diff --git a/packing_out.odt b/packing_out.odt
index c9b55b4d46..faa0429460 100644
Binary files a/packing_out.odt and b/packing_out.odt differ