Skip to content

Commit

Permalink
Fix TME supplier order number splitting (#6900) (#6921)
Browse files Browse the repository at this point in the history
* Fix TME supplier order number splitting

* Fix order number not split for QR codes, handle standard ecia codes
  • Loading branch information
30350n committed Apr 4, 2024
1 parent c2f9bbf commit 610c0a8
Showing 1 changed file with 7 additions and 10 deletions.
17 changes: 7 additions & 10 deletions InvenTree/plugin/builtin/suppliers/tme.py
Expand Up @@ -30,7 +30,7 @@ class TMEPlugin(SupplierBarcodeMixin, SettingsMixin, InvenTreePlugin):
}

TME_IS_QRCODE_REGEX = re.compile(r'([^\s:]+:[^\s:]+\s+)+(\S+(\s|$)+)+')
TME_IS_BARCODE2D_REGEX = re.compile(r'(([^\s]+)(\s+|$))+')
TME_IS_OLD_BARCODE2D_REGEX = re.compile(r'(([^\s]+)(\s+|$))+')

# Custom field mapping
TME_QRCODE_FIELDS = {
Expand All @@ -52,22 +52,19 @@ def extract_barcode_fields(self, barcode_data: str) -> dict[str, str]:
key, value = item.split(':')
if key in self.TME_QRCODE_FIELDS:
barcode_fields[self.TME_QRCODE_FIELDS[key]] = value

return barcode_fields

elif self.TME_IS_BARCODE2D_REGEX.fullmatch(barcode_data):
# 2D Barcode format e.g. "PWBP-302 1PMPNWBP-302 Q1 K19361337/1"
elif self.TME_IS_OLD_BARCODE2D_REGEX.fullmatch(barcode_data):
# Old 2D Barcode format e.g. "PWBP-302 1PMPNWBP-302 Q1 K19361337/1"
for item in barcode_data.split(' '):
for k, v in self.ecia_field_map().items():
if item.startswith(k):
barcode_fields[v] = item[len(k) :]
else:
return {}
barcode_fields = self.parse_ecia_barcode2d(barcode_data)

# Custom handling for order number
if SupplierBarcodeMixin.CUSTOMER_ORDER_NUMBER in barcode_fields:
order_number = barcode_fields[SupplierBarcodeMixin.CUSTOMER_ORDER_NUMBER]
if SupplierBarcodeMixin.SUPPLIER_ORDER_NUMBER in barcode_fields:
order_number = barcode_fields[SupplierBarcodeMixin.SUPPLIER_ORDER_NUMBER]
order_number = order_number.split('/')[0]
barcode_fields[SupplierBarcodeMixin.CUSTOMER_ORDER_NUMBER] = order_number
barcode_fields[SupplierBarcodeMixin.SUPPLIER_ORDER_NUMBER] = order_number

return barcode_fields

0 comments on commit 610c0a8

Please sign in to comment.