From 557aa449049db348ff2a21269698d67d5b2e2470 Mon Sep 17 00:00:00 2001 From: Oliver <oliver.henry.walters@gmail.com> Date: Mon, 28 Feb 2022 14:26:01 +1100 Subject: [PATCH] Adds "target_date" field to PurchaseOrderLineItem and SalesOrderLineItem models - Allows different target dates to be specified for different line items - If not set (null) then the base "target_date" parameter for the parent order is used --- InvenTree/InvenTree/version.py | 5 +++- .../migrations/0062_auto_20220228_0321.py | 23 +++++++++++++++++++ InvenTree/order/models.py | 9 +++++++- InvenTree/order/serializers.py | 2 ++ 4 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 InvenTree/order/migrations/0062_auto_20220228_0321.py diff --git a/InvenTree/InvenTree/version.py b/InvenTree/InvenTree/version.py index b4314f6738..678f69d228 100644 --- a/InvenTree/InvenTree/version.py +++ b/InvenTree/InvenTree/version.py @@ -12,11 +12,14 @@ import common.models INVENTREE_SW_VERSION = "0.7.0 dev" # InvenTree API version -INVENTREE_API_VERSION = 26 +INVENTREE_API_VERSION = 27 """ Increment this API version number whenever there is a significant change to the API that any clients need to know about +v27 -> 2022-02-28 + - Adds target_date field to individual line items for purchase orders and sales orders + v26 -> 2022-02-17 - Adds API endpoint for uploading a BOM file and extracting data diff --git a/InvenTree/order/migrations/0062_auto_20220228_0321.py b/InvenTree/order/migrations/0062_auto_20220228_0321.py new file mode 100644 index 0000000000..7f67a827a2 --- /dev/null +++ b/InvenTree/order/migrations/0062_auto_20220228_0321.py @@ -0,0 +1,23 @@ +# Generated by Django 3.2.10 on 2022-02-28 03:21 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('order', '0061_merge_0054_auto_20211201_2139_0060_auto_20211129_1339'), + ] + + operations = [ + migrations.AddField( + model_name='purchaseorderlineitem', + name='target_date', + field=models.DateField(blank=True, help_text='Target shipping date for this line item', null=True, verbose_name='Target Date'), + ), + migrations.AddField( + model_name='salesorderlineitem', + name='target_date', + field=models.DateField(blank=True, help_text='Target shipping date for this line item', null=True, verbose_name='Target Date'), + ), + ] diff --git a/InvenTree/order/models.py b/InvenTree/order/models.py index 7f6192dfcd..4c04c1ba74 100644 --- a/InvenTree/order/models.py +++ b/InvenTree/order/models.py @@ -794,8 +794,9 @@ class OrderLineItem(models.Model): Attributes: quantity: Number of items + reference: Reference text (e.g. customer reference) for this line item note: Annotation for the item - + target_date: An (optional) date for expected shipment of this line item. """ class Meta: @@ -813,6 +814,12 @@ class OrderLineItem(models.Model): notes = models.CharField(max_length=500, blank=True, verbose_name=_('Notes'), help_text=_('Line item notes')) + target_date = models.DateField( + blank=True, null=True, + verbose_name=_('Target Date'), + help_text=_('Target shipping date for this line item'), + ) + class PurchaseOrderLineItem(OrderLineItem): """ Model for a purchase order line item. diff --git a/InvenTree/order/serializers.py b/InvenTree/order/serializers.py index 5e78b3e3a3..251b088188 100644 --- a/InvenTree/order/serializers.py +++ b/InvenTree/order/serializers.py @@ -194,6 +194,7 @@ class POLineItemSerializer(InvenTreeModelSerializer): 'purchase_price_string', 'destination', 'destination_detail', + 'target_date', 'total_price', ] @@ -605,6 +606,7 @@ class SOLineItemSerializer(InvenTreeModelSerializer): 'sale_price_currency', 'sale_price_string', 'shipped', + 'target_date', ]