From d0b87a1a12e0d582ce1fb26c061dd98aeea95a59 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 28 Nov 2024 16:00:00 +1100 Subject: [PATCH] Bug fix: record shipment date (#8580) (#8581) * Bug fix: record shipment date - Ref: https://github.com/inventree/InvenTree/pull/6449 * Update unit test (cherry picked from commit db128f93221c1715b921960f0bf6b870dcec9edf) Co-authored-by: Oliver --- src/backend/InvenTree/order/models.py | 2 ++ src/backend/InvenTree/order/test_api.py | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/src/backend/InvenTree/order/models.py b/src/backend/InvenTree/order/models.py index 54e9aa422a..456e70404c 100644 --- a/src/backend/InvenTree/order/models.py +++ b/src/backend/InvenTree/order/models.py @@ -1098,6 +1098,8 @@ class SalesOrder(TotalPriceMixin, Order): self.status = SalesOrderStatus.COMPLETE.value else: self.status = SalesOrderStatus.SHIPPED.value + + if self.shipment_date is None: self.shipped_by = user self.shipment_date = InvenTree.helpers.current_date() diff --git a/src/backend/InvenTree/order/test_api.py b/src/backend/InvenTree/order/test_api.py index 4d8a78de8a..7c77e9076a 100644 --- a/src/backend/InvenTree/order/test_api.py +++ b/src/backend/InvenTree/order/test_api.py @@ -1576,6 +1576,8 @@ class SalesOrderTest(OrderTest): so.refresh_from_db() self.assertEqual(so.status, SalesOrderStatus.SHIPPED.value) + self.assertIsNotNone(so.shipment_date) + self.assertIsNotNone(so.shipped_by) # Now, let's try to "complete" the shipment again # This time it should get marked as "COMPLETE" @@ -1591,9 +1593,14 @@ class SalesOrderTest(OrderTest): # Next, we'll change the setting so that the order status jumps straight to "complete" so.status = SalesOrderStatus.PENDING.value + so.shipment_date = None + so.shipped_by = None so.save() so.refresh_from_db() + self.assertEqual(so.status, SalesOrderStatus.PENDING.value) + self.assertIsNone(so.shipped_by) + self.assertIsNone(so.shipment_date) InvenTreeSetting.set_setting('SALESORDER_SHIP_COMPLETE', True) @@ -1603,6 +1610,9 @@ class SalesOrderTest(OrderTest): so.refresh_from_db() self.assertEqual(so.status, SalesOrderStatus.COMPLETE.value) + self.assertIsNotNone(so.shipment_date) + self.assertIsNotNone(so.shipped_by) + class SalesOrderLineItemTest(OrderTest): """Tests for the SalesOrderLineItem API."""