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", 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