From 576bef5d8224c16e94a8e7c0b909f1467b1aef71 Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 16 Jan 2024 00:51:03 +1100 Subject: [PATCH] Add new setting PURCHASEORDER_AUTO_COMPLETE (#6245) * Add new setting PURCHASEORDER_AUTO_COMPLETE - Controls whether purchase orders are automatically closed - Default to True * Tweak setting component --- InvenTree/common/models.py | 8 ++++++++ InvenTree/order/models.py | 7 +++++-- InvenTree/templates/InvenTree/settings/po.html | 1 + src/frontend/src/components/settings/SettingItem.tsx | 4 ++-- src/frontend/src/pages/Index/Settings/SystemSettings.tsx | 3 ++- 5 files changed, 18 insertions(+), 5 deletions(-) diff --git a/InvenTree/common/models.py b/InvenTree/common/models.py index 33274dd3ac..8bb855084e 100644 --- a/InvenTree/common/models.py +++ b/InvenTree/common/models.py @@ -1752,6 +1752,14 @@ class InvenTreeSetting(BaseInvenTreeSetting): 'default': False, 'validator': bool, }, + 'PURCHASEORDER_AUTO_COMPLETE': { + 'name': _('Auto Complete Purchase Orders'), + 'description': _( + 'Automatically mark purchase orders as complete when all line items are received' + ), + 'default': True, + 'validator': bool, + }, # login / SSO 'LOGIN_ENABLE_PWD_FORGOT': { 'name': _('Enable password forgot'), diff --git a/InvenTree/order/models.py b/InvenTree/order/models.py index 8f71ff1f0f..56c19ceafe 100644 --- a/InvenTree/order/models.py +++ b/InvenTree/order/models.py @@ -779,8 +779,11 @@ class PurchaseOrder(TotalPriceMixin, Order): # Has this order been completed? if len(self.pending_line_items()) == 0: - self.received_by = user - self.complete_order() # This will save the model + if common_models.InvenTreeSetting.get_setting( + 'PURCHASEORDER_AUTO_COMPLETE', True + ): + self.received_by = user + self.complete_order() # This will save the model # Issue a notification to interested parties, that this order has been "updated" notify_responsible( diff --git a/InvenTree/templates/InvenTree/settings/po.html b/InvenTree/templates/InvenTree/settings/po.html index aaaba2bd06..4571df5091 100644 --- a/InvenTree/templates/InvenTree/settings/po.html +++ b/InvenTree/templates/InvenTree/settings/po.html @@ -12,6 +12,7 @@ {% include "InvenTree/settings/setting.html" with key="PURCHASEORDER_REFERENCE_PATTERN" %} {% include "InvenTree/settings/setting.html" with key="PURCHASEORDER_EDIT_COMPLETED_ORDERS" icon='fa-edit' %} + {% include "InvenTree/settings/setting.html" with key="PURCHASEORDER_AUTO_COMPLETE" icon='fa-check-circle' %} {% endblock content %} diff --git a/src/frontend/src/components/settings/SettingItem.tsx b/src/frontend/src/components/settings/SettingItem.tsx index 0e15fb2bff..4fce3cc145 100644 --- a/src/frontend/src/components/settings/SettingItem.tsx +++ b/src/frontend/src/components/settings/SettingItem.tsx @@ -172,8 +172,8 @@ export function SettingItem({ return ( - - + + {setting.name} {setting.description} diff --git a/src/frontend/src/pages/Index/Settings/SystemSettings.tsx b/src/frontend/src/pages/Index/Settings/SystemSettings.tsx index 1933471b34..8a2f163fb3 100644 --- a/src/frontend/src/pages/Index/Settings/SystemSettings.tsx +++ b/src/frontend/src/pages/Index/Settings/SystemSettings.tsx @@ -238,7 +238,8 @@ export default function SystemSettings() { )