crappy
This commit is contained in:
25
utils/barcodes.py
Normal file
25
utils/barcodes.py
Normal 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}'
|
||||
Reference in New Issue
Block a user