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