From 1ebfda57b49dd62f2ca931d615cd52d987d74890 Mon Sep 17 00:00:00 2001 From: Jordi Ballester Date: Wed, 10 Nov 2021 13:50:17 +0100 Subject: [PATCH 1/2] [mrp_multi_level][fix] allow to procure from planned orders --- mrp_multi_level/wizards/mrp_inventory_procure.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/mrp_multi_level/wizards/mrp_inventory_procure.py b/mrp_multi_level/wizards/mrp_inventory_procure.py index 45f69ca1f..ca84349ed 100644 --- a/mrp_multi_level/wizards/mrp_inventory_procure.py +++ b/mrp_multi_level/wizards/mrp_inventory_procure.py @@ -51,14 +51,20 @@ class MrpInventoryProcure(models.TransientModel): active_model = self.env.context["active_model"] if not active_ids or "item_ids" not in fields: return res + items = item_obj = self.env["mrp.inventory.procure.item"] if active_model == "mrp.inventory": - items = item_obj = self.env["mrp.inventory.procure.item"] - mrp_inventory_obj = self.env["mrp.inventory"] + mrp_inventory_obj = self.env[active_model] for line in mrp_inventory_obj.browse(active_ids).mapped( "planned_order_ids" ): if line.qty_released < line.mrp_qty: items += item_obj.create(self._prepare_item(line)) + elif active_model == "mrp.planned.order": + mrp_planned_order_obj = self.env[active_model] + for line in mrp_planned_order_obj.browse(active_ids): + if line.qty_released < line.mrp_qty: + items += item_obj.create(self._prepare_item(line)) + if items: res["item_ids"] = [(6, 0, items.ids)] return res From ff4a67d60d35ab73f0aefb3f95ece73932a45232 Mon Sep 17 00:00:00 2001 From: Jordi Ballester Date: Wed, 10 Nov 2021 22:38:09 +0100 Subject: [PATCH 2/2] [FIX] mrp_multi_level: allow to delete product.mrp.area records Planned orders and mrp moves are mostly data that is regenerated every time that the multi level mrp is run. --- mrp_multi_level/models/mrp_inventory.py | 1 + mrp_multi_level/models/mrp_move.py | 1 + mrp_multi_level/models/mrp_planned_order.py | 1 + 3 files changed, 3 insertions(+) diff --git a/mrp_multi_level/models/mrp_inventory.py b/mrp_multi_level/models/mrp_inventory.py index 82107739d..8ba9d26c4 100644 --- a/mrp_multi_level/models/mrp_inventory.py +++ b/mrp_multi_level/models/mrp_inventory.py @@ -30,6 +30,7 @@ class MrpInventory(models.Model): string="Product Parameters", index=True, required=True, + ondelete="cascade", ) company_id = fields.Many2one( comodel_name="res.company", diff --git a/mrp_multi_level/models/mrp_move.py b/mrp_multi_level/models/mrp_move.py index d2ea26196..0345e9280 100644 --- a/mrp_multi_level/models/mrp_move.py +++ b/mrp_multi_level/models/mrp_move.py @@ -17,6 +17,7 @@ class MrpMove(models.Model): string="Product MRP Area", index=True, required=True, + ondelete="cascade", ) mrp_area_id = fields.Many2one( comodel_name="mrp.area", diff --git a/mrp_multi_level/models/mrp_planned_order.py b/mrp_multi_level/models/mrp_planned_order.py index a8b8bde8b..2685f53e2 100644 --- a/mrp_multi_level/models/mrp_planned_order.py +++ b/mrp_multi_level/models/mrp_planned_order.py @@ -17,6 +17,7 @@ class MrpPlannedOrder(models.Model): string="Product MRP Area", index=True, required=True, + ondelete="cascade", ) mrp_area_id = fields.Many2one( comodel_name="mrp.area",