From 64dc5659bca0124a5578cd5efd2337c9c568c283 Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 11 Dec 2024 07:21:35 +1100 Subject: [PATCH] Add ITEM_RECEIVED event (#8651) * Add ITEM_RECEIVED event - Triggered when an item is recevied against a purchase order * Adjust unit test --- src/backend/InvenTree/order/events.py | 2 ++ src/backend/InvenTree/order/models.py | 4 ++++ src/backend/InvenTree/order/test_api.py | 3 ++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/backend/InvenTree/order/events.py b/src/backend/InvenTree/order/events.py index a1487409f4..0d67a3e11b 100644 --- a/src/backend/InvenTree/order/events.py +++ b/src/backend/InvenTree/order/events.py @@ -13,6 +13,8 @@ class PurchaseOrderEvents(BaseEventEnum): OVERDUE = 'order.overdue_purchase_order' + ITEM_RECEIVED = 'purchaseorderitem.received' + class SalesOrderEvents(BaseEventEnum): """Event enumeration for the SalesOrder models.""" diff --git a/src/backend/InvenTree/order/models.py b/src/backend/InvenTree/order/models.py index 82c551eeea..91a926cb6d 100644 --- a/src/backend/InvenTree/order/models.py +++ b/src/backend/InvenTree/order/models.py @@ -883,6 +883,10 @@ class PurchaseOrder(TotalPriceMixin, Order): quantity=float(quantity), ) + trigger_event( + PurchaseOrderEvents.ITEM_RECEIVED, order_id=self.pk, item_id=self.pk + ) + # Update the number of parts received against the particular line item # Note that this quantity does *not* take the pack_quantity into account, it is "number of packs" line.received += quantity diff --git a/src/backend/InvenTree/order/test_api.py b/src/backend/InvenTree/order/test_api.py index 722c582965..2ace5cecb0 100644 --- a/src/backend/InvenTree/order/test_api.py +++ b/src/backend/InvenTree/order/test_api.py @@ -1168,7 +1168,8 @@ class PurchaseOrderReceiveTest(OrderTest): n = StockItem.objects.count() - self.post(self.url, data, expected_code=201, max_query_count=400) + # TODO: 2024-12-10 - This API query needs to be refactored! + self.post(self.url, data, expected_code=201, max_query_count=500) # Check that the expected number of stock items has been created self.assertEqual(n + 11, StockItem.objects.count())