From 5c37a45bec7987ef3cda89e2d5b8293b79377370 Mon Sep 17 00:00:00 2001 From: Atul Patel Date: Tue, 30 May 2023 12:49:01 +0000 Subject: [PATCH] [FIX] mrp: fix bom multi-company issue on this case: 1. Reorderning rule with company 1 and related product and product template is shared mean no company selected and related product template contain multiple bom with different company. so using this line bom = (product.variant_bom_ids or product.bom_ids)[:1] from this : `product.bom_ids` as product is inherits by template, it's tried to read all the bom of different company and different variant too for same template. and that will raise multi-company issue. so I think that should be same company as related stock rules company. see : https://github.com/odoo/odoo/commit/6825c440d54e38ebee13a5c184aec1a40586de0d this was generated during upgrade database. closes odoo/odoo#125571 X-original-commit: 4edab52bdba2bb53345506a3d83f42bfdccfcd8a Signed-off-by: Arnold Moyaux (arm) --- addons/mrp/models/stock_rule.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/mrp/models/stock_rule.py b/addons/mrp/models/stock_rule.py index bb0f38cc81c..b7d08e9568e 100644 --- a/addons/mrp/models/stock_rule.py +++ b/addons/mrp/models/stock_rule.py @@ -198,7 +198,7 @@ class StockRule(models.Model): if not manufacture_rule: return delay, delay_description manufacture_rule.ensure_one() - bom = values.get('bom') or (product.variant_bom_ids or product.bom_ids)[:1] + bom = values.get('bom') or self.env['mrp.bom']._bom_find(product, picking_type=manufacture_rule.picking_type_id, company_id=manufacture_rule.company_id.id)[product] manufacture_delay = bom.produce_delay delay += manufacture_delay if not bypass_delay_description: