mirror of
https://github.com/inventree/InvenTree.git
synced 2025-09-09 20:21:24 +00:00
Tests for POLineItem creation form
This commit is contained in:
@@ -611,13 +611,30 @@ class POLineItemCreate(AjaxCreateView):
|
||||
|
||||
valid = form.is_valid()
|
||||
|
||||
# Extract the SupplierPart ID from the form
|
||||
part_id = form['part'].value()
|
||||
|
||||
# Extract the Order ID from the form
|
||||
order_id = form['order'].value()
|
||||
|
||||
try:
|
||||
SupplierPart.objects.get(id=part_id)
|
||||
order = PurchaseOrder.objects.get(id=order_id)
|
||||
except (ValueError, PurchaseOrder.DoesNotExist):
|
||||
order = None
|
||||
form.errors['order'] = [_('Invalid Purchase Order')]
|
||||
valid = False
|
||||
|
||||
try:
|
||||
sp = SupplierPart.objects.get(id=part_id)
|
||||
|
||||
if order is not None:
|
||||
if not sp.supplier == order.supplier:
|
||||
form.errors['part'] = [_('Supplier must match for Part and Order')]
|
||||
valid = False
|
||||
|
||||
except (SupplierPart.DoesNotExist, ValueError):
|
||||
valid = False
|
||||
form.errors['part'] = [_('This field is required')]
|
||||
form.errors['part'] = [_('Invalid SupplierPart selection')]
|
||||
|
||||
data = {
|
||||
'form_valid': valid,
|
||||
@@ -639,6 +656,11 @@ class POLineItemCreate(AjaxCreateView):
|
||||
|
||||
form = super().get_form()
|
||||
|
||||
# Limit the available to orders to ones that are PENDING
|
||||
query = form.fields['order'].queryset
|
||||
query = query.filter(status=OrderStatus.PENDING)
|
||||
form.fields['order'].queryset = query
|
||||
|
||||
order_id = form['order'].value()
|
||||
|
||||
try:
|
||||
@@ -660,7 +682,7 @@ class POLineItemCreate(AjaxCreateView):
|
||||
|
||||
form.fields['part'].queryset = query
|
||||
form.fields['order'].widget = HiddenInput()
|
||||
except PurchaseOrder.DoesNotExist:
|
||||
except (ValueError, PurchaseOrder.DoesNotExist):
|
||||
pass
|
||||
|
||||
return form
|
||||
|
Reference in New Issue
Block a user