From 2be3fbdc9dcd1308f4c22f6155bc6d2bdf4393e7 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 | 3 ++- stock_request/models/stock_request_order.py | 4 +++- stock_request/tests/test_stock_request.py | 2 ++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/stock_request/README.rst b/stock_request/README.rst index 5ebd2303e..33a076e2e 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/14.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. @@ -117,6 +117,7 @@ Contributors * Héctor Villarreal * Kitti U. +* Oriol Miranda Maintainers ~~~~~~~~~~~ diff --git a/stock_request/models/stock_request_order.py b/stock_request/models/stock_request_order.py index 52f3f0a84..b2a4b87ce 100644 --- a/stock_request/models/stock_request_order.py +++ b/stock_request/models/stock_request_order.py @@ -245,7 +245,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/tests/test_stock_request.py b/stock_request/tests/test_stock_request.py index d72110418..153162eaf 100644 --- a/stock_request/tests/test_stock_request.py +++ b/stock_request/tests/test_stock_request.py @@ -1072,3 +1072,5 @@ class TestStockRequestBase(TestStockRequest): self.assertEqual(sr3.state, "cancel") self.assertEqual(sr3.qty_done, 0) self.assertEqual(sr3.qty_cancelled, 5) + # Set the request order to done if there are any delivered lines + self.assertEqual(order.state, "done")