barcode logic: strip non-numeric characters from detected ASN string (#4379)

* legacy barcodes exist which still contain characters after the number. the current logic did not truncate them. instead, int() was called from the remaining string. this does not work in this case. it is therefore sufficient to continue processing numeric characters.

* lint

---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
This commit is contained in:
Sebastian Porombka 2023-10-17 05:44:22 +02:00 committed by Rock
parent e2e1600ea9
commit d60fcd33ed

View File

@ -1,4 +1,5 @@
import logging
import re
import tempfile
from dataclasses import dataclass
from pathlib import Path
@ -100,6 +101,9 @@ class BarcodeReader:
# remove the prefix and remove whitespace
asn_text = asn_text[len(settings.CONSUMER_ASN_BARCODE_PREFIX) :].strip()
# remove non-numeric parts of the remaining string
asn_text = re.sub("[^0-9]", "", asn_text)
# now, try parsing the ASN number
try:
asn = int(asn_text)