From 09fe9ccf1161156e44088545260b72cbcce0374a Mon Sep 17 00:00:00 2001
From: Matthias <matmair@live.de>
Date: Fri, 7 May 2021 07:15:33 +0200
Subject: [PATCH] sales order item tracking

---
 InvenTree/order/views.py | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/InvenTree/order/views.py b/InvenTree/order/views.py
index 40f57d247c..81c2082c1c 100644
--- a/InvenTree/order/views.py
+++ b/InvenTree/order/views.py
@@ -1579,6 +1579,7 @@ class LineItemPricing(PartPricing):
 
     class EnhancedForm(PartPricing.form_class):
         pk = IntegerField(widget=HiddenInput())
+        so_line = IntegerField(widget=HiddenInput())
 
     form_class = EnhancedForm
 
@@ -1602,6 +1603,21 @@ class LineItemPricing(PartPricing):
             return part.id
         return part
 
+    def get_so(self, pk=False):
+        so_line = self.request.GET.get('line_item', None)
+        if not so_line:
+            so_line = self.request.POST.get('so_line', None)
+
+        if so_line:
+            try:
+                sales_order = SalesOrderLineItem.objects.get(pk=so_line)
+                if pk:
+                    return sales_order.pk
+                return sales_order
+            except Part.DoesNotExist:
+                return None
+        return None
+
     def get_quantity(self):
         """ Return set quantity in decimal format """
         qty = Decimal(self.request.GET.get('quantity', 1))
@@ -1612,5 +1628,8 @@ class LineItemPricing(PartPricing):
     def get_initials(self):
         initials = super().get_initials()
         initials['pk'] = self.get_part(id=True)
+        initials['so_line'] = self.get_so(pk=True)
+        return initials
+
 
         return initials