diff --git a/addons/purchase_stock/models/purchase.py b/addons/purchase_stock/models/purchase.py index 1a3c4987b0c8c5b54e7cffd24ea5a88bde6f9e33..c6ebda9981121063ad4e699dd151e99433b7ca4f 100644 --- a/addons/purchase_stock/models/purchase.py +++ b/addons/purchase_stock/models/purchase.py @@ -340,6 +340,18 @@ class PurchaseOrderLine(models.Model): self.filtered(lambda l: l.order_id.state == 'purchase')._create_or_update_picking() return result + def unlink(self): + self.move_ids._action_cancel() + + ppg_cancel_lines = self.filtered(lambda line: line.propagate_cancel) + ppg_cancel_lines.move_dest_ids._action_cancel() + + not_ppg_cancel_lines = self.filtered(lambda line: not line.propagate_cancel) + not_ppg_cancel_lines.move_dest_ids.write({'procure_method': 'make_to_stock'}) + not_ppg_cancel_lines.move_dest_ids.recompute_state() + + return super().unlink() + # -------------------------------------------------- # Business methods # --------------------------------------------------