Untitled
unknown
plain_text
a month ago
4.1 kB
7
Indexable
import tkinter as tk
from tkinter import messagebox
import sqlite3
from PIL import Image, ImageDraw, ImageFont
# Krijimi i databazës dhe tabelës nëse nuk ekziston
conn = sqlite3.connect('supermarket.db')
c = conn.cursor()
c.execute("""
CREATE TABLE IF NOT EXISTS products (
id INTEGER PRIMARY KEY AUTOINCREMENT,
emri TEXT,
cmimi REAL,
sasia INTEGER
)
""")
conn.commit()
conn.close()
# ------------------ FUNKSIONET ------------------
def add_product():
try:
emri = entry_emri.get()
cmimi = float(entry_cmimi.get())
sasia = int(entry_sasia.get())
conn = sqlite3.connect('supermarket.db')
c = conn.cursor()
c.execute("INSERT INTO products (emri, cmimi, sasia) VALUES (?, ?, ?)",
(emri, cmimi, sasia))
conn.commit()
conn.close()
messagebox.showinfo("Sukses", "Produkti u shtua me sukses!")
entry_emri.delete(0, tk.END)
entry_cmimi.delete(0, tk.END)
entry_sasia.delete(0, tk.END)
update_product_list()
except:
messagebox.showerror("Error", "Kontrollo të dhënat!")
def update_product_list():
listbox.delete(0, tk.END)
conn = sqlite3.connect('supermarket.db')
c = conn.cursor()
c.execute("SELECT * FROM products")
rows = c.fetchall()
conn.close()
for row in rows:
listbox.insert(tk.END, f"{row[0]} | {row[1]} | {row[2]}€ | Sasia: {row[3]}")
def buy_product():
try:
selected = listbox.get(listbox.curselection())
product_id = int(selected.split("|")[0])
total_amount = float(entry_amount.get())
conn = sqlite3.connect('supermarket.db')
c = conn.cursor()
c.execute("SELECT emri, cmimi, sasia FROM products WHERE id = ?", (product_id,))
product = c.fetchone()
if product:
emri, cmimi, sasia = product
if sasia <= 0:
messagebox.showerror("Error", "Produkti nuk ka sasi!")
return
if total_amount < cmimi:
messagebox.showerror("Error", "Nuk keni lekë të mjaftueshme!")
return
# Ul sasinë
c.execute("UPDATE products SET sasia = sasia - 1 WHERE id = ?", (product_id,))
conn.commit()
conn.close()
generate_invoice(emri, cmimi)
update_product_list()
messagebox.showinfo("Sukses", "Blerja u krye me sukses!")
except:
messagebox.showerror("Error", "Zgjidh një produkt!")
def generate_invoice(emri, cmimi):
width = 400
height = 200
invoice = Image.new('RGB', (width, height), 'white')
draw = ImageDraw.Draw(invoice)
font = ImageFont.load_default()
draw.text((10, 20), "FATURA E BLERJES", fill='black', font=font)
draw.text((10, 60), f"Produkti: {emri}", fill='black', font=font)
draw.text((10, 90), f"Cmimi: {cmimi} €", fill='black', font=font)
invoice.save("invoice.png")
messagebox.showinfo("Fatura", "Fatura u ruajt si invoice.png")
# ------------------ INTERFACE ------------------
root = tk.Tk()
root.title("Supermarket System")
tk.Label(root, text="Emri i Produktit").grid(row=0, column=0)
tk.Label(root, text="Çmimi").grid(row=1, column=0)
tk.Label(root, text="Sasia").grid(row=2, column=0)
entry_emri = tk.Entry(root)
entry_cmimi = tk.Entry(root)
entry_sasia = tk.Entry(root)
entry_emri.grid(row=0, column=1)
entry_cmimi.grid(row=1, column=1)
entry_sasia.grid(row=2, column=1)
tk.Button(root, text="Shto Produktin", command=add_product).grid(row=3, column=0, columnspan=2)
# Lista e produkteve
listbox = tk.Listbox(root, width=50)
listbox.grid(row=4, column=0, columnspan=2)
# Blerja
tk.Label(root, text="Shuma që keni").grid(row=5, column=0)
entry_amount = tk.Entry(root)
entry_amount.grid(row=5, column=1)
tk.Button(root, text="Blej Produkt", command=buy_product).grid(row=6, column=0, columnspan=2)
update_product_list()
root.mainloop()
Editor is loading...
Leave a Comment