From 767ae98db17d7210c51eae2c88eb6b747fcb4cf5 Mon Sep 17 00:00:00 2001 From: OriolMForgeFlow Date: Tue, 6 Jun 2023 09:48:00 +0200 Subject: [PATCH] [FIX] stock_request: set stock request order state to done when partially delivered --- stock_request/README.rst | 2 +- stock_request/models/stock_request_order.py | 4 +++- stock_request/readme/CONTRIBUTORS.rst | 1 + stock_request/tests/test_stock_request.py | 2 ++ 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/stock_request/README.rst b/stock_request/README.rst index 112193e02..1274f5e40 100644 --- a/stock_request/README.rst +++ b/stock_request/README.rst @@ -23,7 +23,7 @@ Stock Request :target: https://runbot.odoo-community.org/runbot/153/13.0 :alt: Try me on Runbot -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| This module was written to allow users to request products that are frequently stocked by the company, to be transferred to their chosen location. diff --git a/stock_request/models/stock_request_order.py b/stock_request/models/stock_request_order.py index 442e6e8a7..7c52eb127 100644 --- a/stock_request/models/stock_request_order.py +++ b/stock_request/models/stock_request_order.py @@ -243,7 +243,9 @@ class StockRequestOrder(models.Model): def check_done(self): for rec in self: - if not rec.stock_request_ids.filtered(lambda r: r.state != "done"): + if not rec.stock_request_ids.filtered( + lambda r: r.state not in ["done", "cancel"] + ): rec.action_done() return diff --git a/stock_request/readme/CONTRIBUTORS.rst b/stock_request/readme/CONTRIBUTORS.rst index 6ba1f8879..70404ed1d 100644 --- a/stock_request/readme/CONTRIBUTORS.rst +++ b/stock_request/readme/CONTRIBUTORS.rst @@ -10,3 +10,4 @@ * Steve Campbell * Héctor Villarreal +* Oriol Miranda diff --git a/stock_request/tests/test_stock_request.py b/stock_request/tests/test_stock_request.py index dabb20bb3..e8ec69b7b 100644 --- a/stock_request/tests/test_stock_request.py +++ b/stock_request/tests/test_stock_request.py @@ -1117,3 +1117,5 @@ class TestStockRequestBase(TestStockRequest): self.assertEqual(sr2.qty_cancelled, 4) self.assertEqual(sr3.state, "done") self.assertEqual(sr3.qty_cancelled, 5) + # Set the request order to done if there are any delivered lines + self.assertEqual(order.state, "done")