2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-06-20 22:06:28 +00:00

Merge branch 'feature-non-int-serial' of git://github.com/bcc/InvenTree into bcc-feature-non-int-serial

This commit is contained in:
Oliver Walters
2020-09-01 19:41:48 +10:00
7 changed files with 54 additions and 28 deletions

View File

@ -328,13 +328,20 @@ class Part(MPTTModel):
"""
parts = Part.objects.filter(tree_id=self.tree_id)
stock = StockModels.StockItem.objects.filter(part__in=parts).exclude(serial=None).order_by('-serial')
if stock.count() > 0:
return stock.first().serial
stock = StockModels.StockItem.objects.filter(part__in=parts).exclude(serial=None)
try:
ordered = sorted(stock.all(), reverse=True, key=lambda n: int(n.serial))
if len(ordered) > 0:
return ordered[0].serial
# Non-numeric serials, so don't suggest one.
except ValueError:
return None
# No serial numbers found
return None
return 0
def getNextSerialNumber(self):
"""
@ -344,9 +351,9 @@ class Part(MPTTModel):
n = self.getHighestSerialNumber()
if n is None:
return 1
return None
else:
return n + 1
return int(n) + 1
def getSerialNumberString(self, quantity):
"""
@ -356,6 +363,9 @@ class Part(MPTTModel):
sn = self.getNextSerialNumber()
if sn is None:
return None
if quantity >= 2:
sn = "{n}-{m}".format(
n=sn,