mirror of
https://github.com/inventree/InvenTree.git
synced 2025-07-01 11:10:54 +00:00
Merge remote-tracking branch 'inventree/master'
This commit is contained in:
@ -301,6 +301,7 @@ class StockList(generics.ListCreateAPIView):
|
||||
'part__category',
|
||||
'part__category__name',
|
||||
'part__category__description',
|
||||
'supplier_part',
|
||||
)
|
||||
|
||||
# Reduce the number of lookups we need to do for categories
|
||||
@ -371,7 +372,13 @@ class StockList(generics.ListCreateAPIView):
|
||||
except PartCategory.DoesNotExist:
|
||||
pass
|
||||
|
||||
# Filter by supplier
|
||||
# Filter by supplier_part ID
|
||||
supplier_part_id = self.request.query_params.get('supplier_part', None)
|
||||
|
||||
if supplier_part_id:
|
||||
stock_list = stock_list.filter(supplier_part=supplier_part_id)
|
||||
|
||||
# Filter by supplier ID
|
||||
supplier_id = self.request.query_params.get('supplier', None)
|
||||
|
||||
if supplier_id:
|
||||
|
@ -35,7 +35,9 @@
|
||||
<hr>
|
||||
<div class='panel panel-default'>
|
||||
<div class='panel-content'>
|
||||
{% if item.notes %}
|
||||
{{ item.notes | markdownify }}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -1,26 +0,0 @@
|
||||
{% extends "stock/stock_app_base.html" %}
|
||||
{% load static %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h3>Stock list here!</h3>
|
||||
|
||||
<table class='table table-striped table-condensed' data-toolbar='#button-toolbar' id='tracking-table'>
|
||||
</table>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block js_ready %}
|
||||
{{ block.super }}
|
||||
|
||||
loadStockTrackingTable($("#tracking-table"), {
|
||||
params: function(p) {
|
||||
return {
|
||||
ordering: '-date',
|
||||
};
|
||||
},
|
||||
partColumn: true,
|
||||
url: "{% url 'api-stock-track' %}",
|
||||
});
|
||||
|
||||
{% endblock %}
|
@ -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)
|
||||
|
||||
@ -816,6 +830,11 @@ class StockItemCreate(AjaxCreateView):
|
||||
|
||||
part_id = self.request.GET.get('part', None)
|
||||
loc_id = self.request.GET.get('location', None)
|
||||
sup_part_id = self.request.GET.get('supplier_part', None)
|
||||
|
||||
part = None
|
||||
location = None
|
||||
supplier_part = None
|
||||
|
||||
# Part field has been specified
|
||||
if part_id:
|
||||
@ -824,14 +843,27 @@ class StockItemCreate(AjaxCreateView):
|
||||
initials['part'] = part
|
||||
initials['location'] = part.get_default_location()
|
||||
initials['supplier_part'] = part.default_supplier
|
||||
except Part.DoesNotExist:
|
||||
except (ValueError, Part.DoesNotExist):
|
||||
pass
|
||||
|
||||
# SupplierPart field has been specified
|
||||
# It must match the Part, if that has been supplied
|
||||
if sup_part_id:
|
||||
try:
|
||||
supplier_part = SupplierPart.objects.get(pk=sup_part_id)
|
||||
|
||||
if part is None or supplier_part.part == part:
|
||||
initials['supplier_part'] = supplier_part
|
||||
|
||||
except (ValueError, SupplierPart.DoesNotExist):
|
||||
pass
|
||||
|
||||
# Location has been specified
|
||||
if loc_id:
|
||||
try:
|
||||
initials['location'] = StockLocation.objects.get(pk=loc_id)
|
||||
except StockLocation.DoesNotExist:
|
||||
location = StockLocation.objects.get(pk=loc_id)
|
||||
initials['location'] = location
|
||||
except (ValueError, StockLocation.DoesNotExist):
|
||||
pass
|
||||
|
||||
return initials
|
||||
|
Reference in New Issue
Block a user