mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Display table of outstanding line items
This commit is contained in:
parent
e28a435c07
commit
c7ca9a3d8f
@ -195,6 +195,13 @@ class PurchaseOrder(Order):
|
||||
|
||||
line.save()
|
||||
|
||||
def pending_line_items(self):
|
||||
""" Return a list of pending line items for this order.
|
||||
Any line item where 'received' < 'quantity' will be returned.
|
||||
"""
|
||||
|
||||
return [line for line in self.lines.all() if line.quantity > line.received]
|
||||
|
||||
|
||||
class OrderLineItem(models.Model):
|
||||
""" Abstract model for an order line item
|
||||
@ -251,3 +258,8 @@ class PurchaseOrderLineItem(OrderLineItem):
|
||||
)
|
||||
|
||||
received = models.PositiveIntegerField(default=0, help_text=_('Number of items received'))
|
||||
|
||||
def remaining(self):
|
||||
""" Calculate the number of items remaining to be received """
|
||||
r = self.quantity - self.received
|
||||
return max(r, 0)
|
@ -2,9 +2,43 @@
|
||||
|
||||
{% block form %}
|
||||
|
||||
<h4>Receive parts for {{ order }}</h4>
|
||||
|
||||
<form method='post' action='' class='js-modal-form' enctype='multipart/form-data'>
|
||||
{% csrf_token %}
|
||||
{% load crispy_forms_tags %}
|
||||
|
||||
<table class='table table-striped'>
|
||||
<tr>
|
||||
<th>Part</th>
|
||||
<th>Order Code</th>
|
||||
<th>On Order</th>
|
||||
<th>Received</th>
|
||||
<th>Receive</th>
|
||||
</tr>
|
||||
{% for line in lines %}
|
||||
<tr>
|
||||
{% if line.part %}
|
||||
<td>
|
||||
{% include "hover_image.html" with image=line.part.part.image hover=False %}
|
||||
{{ line.part.part.full_name }}
|
||||
</td>
|
||||
<td>{{ line.part.SKU }}</td>
|
||||
{% else %}
|
||||
<td colspan='2'>Referenced part has been removed</td>
|
||||
{% endif %}
|
||||
<td>{{ line.quantity }}</td>
|
||||
<td>{{ line.received }}</td>
|
||||
<td>
|
||||
<div class='control-group'>
|
||||
<div class='controls'>
|
||||
<input class='numberinput' type='number' min='0' value='{{ line.remaining }}' name='receive-quantity-{{ line.id }}'/>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
@ -180,6 +180,7 @@ class PurchaseOrderReceive(AjaxView):
|
||||
|
||||
ctx = {
|
||||
'order': self.order,
|
||||
'lines': self.lines,
|
||||
}
|
||||
|
||||
return ctx
|
||||
@ -189,6 +190,8 @@ class PurchaseOrderReceive(AjaxView):
|
||||
self.request = request
|
||||
self.order = get_object_or_404(PurchaseOrder, pk=self.kwargs['pk'])
|
||||
|
||||
self.lines = self.order.pending_line_items()
|
||||
|
||||
return self.renderJsonResponse(request)
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user