TableOrder/Tools/qrGenerator.py
2025-07-04 14:38:36 +02:00

56 lines
1.9 KiB
Python

# Importing library
import qrcode
import random
import io
from Server.DB.handler import QR
from Server.DB.handler import session
import configparser
config = configparser.ConfigParser()
config.sections()
config.read('Options.ini')
def randint(min,max):
a = random.randint(min,max)
return a
def generate_QR_Code():
if config['SETTINGS']['lockqrcode_whit_secret'] == 'True':
for desk in range(int(config['DEFAULT']['max_desks'])):
img_byte_arr = io.BytesIO()
secret = random.randint(1,9999999)
data = config['DEFAULT']['host'] + '/order_get?desk='+str(desk)+'&secret='+str(secret)
qr_img = qrcode.make(data)
qr_img.save(img_byte_arr, format='PNG')
img_byte_arr = img_byte_arr.getvalue()
qr = QR(desk,img_byte_arr, qr_secret=secret)
existing_qr = session.query(QR).filter_by(desk=desk).first()
if existing_qr:
existing_qr.qr_img = img_byte_arr # Update existing row
existing_qr.qr_secret = secret
else:
session.add(qr) # Insert new row
session.commit()
else: #no Optional features
for desk in range(int(config['DEFAULT']['max_desks'])):
img_byte_arr = io.BytesIO()
data = config['DEFAULT']['host'] + '/order_get?desk='+str(desk)
qr_img = qrcode.make(data)
qr_img.save(img_byte_arr, format='PNG')
img_byte_arr = img_byte_arr.getvalue()
qr = QR(desk,img_byte_arr)
existing_qr = session.query(QR).filter_by(desk=desk).first()
if existing_qr:
existing_qr.qr_img = img_byte_arr # Update existing row
existing_qr.qr_secret = 0
else:
session.add(qr) # Insert new row
session.commit()
# Encoding data using make() function
# Saving as an image file