From b519f15a0564b7e491800c0ba5d3c8853dcc4e91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Wed, 10 Sep 2025 09:50:17 +0200 Subject: [PATCH] Allow cancellation of done drop shipments Same as 0d599a48d351 but for drop shipment. Closes #14223 --- modules/sale_supply_drop_shipment/CHANGELOG | 1 + modules/sale_supply_drop_shipment/stock.py | 12 ++++-------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/modules/sale_supply_drop_shipment/CHANGELOG b/modules/sale_supply_drop_shipment/CHANGELOG index 5e3c5930c0..cfd4ef0c07 100644 --- a/modules/sale_supply_drop_shipment/CHANGELOG +++ b/modules/sale_supply_drop_shipment/CHANGELOG @@ -1,3 +1,4 @@ +* Allow cancellation of done drop shipments Version 7.6.0 - 2025-04-28 -------------------------- diff --git a/modules/sale_supply_drop_shipment/stock.py b/modules/sale_supply_drop_shipment/stock.py index 3a605523e8..c171e10b27 100644 --- a/modules/sale_supply_drop_shipment/stock.py +++ b/modules/sale_supply_drop_shipment/stock.py @@ -165,6 +165,7 @@ class ShipmentDrop( ('cancelled', 'draft'), ('shipped', 'done'), ('shipped', 'cancelled'), + ('done', 'cancelled'), )) cls._buttons.update({ 'cancel': { @@ -274,14 +275,9 @@ class ShipmentDrop( @process_purchase('supplier_moves') def cancel(cls, shipments): Move = Pool().get('stock.move') - Move.cancel([m for s in shipments for m in s.supplier_moves]) - Move.cancel([m for s in shipments for m in s.customer_moves - if s.state == 'shipped']) - Move.write([m for s in shipments for m in s.customer_moves - if s.state != 'shipped'], { - 'shipment': None, - 'origin_drop': None, - }) + Move.cancel([ + m for s in shipments + for m in s.supplier_moves + s.customer_moves]) @classmethod @ModelView.button