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 (