mirror of
https://github.com/inventree/InvenTree.git
synced 2025-05-01 04:56:45 +00:00
Added ETA for part stock
This commit is contained in:
parent
2355adb044
commit
b2eca2aa48
@ -62,6 +62,7 @@ class ProjectPart(models.Model):
|
|||||||
name=self.part.name,
|
name=self.part.name,
|
||||||
quan=self.quantity)
|
quan=self.quantity)
|
||||||
|
|
||||||
|
|
||||||
class ProjectRun(models.Model):
|
class ProjectRun(models.Model):
|
||||||
""" A single run of a particular project.
|
""" A single run of a particular project.
|
||||||
Tracks the number of 'units' made in the project.
|
Tracks the number of 'units' made in the project.
|
||||||
|
@ -8,32 +8,36 @@ from InvenTree.models import InvenTreeTree
|
|||||||
|
|
||||||
class Warehouse(InvenTreeTree):
|
class Warehouse(InvenTreeTree):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class StockItem(models.Model):
|
class StockItem(models.Model):
|
||||||
part = models.ForeignKey(Part,
|
part = models.ForeignKey(Part,
|
||||||
on_delete=models.CASCADE,
|
on_delete=models.CASCADE,
|
||||||
related_name='locations')
|
related_name='locations')
|
||||||
location = models.ForeignKey(Warehouse, on_delete=models.CASCADE)
|
location = models.ForeignKey(Warehouse, on_delete=models.CASCADE)
|
||||||
quantity = models.IntegerField()
|
quantity = models.PositiveIntegerField()
|
||||||
updated = models.DateField(auto_now=True)
|
updated = models.DateField(auto_now=True)
|
||||||
|
|
||||||
# Stock status types
|
# Stock status types
|
||||||
ITEM_IN_PROGRESS = 0
|
ITEM_IN_PROGRESS = 0
|
||||||
ITEM_INCOMING = 5
|
ITEM_INCOMING = 5
|
||||||
ITEM_DAMAGED = 10
|
ITEM_DAMAGED = 10
|
||||||
ITEM_ATTENTION = 20
|
ITEM_ATTENTION = 20
|
||||||
ITEM_COMPLETE = 50
|
ITEM_COMPLETE = 50
|
||||||
|
|
||||||
status = models.IntegerField(default=ITEM_IN_PROGRESS,
|
status = models.PositiveIntegerField(
|
||||||
choices=[
|
default=ITEM_IN_PROGRESS,
|
||||||
(ITEM_IN_PROGRESS, "In progress"),
|
choices=[
|
||||||
(ITEM_INCOMING, "Incoming"),
|
(ITEM_IN_PROGRESS, "In progress"),
|
||||||
(ITEM_DAMAGED, "Damaged"),
|
(ITEM_INCOMING, "Incoming"),
|
||||||
(ITEM_ATTENTION, "Requires attention"),
|
(ITEM_DAMAGED, "Damaged"),
|
||||||
(ITEM_COMPLETE, "Complete")
|
(ITEM_ATTENTION, "Requires attention"),
|
||||||
])
|
(ITEM_COMPLETE, "Complete")
|
||||||
|
])
|
||||||
|
|
||||||
|
# If stock item is incoming, an (optional) ETA field
|
||||||
|
expected_arrival = models.DateField(null=True, blank=True)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return "{n} x {part} @ {loc}".format(
|
return "{n} x {part} @ {loc}".format(
|
||||||
n=self.quantity,
|
n=self.quantity,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user