From 6d80788618247756b649feaa0ecdc51d6fdfdac0 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Wed, 12 Feb 2020 11:16:00 +1100 Subject: [PATCH] Allow stock-filtering and export using SupplierPart ID --- .../templates/company/supplier_part_stock.html | 15 +++++++++++++++ InvenTree/stock/views.py | 16 +++++++++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/InvenTree/company/templates/company/supplier_part_stock.html b/InvenTree/company/templates/company/supplier_part_stock.html index f672d063a7..2ad9adb97f 100644 --- a/InvenTree/company/templates/company/supplier_part_stock.html +++ b/InvenTree/company/templates/company/supplier_part_stock.html @@ -33,4 +33,19 @@ url: "{% url 'api-stock-list' %}", }); + $("#stock-export").click(function() { + launchModalForm("{% url 'stock-export-options' %}", { + submit_text: "Export", + success: function(response) { + var url = "{% url 'stock-export' %}"; + + url += "?format=" + response.format; + url += "&cascade=" + response.cascade; + url += "&supplier_part={{ part.id }}"; + + location.href = url; + }, + }); + }); + {% endblock %} \ No newline at end of file diff --git a/InvenTree/stock/views.py b/InvenTree/stock/views.py index 9d5e2b5dc4..fdfd59ca44 100644 --- a/InvenTree/stock/views.py +++ b/InvenTree/stock/views.py @@ -24,7 +24,7 @@ from InvenTree.helpers import ExtractSerialNumbers from decimal import Decimal, InvalidOperation from datetime import datetime -from company.models import Company +from company.models import Company, SupplierPart from part.models import Part from .models import StockItem, StockLocation, StockItemTracking @@ -212,6 +212,16 @@ class StockExport(AjaxView): except (ValueError, Company.DoesNotExist): pass + # Check if a particular supplier_part was specified + sup_part_id = request.GET.get('supplier_part', None) + supplier_part = None + + if sup_part_id: + try: + supplier_part = SupplierPart.objects.get(pk=sup_part_id) + except (ValueError, SupplierPart.DoesNotExist): + pass + # Check if a particular part was specified part_id = request.GET.get('part', None) part = None @@ -244,7 +254,11 @@ class StockExport(AjaxView): if supplier: stock_items = stock_items.filter(supplier_part__supplier=supplier) + if supplier_part: + stock_items = stock_items.filter(supplier_part=supplier_part) + # Filter out stock items that are not 'in stock' + # TODO - This might need some more thought in the future... stock_items = stock_items.filter(customer=None) stock_items = stock_items.filter(belongs_to=None)