From c347f679d6a635428b12ffa04b5e16b4f2d3d78f Mon Sep 17 00:00:00 2001
From: Donatas <donatas@vialaurea.lt>
Date: Tue, 4 May 2021 09:44:19 +0000
Subject: [PATCH] [FIX] purchase_stock: PO line related stock moves getting
 stuck

When purchase order line is removed, related stock moves procure method stays as "Advanced" which doesn't allow reservation from stock

closes odoo/odoo#70643

X-original-commit: a474108d0d7ea70506e8871d3fd226e2a7b5f36c
Signed-off-by: William Henrotin <Whenrow@users.noreply.github.com>
---
 addons/purchase_stock/models/purchase.py | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/addons/purchase_stock/models/purchase.py b/addons/purchase_stock/models/purchase.py
index 1a3c4987b0c8..c6ebda998112 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
     # --------------------------------------------------
-- 
GitLab