Fixes for barcode decoding

This commit is contained in:
Oliver Walters 2020-08-16 13:42:27 +10:00
parent a4267f76e8
commit ccda637e3c

View File

@ -68,7 +68,7 @@ class InvenTreeBarcodePlugin(BarcodePlugin):
# Initially try casting to an integer
try:
pk = int(data)
except (ValueError):
except (TypeError, ValueError):
pk = None
if pk is None:
@ -89,6 +89,17 @@ class InvenTreeBarcodePlugin(BarcodePlugin):
for k in self.data.keys():
if k.lower() == 'stocklocation':
pk = None
# First try simple integer lookup
try:
pk = int(self.data[k])
except (TypeError, ValueError):
pk = None
if pk is None:
# Lookup by 'id' field
try:
pk = self.data[k]['id']
except (AttributeError, KeyError):
@ -106,6 +117,16 @@ class InvenTreeBarcodePlugin(BarcodePlugin):
for k in self.data.keys():
if k.lower() == 'part':
pk = None
# Try integer lookup first
try:
pk = int(self.data[k])
except (TypeError, ValueError):
pk = None
if pk is None:
try:
pk = self.data[k]['id']
except (AttributeError, KeyError):