This commit is contained in:
2024-04-12 07:34:21 +03:00
parent 5c81af05d5
commit be623a3555
12 changed files with 513 additions and 93 deletions

25
utils/barcodes.py Normal file
View File

@@ -0,0 +1,25 @@
def generate_ean13_checksum(ean12):
if len(ean12) != 12:
return None
digits = [int(digit) for digit in ean12]
odd_sum = sum(digits[::2])
even_sum = sum(digits[1::2])
total = odd_sum + 3 * even_sum
checksum = 10 - (total % 10)
if checksum == 10:
checksum = 0
return checksum
def generate_barcode(product_id: int):
product_id = str(product_id)
# 4 - D
# 6 - E
# 5 - N
# 2 - C
# 4652 - DENCO_C (C - CRM)
supplier_part = 4652_5
article_part = product_id.ljust(7, '0')
barcode = f'{supplier_part}{article_part}'
checksum_code = generate_ean13_checksum(barcode)
return f'{barcode}{checksum_code}'