From 30096e8a14e8f02cecf6352f720f857112865f90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Hellinckx?= <jehe@odoo.com> Date: Thu, 16 Sep 2021 13:32:52 +0000 Subject: [PATCH] [FIX] purchase_stock: avoid PO exception propagation to DONE receipts on less received quants Before this commit: 1. Create PO with quantity 10, confirm (creates receipt-1) 2. Receive 2 quantities on first receipt (receipt-1), backorder (receipt-1 is 'done', creates receipt-2) 3. Receive 3 quantities on second receipt (receipt-2), backorder (receipt-2 is 'done', creates receipt-3) 4. Change quantity to 5 in PO 5. An exception is created on all receipts (1, 2 and 3) In the scenario above, receipt-1 and receipt-2 are partial receipts that are set to 'done'. It is not necessary to create an exception in these receipts when the quantity is changed to less than originally expected in the PO. Since the system checks that the new quantity has to be equal or greater than the received quantities, the already received quantities cannot be impacted. After this commit: The exception is only propagated to the receipts that are not done. e.g. in the example above, an exception appears only in receipt-3. task-2648209 resolves #76297 closes odoo/odoo#106597 X-original-commit: d6fad232c3dd4a4f7cd54bd255b75314d54ed065 Signed-off-by: William Henrotin (whe) <whe@odoo.com> --- addons/purchase_stock/models/purchase.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/purchase_stock/models/purchase.py b/addons/purchase_stock/models/purchase.py index cb2ff0f5a4f1..ae2d15bd09f3 100644 --- a/addons/purchase_stock/models/purchase.py +++ b/addons/purchase_stock/models/purchase.py @@ -179,7 +179,7 @@ class PurchaseOrder(models.Model): filtered_documents = {} for (parent, responsible), rendering_context in documents.items(): if parent._name == 'stock.picking': - if parent.state == 'cancel': + if parent.state in ['cancel', 'done']: continue filtered_documents[(parent, responsible)] = rendering_context self.env['stock.picking']._log_activity(_render_note_exception_quantity_po, filtered_documents) -- GitLab