mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Improve functions
This commit is contained in:
parent
4f84febbd1
commit
7dd7b68ed6
@ -221,6 +221,16 @@ class Build(models.Model):
|
||||
self.status = self.COMPLETE
|
||||
self.save()
|
||||
|
||||
def getRequiredQuantity(self, part):
|
||||
""" Calculate the quantity of <part> required to make this build.
|
||||
"""
|
||||
|
||||
try:
|
||||
item = BomItem.objects.get(part=self.part.id, sub_part=part.id)
|
||||
return item.quantity * self.quantity
|
||||
except BomItem.DoesNotExist:
|
||||
return 0
|
||||
|
||||
def getAllocatedQuantity(self, part):
|
||||
""" Calculate the total number of <part> currently allocated to this build
|
||||
"""
|
||||
@ -244,14 +254,7 @@ class Build(models.Model):
|
||||
The remaining allocated quantity
|
||||
"""
|
||||
|
||||
try:
|
||||
bom_item = BomItem.objects.get(part=self.part.id, sub_part=part.id)
|
||||
except BomItem.DoesNotExist:
|
||||
return 0
|
||||
|
||||
quantity = bom_item.quantity * self.quantity
|
||||
|
||||
return quantity - self.getAllocatedQuantity(part)
|
||||
return max(self.getRequiredQuantity(part) - self.getAllocatedQuantity(part), 0)
|
||||
|
||||
@property
|
||||
def required_parts(self):
|
||||
|
@ -294,6 +294,10 @@ class BuildItemCreate(AjaxCreateView):
|
||||
# If there is only one item selected, select it
|
||||
if len(stocks) == 1:
|
||||
form.fields['stock_item'].initial = stocks[0].id
|
||||
# There is no stock available
|
||||
elif len(stocks) == 0:
|
||||
# TODO - Add a message to the form describing the problem
|
||||
pass
|
||||
|
||||
except Part.DoesNotExist:
|
||||
pass
|
||||
@ -324,7 +328,8 @@ class BuildItemCreate(AjaxCreateView):
|
||||
|
||||
# Try to work out how many parts to allocate
|
||||
if part:
|
||||
initials['quantity'] = build.getUnallocatedQuantity(part)
|
||||
unallocated = build.getUnallocatedQuantity(part)
|
||||
initials['quantity'] = unallocated
|
||||
|
||||
except Build.DoesNotExist:
|
||||
pass
|
||||
|
Loading…
Reference in New Issue
Block a user