From f57f48100eb7aa8ff9e2aa06a8ca9c75a67b945e Mon Sep 17 00:00:00 2001 From: "Ravi Gohil (OpenERP)" <> Date: Fri, 23 Nov 2012 17:13:39 +0530 Subject: [PATCH] [FIX]mrp_byproduct: Fixed the UoM conversion issue between subproduct defined in BOM and UoM defined in manufacturing order bzr revid: mma@tinyerp.com-20121123114339-2ffxfzjn0aa5rfrh --- addons/mrp_byproduct/mrp_byproduct.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/addons/mrp_byproduct/mrp_byproduct.py b/addons/mrp_byproduct/mrp_byproduct.py index 9caf626834a..4b03c9a7d9d 100644 --- a/addons/mrp_byproduct/mrp_byproduct.py +++ b/addons/mrp_byproduct/mrp_byproduct.py @@ -86,18 +86,23 @@ class mrp_production(osv.osv): @return: Newly generated picking Id. """ picking_id = super(mrp_production,self).action_confirm(cr, uid, ids) + product_uom_obj = self.pool.get('product.uom') for production in self.browse(cr, uid, ids): source = production.product_id.product_tmpl_id.property_stock_production.id if not production.bom_id: continue for sub_product in production.bom_id.sub_products: + product_uom_factor = product_uom_obj._compute_qty(cr, uid, production.product_uom.id, production.product_qty, production.bom_id.product_uom.id) qty1 = sub_product.product_qty qty2 = production.product_uos and production.product_uos_qty or False + product_uos_factor = 0.0 + if qty2 and production.bom_id.product_uos.id: + product_uos_factor = product_uom_obj._compute_qty(cr, uid, production.product_uos.id, production.product_uos_qty, production.bom_id.product_uos.id) if sub_product.subproduct_type == 'variable': if production.product_qty: - qty1 *= production.product_qty / (production.bom_id.product_qty or 1.0) + qty1 *= product_uom_factor / (production.bom_id.product_qty or 1.0) if production.product_uos_qty: - qty2 *= production.product_uos_qty / (production.bom_id.product_uos_qty or 1.0) + qty2 *= product_uos_factor / (production.bom_id.product_uos_qty or 1.0) data = { 'name': 'PROD:'+production.name, 'date': production.date_planned,