From c7003fbed85c864177cd3472ac6b7e14e214b433 Mon Sep 17 00:00:00 2001 From: Maksim Stojkovic <18454392+maksimstojkovic@users.noreply.github.com> Date: Wed, 18 May 2022 22:01:47 +1000 Subject: [PATCH 1/6] Create a default shipment when creating SO --- InvenTree/templates/js/translated/order.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/InvenTree/templates/js/translated/order.js b/InvenTree/templates/js/translated/order.js index e2bee865fd..35bd791382 100644 --- a/InvenTree/templates/js/translated/order.js +++ b/InvenTree/templates/js/translated/order.js @@ -362,6 +362,17 @@ function createSalesOrder(options={}) { } }, onSuccess: function(data) { + inventreePut( + '{% url "api-so-shipment-list" %}', + { + order: data.pk, + reference: 1 + }, + { + method: 'POST' + } + ); + location.href = `/order/sales-order/${data.pk}/`; }, title: '{% trans "Create Sales Order" %}', From 9ae8a6b21925318fc525b0674b208e8afcd31a1a Mon Sep 17 00:00:00 2001 From: Maksim Stojkovic <18454392+maksimstojkovic@users.noreply.github.com> Date: Wed, 18 May 2022 23:43:06 +1000 Subject: [PATCH 2/6] Revert "Create a default shipment when creating SO" This reverts commit c7003fbed85c864177cd3472ac6b7e14e214b433. --- InvenTree/templates/js/translated/order.js | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/InvenTree/templates/js/translated/order.js b/InvenTree/templates/js/translated/order.js index 35bd791382..e2bee865fd 100644 --- a/InvenTree/templates/js/translated/order.js +++ b/InvenTree/templates/js/translated/order.js @@ -362,17 +362,6 @@ function createSalesOrder(options={}) { } }, onSuccess: function(data) { - inventreePut( - '{% url "api-so-shipment-list" %}', - { - order: data.pk, - reference: 1 - }, - { - method: 'POST' - } - ); - location.href = `/order/sales-order/${data.pk}/`; }, title: '{% trans "Create Sales Order" %}', From 2cf67ea0c977fdaae0b2cbd0eaec076e7585455f Mon Sep 17 00:00:00 2001 From: Maksim Stojkovic <18454392+maksimstojkovic@users.noreply.github.com> Date: Thu, 19 May 2022 00:10:55 +1000 Subject: [PATCH 3/6] Create default shipment in backend --- InvenTree/common/models.py | 7 +++++++ InvenTree/order/models.py | 16 ++++++++++++++++ InvenTree/templates/InvenTree/settings/so.html | 1 + 3 files changed, 24 insertions(+) diff --git a/InvenTree/common/models.py b/InvenTree/common/models.py index 83773fe48a..0ef766d19d 100644 --- a/InvenTree/common/models.py +++ b/InvenTree/common/models.py @@ -1111,6 +1111,13 @@ class InvenTreeSetting(BaseInvenTreeSetting): 'default': 'SO', }, + 'SALESORDER_DEFAULT_SHIPMENT': { + 'name': _('Sales Order Default Shipment'), + 'description': _('Enable creation of default shipment with sales orders'), + 'default': False, + 'validator': bool, + }, + 'PURCHASEORDER_REFERENCE_PREFIX': { 'name': _('Purchase Order Reference Prefix'), 'description': _('Prefix value for purchase order reference'), diff --git a/InvenTree/order/models.py b/InvenTree/order/models.py index 7460e81e56..58f4fd5c2f 100644 --- a/InvenTree/order/models.py +++ b/InvenTree/order/models.py @@ -12,6 +12,8 @@ from decimal import Decimal from django.db import models, transaction from django.db.models import Q, F, Sum from django.db.models.functions import Coalesce +from django.db.models.signals import post_save +from django.dispatch.dispatcher import receiver from django.core.validators import MinValueValidator from django.core.exceptions import ValidationError @@ -808,6 +810,20 @@ class SalesOrder(Order): def pending_shipment_count(self): return self.pending_shipments().count() +@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 + """ + if created and getSetting('SALESORDER_DEFAULT_SHIPMENT'): + # A new SalesOrder has just been created + + # Create default shipment + SalesOrderShipment.objects.create( + order=instance, + reference='1', + ) + class PurchaseOrderAttachment(InvenTreeAttachment): """ diff --git a/InvenTree/templates/InvenTree/settings/so.html b/InvenTree/templates/InvenTree/settings/so.html index e6fde3a093..ac84f5fa86 100644 --- a/InvenTree/templates/InvenTree/settings/so.html +++ b/InvenTree/templates/InvenTree/settings/so.html @@ -12,6 +12,7 @@