diff --git a/addons/mrp_byproduct/mrp_byproduct.py b/addons/mrp_byproduct/mrp_byproduct.py index 134f4ea4433..b94639733e5 100644 --- a/addons/mrp_byproduct/mrp_byproduct.py +++ b/addons/mrp_byproduct/mrp_byproduct.py @@ -87,18 +87,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,