From e8bf35585a0955bd73d62c893311614216db5002 Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 3 Jun 2022 00:07:06 +1000 Subject: [PATCH] Ignore auto-creation of shipments under certain conditions (#3118) - Database is not ready - Data import is active Ref: https://github.com/inventree/demo-dataset/pull/23 --- InvenTree/order/models.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/InvenTree/order/models.py b/InvenTree/order/models.py index 25b4085381..e46c7a5339 100644 --- a/InvenTree/order/models.py +++ b/InvenTree/order/models.py @@ -26,6 +26,7 @@ from markdownx.models import MarkdownxField from mptt.models import TreeForeignKey import InvenTree.helpers +import InvenTree.ready from common.settings import currency_code_default from company.models import Company, SupplierPart from InvenTree.fields import InvenTreeModelMoneyField, RoundingDecimalField @@ -836,7 +837,19 @@ class SalesOrder(Order): @receiver(post_save, sender=SalesOrder, dispatch_uid='build_post_save_log') def after_save_sales_order(sender, instance: SalesOrder, created: bool, **kwargs): - """Callback function to be executed after a SalesOrder instance is saved.""" + """Callback function to be executed after a SalesOrder instance is saved. + + - If the SALESORDER_DEFAULT_SHIPMENT setting is enabled, create a default shipment + - Ignore if the database is not ready for access + - Ignore if data import is active + """ + + if not InvenTree.ready.canAppAccessDatabase(allow_test=True): + return + + if InvenTree.ready.isImportingData(): + return + if created and getSetting('SALESORDER_DEFAULT_SHIPMENT'): # A new SalesOrder has just been created