From f99ddfe483e4fdc546a77dcc8622ed0aac7ad3c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=B6ftner?= Date: Mon, 10 Dec 2012 00:19:32 +0100 Subject: [PATCH] proper rounding for unit_price in Production.set_moves review600003 issue2904 (transplanted from 7191832dfd42adc565d3f28b64793b2b7beb9e41) --- production.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/production.py b/production.py index 55a3c638a5..d35524ff25 100644 --- a/production.py +++ b/production.py @@ -445,6 +445,8 @@ class Production(Workflow, ModelSQL, ModelView): move_obj = pool.get('stock.move') input_obj = pool.get('production.bom.input') output_obj = pool.get('production.bom.output') + template_obj = pool.get('product.template') + product_obj = pool.get('product.product') storage_location = production.warehouse.storage_location location = production.location @@ -475,6 +477,11 @@ class Production(Workflow, ModelSQL, ModelView): move_obj.create(values) cost += Decimal(str(quantity)) * product.cost_price + if hasatttr(product_obj, 'cost_price'): + digits = product_obj.cost_price.digits + else: + digits = template_obj.cost_price.digits + for output in production.bom.outputs: quantity = output_obj.compute_quantity(output, factor) product = output.product @@ -483,7 +490,9 @@ class Production(Workflow, ModelSQL, ModelView): if values: values['production_output'] = production.id if product == production.product: - values['unit_price'] = cost / Decimal(str(quantity)) + values['unit_price'] = Decimal( + cost / Decimal(str(quantity)) + ).quantize(Decimal(str(10 ** -digits[1]))) move_obj.create(values) self._set_move_planned_date([production.id])