diff --git a/addons/mrp/models/stock_move.py b/addons/mrp/models/stock_move.py index b3b4fb4cd85..d310ad45e52 100644 --- a/addons/mrp/models/stock_move.py +++ b/addons/mrp/models/stock_move.py @@ -545,6 +545,7 @@ class StockMove(models.Model): :return: The quantity delivered or received """ qty_ratios = [] + kit_qty = kit_qty / kit_bom.product_qty boms, bom_sub_lines = kit_bom.explode(product_id, kit_qty) for bom_line, bom_line_data in bom_sub_lines: # skip service since we never deliver them @@ -559,8 +560,8 @@ class StockMove(models.Model): # We compute the quantities needed of each components to make one kit. # Then, we collect every relevant moves related to a specific component # to know how many are considered delivered. - uom_qty_per_kit = bom_line_data['qty'] / bom_line_data['original_qty'] - qty_per_kit = bom_line.product_uom_id._compute_quantity(uom_qty_per_kit, bom_line.product_id.uom_id, round=False) + uom_qty_per_kit = bom_line_data['qty'] / (bom_line_data['original_qty']) + qty_per_kit = bom_line.product_uom_id._compute_quantity(uom_qty_per_kit / kit_bom.product_qty, bom_line.product_id.uom_id, round=False) if not qty_per_kit: continue incoming_moves = bom_line_moves.filtered(filters['incoming_moves'])