Untitled

mail@pastecode.io avatar
unknown
plain_text
5 months ago
1.3 kB
2
Indexable
import random
import time
import string

def generate_nuka_code(store_id, year, month, cashier_id):
    # Pierwsze 8 znaków - ID lokalu
    store_id = store_id.ljust(8, 'X')  # Wypełnienie do 8 znaków, jeśli za krótkie
    
    # Kolejne 9 znaków - Timestamp
    timestamp = str(int(time.time()))[-9:]  # Użycie ostatnich 9 cyfr z timestampu
    
    # Kolejny 1 znak - Rok
    year = str(year)[-1]  # Ostatnia cyfra roku
    
    # Kolejne 2 znaki - Miesiąc
    month = str(month).zfill(2)  # Uzupełnianie do 2 cyfr
    
    # Kolejne 11 znaków - Numer kasy
    cashier_id = cashier_id.ljust(11, 'X')  # Wypełnienie do 11 znaków, jeśli za krótkie
    
    # Składanie kodu
    raw_code = store_id + timestamp + year + month + cashier_id
    
    # Obliczanie sumy kontrolnej
    checksum = calculate_checksum(raw_code)
    
    # Finalny kod
    final_code = raw_code + checksum
    
    return final_code

def calculate_checksum(code):
    # Prosty przykład sumy kontrolnej - suma wartości ASCII znaków modulo 10
    return str(sum(ord(c) for c in code) % 10)

# Przykładowe dane wejściowe
store_id = "CCCCCZ4H"  # ID lokalu
year = 2024
month = 8
cashier_id = "B6TXFDDCMWR"  # ID kasy

# Generowanie kodu
nuka_code = generate_nuka_code(store_id, year, month, cashier_id)
print("Wygenerowany kod:", nuka_code)
Leave a Comment