Files
Fulfillment-Backend/utils/barcodes.py
2024-04-12 07:34:21 +03:00

26 lines
685 B
Python

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}'