diff --git a/addons/mrp/models/product.py b/addons/mrp/models/product.py index 18f93a6050f..b6a221815b9 100644 --- a/addons/mrp/models/product.py +++ b/addons/mrp/models/product.py @@ -240,11 +240,11 @@ class ProductProduct(models.Model): ratios_free_qty.append(component_res["free_qty"] / qty_per_kit) if bom_sub_lines and ratios_virtual_available: # Guard against all cnsumable bom: at least one ratio should be present. res[product.id] = { - 'virtual_available': min(ratios_virtual_available) // 1, - 'qty_available': min(ratios_qty_available) // 1, - 'incoming_qty': min(ratios_incoming_qty) // 1, - 'outgoing_qty': min(ratios_outgoing_qty) // 1, - 'free_qty': min(ratios_free_qty) // 1, + 'virtual_available': min(ratios_virtual_available) * bom_kits[product].product_qty // 1, + 'qty_available': min(ratios_qty_available) * bom_kits[product].product_qty // 1, + 'incoming_qty': min(ratios_incoming_qty) * bom_kits[product].product_qty // 1, + 'outgoing_qty': min(ratios_outgoing_qty) * bom_kits[product].product_qty // 1, + 'free_qty': min(ratios_free_qty) * bom_kits[product].product_qty // 1, } else: res[product.id] = { diff --git a/addons/mrp/tests/test_bom.py b/addons/mrp/tests/test_bom.py index 49c80b93109..317fe8c05f1 100644 --- a/addons/mrp/tests/test_bom.py +++ b/addons/mrp/tests/test_bom.py @@ -366,7 +366,7 @@ class TestBoM(TestMrpCommon): # ending the recurse call to not call the compute method and just left the Falsy value `0.0` # for the components available qty. kit_product_qty, _, _ = (self.product_7_3 + self.product_2 + self.product_3).mapped("qty_available") - self.assertEqual(kit_product_qty, 2) + self.assertEqual(kit_product_qty, 8) def test_14_bom_kit_qty_multi_uom(self): uom_dozens = self.env.ref('uom.product_uom_dozen')