From db128f93221c1715b921960f0bf6b870dcec9edf Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 28 Nov 2024 15:48:06 +1100 Subject: [PATCH] Bug fix: record shipment date (#8580) * Bug fix: record shipment date - Ref: https://github.com/inventree/InvenTree/pull/6449 * Update unit test --- 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 9eeeec0aff..6eaf37b1c2 100644 --- a/src/backend/InvenTree/order/models.py +++ b/src/backend/InvenTree/order/models.py @@ -1176,6 +1176,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 7de88dcf95..3d43484a55 100644 --- a/src/backend/InvenTree/order/test_api.py +++ b/src/backend/InvenTree/order/test_api.py @@ -1633,6 +1633,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" @@ -1648,9 +1650,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) @@ -1660,6 +1667,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."""