from tkinter import *
root = Tk()
root.geometry("1300x700+0+0")
root.maxsize(width=1280, height=700)
root.minsize(width=1280, height=700)
root.title("Gestão de Supermercado Simples")
numerofiscal= StringVar()
title = Label(root,text = "Gestão de Supermercado Simples",bd = 12,relief = GROOVE,fg ='#062b7a',
bg ="#427bf5",font=("times new roman",30,"bold"),pady = 3).pack(fill = X)
F1 = LabelFrame(text="Detalhes do Cliente", font=("time new roman", 12, "bold"), fg='#062b7a', bg="#427bf5",
relief=GROOVE,bd=10)
F1.place(x=0, y=80, relwidth=1)
cname_lbl = Label(F1,text="Número Fiscal",fg='#062b7a', bg="#427bf5",font=("times new roman",15,"bold")).grid(row = 0,column = 0,padx = 10,pady = 5)
nfiscal = Entry(F1,bd = 8,relief = GROOVE,textvariable =numerofiscal)
nfiscal.grid(row = 0,column = 1,ipady = 4,ipadx = 30,pady = 5)
pao = IntVar()
bolos = IntVar()
hamburger = IntVar()
cachorroquente = IntVar()
sandes = IntVar()
arroz = IntVar()
azeite = IntVar()
sal = IntVar()
massa = IntVar()
acucar= IntVar()
carne = IntVar()
peixe = IntVar()
atum = IntVar()
Salchinas = IntVar()
enchidos= IntVar()
pao.set('0')
bolos.set('0')
hamburger.set('0')
cachorroquente.set('0')
sandes.set('0')
arroz.set('0')
azeite.set('0')
sal.set('0')
massa.set('0')
acucar.set('0')
carne.set('0')
peixe.set('0')
atum.set('0')
Salchinas.set('0')
enchidos.set('0')
precospao = 0.8
precosbolos = 1
precoshamburger = 5
precoscachorroquente = 6
precossandes = 4
precosarroz = 1.5
precosazeite = 3
precossal = 2
precosmassa = 1.39
precosacucar= 2
precoscarne = 5
precospeixe = 9
precosatum = 2
precosSalchinas = 1
precosenchidos= 3
total_comida = StringVar()
total_mercado= StringVar()
total_talho_peixeiria = StringVar()
impostoscomida = StringVar()
impostosmercado = StringVar()
impostostalhopeixeiria = StringVar()
def total():
# =================Total Food Prices
comida_total_preco = (
(pao.get() * precospao) +
(bolos.get() * precosbolos) +
(hamburger.get() * precoshamburger) +
(cachorroquente.get() * precoscachorroquente) +
(sandes.get() * precossandes)
)
total_comida.set("$" + str(comida_total_preco))
impostoscomida.set("$" + str(round(comida_total_preco * 0.23)))
# ====================Total Grocery Prices
mercadoria_total_preco = (
(arroz.get() * precosarroz) +
(azeite.get() * precosazeite) +
(massa.get() * precossal) +
(acucar.get() * precosacucar) +
(sal.get() * precossal)
)
total_mercado.set("$" + str(mercadoria_total_preco))
impostosmercado.set("$" + str(round(mercadoria_total_preco * 0.06)))
# ======================Total Other Prices
total_protaina = (
(carne.get() * precoscarne) +
(peixe.get() * precospeixe) +
(atum.get() * precosatum) +
(Salchinas.get() * precosSalchinas) +
(enchidos.get() * precosenchidos)
)
Totalfinal =(carne.get()* precoscarne+peixe.get()* precospeixe+atum.get()* precosatum+Salchinas.get()* precosSalchinas+enchidos.get()*precosenchidos)*1.13+\
(arroz.get()*precosarroz+acucar.get()*precosacucar+massa.get()*precosmassa+sal.get()
*precossal+azeite.get()*precosazeite)*1.06\
+(pao.get()*precospao+bolos.get()*precosbolos+hamburger.get()*precoshamburger+sandes.get()*precossandes+cachorroquente.get()*precoscachorroquente)*1.23
total_talho_peixeiria.set("$" + str(total_protaina))
impostostalhopeixeiria.set("$" + str(round(total_protaina * 0.13,2)))
Total.set(f"$ {round(Totalfinal,2)}")
def sair():
root.quit()
def limpezafornulario():
pao_en.delete(0, END)
bolos_en.delete(0, END)
Hamburger_en.delete(0, END)
cachorroquente_en.delete(0, END)
sandes_en.delete(0, END)
arroz_en.delete(0, END)
azeite_en.delete(0, END)
sal_en.delete(0, END)
massa_en.delete(0, END)
acucar_en.delete(0, END)
carne_en.delete(0, END)
peixe_en.delete(0, END)
atum_en.delete(0, END)
salchinas_en.delete(0, END)
enchidos_en.delete(0, END)
def limpar():
txt.delete('1.0',END)
def introducao():
txt.delete('1.0',END)
numeroficalcliente = nfiscal.get()
txt.insert(END," Bem-Vindo à nossa Loja \n")
txt.insert(END, f"\nSupermercados Vitória")
txt.insert(END, f"\n#Rua de S. Gonçalo 505\nCódigo Postal: 4810")
txt.insert(END, f"\nNúmero Fiscal Fornecedor : 1253589888")
txt.insert(END,f"\nNúmero Fiscal Cliente : {numeroficalcliente}")
txt.insert(END, f"\n\nPreços com IVA")
txt.insert(END,"\n===================================")
txt.insert(END,"\nProduto Qtdd Preço ")
txt.insert(END,"\n===================================")
def conta():
introducao()
if pao.get() != 0:
txt.insert(END,f"\nPão {pao.get()} {round(pao.get() * precospao*1.23,2)}")
if bolos.get() != 0:
txt.insert(END,f"\nBolos {bolos.get()} {round(bolos.get() * precosbolos*1.23,2)}")
if hamburger.get() != 0:
txt.insert(END,f"\nHamburger {hamburger.get()} {round(hamburger.get() * precoshamburger*1.23,2)}")
if cachorroquente.get() != 0:
txt.insert(END,f"\nCachorro Quente {cachorroquente.get()} {round(cachorroquente.get() * precoscachorroquente*1.23,2)}")
if sandes.get() != 0 :
txt.insert(END,f"\nSandes {sandes.get()} {round(sandes.get() *precossandes*1.23,2)}")
if arroz.get() != 0:
txt.insert(END,f"\nArroz {arroz.get()} {round(arroz.get() * precosarroz*1.06,2)}")
if azeite.get() != 0:
txt.insert(END,f"\nAzeite {azeite.get()} {round(azeite.get() * precosazeite*1.06,2)}")
if sal.get() != 0:
txt.insert(END,f"\nSal {sal.get()} {round(sal.get() * precossal*1.06,2)}")
if massa.get() != 0:
txt.insert(END,f"\nMassa {massa.get()} {round(massa.get() * precosmassa*1.06,2)}")
if acucar.get() != 0:
txt.insert(END,f"\nAçúcar {acucar.get()} {round(acucar.get() * precosacucar*1.06,2)}")
if carne.get() != 0:
txt.insert(END,f"\nCarne {carne.get()} {round(carne.get() * precoscarne*1.13,2)}")
if peixe.get() != 0:
txt.insert(END,f"\nPeixe {peixe.get()} {round(peixe.get() * precospeixe*1.13,2)}")
if atum.get() != 0:
txt.insert(END,f"\nAtum {atum.get()} {round(atum.get() * precosatum*1.13,2)}")
if Salchinas.get() != 0:
txt.insert(END,f"\nSalchinas {Salchinas.get()} {round(Salchinas.get() * precosSalchinas*1.13,2)}")
if enchidos.get() != 0:
txt.insert(END,f"\nEnchidos {enchidos.get()} {round(enchidos.get() * precosenchidos*1.13,2)}")
txt.insert(END,"\n===================================")
Totalfinal =(carne.get()* precoscarne+peixe.get()* precospeixe+atum.get()* precosatum+Salchinas.get()* precosSalchinas+enchidos.get()*precosenchidos)*1.13+\
(arroz.get()*precosarroz+acucar.get()*precosacucar+massa.get()*precosmassa+sal.get()
*precossal+azeite.get()*precosazeite)*1.06\
+(pao.get()*precospao+bolos.get()*precosbolos+hamburger.get()*precoshamburger+sandes.get()*precossandes+cachorroquente.get()*precoscachorroquente)*1.23
txt.insert(END,f"\n Total : ${round(Totalfinal,2)}")
F2 = LabelFrame(root, text='Comida', bd=10, relief=GROOVE,fg='#062b7a', bg="#427bf5",
font=("times new roman", 13, "bold"))
F2.place(x=5, y=180, width=325, height=380)
pao_lbl = Label(F2,font = ("times new roman",15,"bold"),fg='#062b7a', bg="#427bf5",text = "Pão")
pao_lbl.grid(row = 0,column = 0,padx = 10,pady = 20)
pao_en = Entry(F2,bd = 8,relief = GROOVE,textvariable = pao, justify='center')
pao_en.grid(row = 0,column = 1,ipady = 5,ipadx = 5)
bolos_lbl = Label(F2,font = ("times new roman",15,"bold"),fg='#062b7a', bg="#427bf5",text = "Bolos")
bolos_lbl.grid(row = 1,column = 0,padx = 10,pady = 20)
bolos_en = Entry(F2,bd = 8,relief = GROOVE,textvariable = bolos, justify='center')
bolos_en.grid(row = 1,column = 1,ipady = 5,ipadx = 5)
Hamburger_lbl = Label(F2,font = ("times new roman",15,"bold"),fg='#062b7a', bg="#427bf5",text = "Hamburger")
Hamburger_lbl.grid(row = 2,column = 0,padx = 10,pady = 20)
Hamburger_en = Entry(F2,bd = 8,relief = GROOVE,textvariable = hamburger, justify='center')
Hamburger_en.grid(row = 2,column = 1,ipady = 5,ipadx = 5)
cachorroquente_lbl = Label(F2,font = ("times new roman",15,"bold"),fg='#062b7a', bg="#427bf5",text = "Cochorro")
cachorroquente_lbl.grid(row = 3,column = 0,padx = 10,pady = 20)
cachorroquente_en = Entry(F2,bd = 8,relief = GROOVE,textvariable = cachorroquente, justify='center')
cachorroquente_en.grid(row = 3,column = 1,ipady = 5,ipadx = 5)
sandes_lbl = Label(F2,font = ("times new roman",15,"bold"),fg='#062b7a', bg="#427bf5",text = "Sandes")
sandes_lbl.grid(row = 4,column = 0,padx = 10,pady = 20)
sandes_en = Entry(F2,bd = 8,relief = GROOVE,textvariable = sandes, justify='center')
sandes_en.grid(row = 4,column = 1,ipady = 5,ipadx = 5)
F2 = LabelFrame(root,text = 'Mercado',bd = 10,relief = GROOVE,fg='#062b7a', bg="#427bf5",font = ("times new roman",13,"bold"))
F2.place(x = 330,y = 180,width = 325,height = 380)
arroz_lbl = Label(F2,font = ("times new roman",15,"bold"),fg='#062b7a', bg="#427bf5",text = "Arroz")
arroz_lbl.grid(row = 0,column = 0,padx = 10,pady = 20)
arroz_en = Entry(F2,bd = 8,relief = GROOVE,textvariable =arroz, justify='center')
arroz_en.grid(row = 0,column = 1,ipady = 5,ipadx = 5)
azeite_lbl = Label(F2,font = ("times new roman",15,"bold"),fg='#062b7a', bg="#427bf5",text = "Azeite")
azeite_lbl.grid(row = 1,column = 0,padx = 10,pady = 20)
azeite_en = Entry(F2,bd = 8,relief = GROOVE,textvariable = azeite, justify='center')
azeite_en.grid(row = 1,column = 1,ipady = 5,ipadx = 5)
sal_lbl = Label(F2,font = ("times new roman",15,"bold"),fg='#062b7a', bg="#427bf5",text = "Sal")
sal_lbl.grid(row = 2,column = 0,padx = 10,pady = 20)
sal_en = Entry(F2,bd = 8,relief = GROOVE,textvariable = sal, justify='center')
sal_en.grid(row = 2,column = 1,ipady = 5,ipadx = 5)
massa_lbl = Label(F2,font = ("times new roman",15,"bold"),fg='#062b7a', bg="#427bf5",text = "Massa")
massa_lbl.grid(row = 3,column = 0,padx = 10,pady = 20)
massa_en = Entry(F2,bd = 8,relief = GROOVE,textvariable = massa, justify='center')
massa_en.grid(row = 3,column = 1,ipady = 5,ipadx = 5)
acucar_lbl = Label(F2,font = ("times new roman",15,"bold"),fg='#062b7a', bg="#427bf5",text = "Açúcar")
acucar_lbl.grid(row = 4,column = 0,padx = 10,pady = 20)
acucar_en = Entry(F2,bd = 8,relief = GROOVE,textvariable = acucar, justify='center')
acucar_en.grid(row = 4,column = 1,ipady = 5,ipadx = 5)
F2 = LabelFrame(root, text='Talho/Peixeiria', bd=10, relief=GROOVE,fg='#062b7a', bg="#427bf5",
font=("times new roman", 13, "bold"))
F2.place(x=655, y=180, width=325, height=380)
carne_lbl = Label(F2, font=("times new roman", 15, "bold"), fg='#062b7a', bg="#427bf5", text="Carne")
carne_lbl.grid(row=0, column=0, padx=10, pady=20)
carne_en = Entry(F2, bd=8, relief=GROOVE, textvariable=carne, justify='center')
carne_en.grid(row=0, column=1, ipady=5, ipadx=5)
# =======
peixe_lbl = Label(F2, font=("times new roman", 15, "bold"),fg='#062b7a', bg="#427bf5", text="Peixe")
peixe_lbl.grid(row=1, column=0, padx=10, pady=20)
peixe_en = Entry(F2, bd=8, relief=GROOVE, textvariable=peixe, justify='center')
peixe_en.grid(row=1, column=1, ipady=5, ipadx=5)
# =======
atum_lbl = Label(F2, font=("times new roman", 15, "bold"), fg='#062b7a', bg="#427bf5", text="Atum")
atum_lbl.grid(row=2, column=0, padx=10, pady=20)
atum_en = Entry(F2, bd=8, relief=GROOVE, textvariable=atum, justify='center')
atum_en.grid(row=2, column=1, ipady=5, ipadx=5)
# ========
salchinas_lbl = Label(F2, font=("times new roman", 15, "bold"), fg='#062b7a', bg="#427bf5", text="Salchinas")
salchinas_lbl.grid(row=3, column=0, padx=10, pady=20)
salchinas_en = Entry(F2, bd=8, relief=GROOVE, textvariable=Salchinas, justify='center')
salchinas_en.grid(row=3, column=1, ipady=5, ipadx=5)
# ============
enchidos_lbl = Label(F2, font=("times new roman", 15, "bold"), fg='#062b7a', bg="#427bf5", text="Enchidos")
enchidos_lbl.grid(row=4, column=0, padx=10, pady=20)
enchidos_en = Entry(F2, bd=8, relief=GROOVE, textvariable=enchidos, justify='center')
enchidos_en.grid(row=4, column=1, ipady=5, ipadx=5)
F3 = Label(root,bd = 10,relief = GROOVE)
F3.place(x = 960,y = 180,width = 325,height = 380)
conta_title = Label(F3,text = "Conta",font = ("Lucida",13,"bold"),bd= 7,relief = GROOVE,bg="#003366",fg="#3e8298")
conta_title.pack(fill = X)
scroll_y = Scrollbar(F3,orient = VERTICAL)
txt = Text(F3,yscrollcommand = scroll_y.set)
scroll_y.pack(side = RIGHT,fill = Y)
scroll_y.config(command =txt.yview)
txt.pack(fill = BOTH,expand = 1)
# ===========Buttons Frame=============#
F4 = LabelFrame(root, text='Menu', bd=10, relief=GROOVE, fg='#062b7a', bg="#427bf5",
font=("times new roman", 13, "bold"))
F4.place(x=0, y=560, relwidth=1, height=145)
# ===================
totalcomida_lbl = Label(F4, font=("times new roman", 15, "bold"), fg='#062b7a', bg="#427bf5", text="Total comida")
totalcomida_lbl.grid(row=0, column=0, padx=10, pady=0)
total_comida_en = Label(F4, bd=8, relief=GROOVE, textvariable=total_comida,bg ="#427bf5")
total_comida_en.grid(row=0, column=1, ipady=2, ipadx=5)
# ===================
total_mercado_lbl = Label(F4, font=("times new roman", 15, "bold"), fg='#062b7a', bg="#427bf5", text="Total Merciaria")
total_mercado_lbl.grid(row=1, column=0, padx=10, pady=5)
total_mercado_en = Label(F4, bd=8, relief=GROOVE, textvariable=total_mercado,bg ="#427bf5")
total_mercado_en.grid(row=1, column=1, ipady=2, ipadx=5)
# ================
total_talho_peixeiria_lbl = Label(F4, font=("times new roman", 15, "bold"), fg='#062b7a', bg="#427bf5", text="Total Protaína")
total_talho_peixeiria_lbl.grid(row=2, column=0, padx=10, pady=5)
total_talho_peixeiria_en = Label(F4, bd=8, relief=GROOVE, textvariable=total_talho_peixeiria,bg ="#427bf5")
total_talho_peixeiria_en.grid(row=2, column=1, ipady=2, ipadx=5)
# ================
impostoscomida_lbl = Label(F4, font=("times new roman", 15, "bold"), fg='#062b7a', bg="#427bf5", text="Imposto Comida")
impostoscomida_lbl.grid(row=0, column=2, padx=30, pady=0)
impostoscomida_en = Label(F4, bd=8, relief=GROOVE, textvariable=impostoscomida,bg ="#427bf5")
impostoscomida_en.grid(row=0, column=3, ipady=2, ipadx=5)
# =================
impostosmercado_lbl = Label(F4, font=("times new roman", 15, "bold"), fg='#062b7a', bg="#427bf5", text="Imposto Mercado")
impostosmercado_lbl.grid(row=1, column=2, padx=30, pady=5)
impostosmercado_en = Label(F4, bd=8, relief=GROOVE, textvariable=impostosmercado,bg ="#427bf5")
impostosmercado_en.grid(row=1, column=3, ipady=2, ipadx=5)
impostostalhopeixeiria_lbl = Label(F4, font=("times new roman", 15, "bold"), fg='#062b7a', bg="#427bf5", text="Imposto Protaína")
impostostalhopeixeiria_lbl.grid(row=2, column=2, padx=10, pady=5)
impostostalhopeixeiria_en = Label(F4, bd=8, relief=GROOVE, textvariable=impostostalhopeixeiria,bg ="#427bf5")
impostostalhopeixeiria_en.grid(row=2, column=3, ipady=2, ipadx=5)
Total = StringVar()
Total_lbl = Label(F1, font=("times new roman", 15, "bold"), fg='#062b7a', bg="#427bf5", text="Total da Compra")
Total_lbl.grid(row=0, column=3, padx=10, pady=5)
Total_en = Label(F1, bd=8, relief=GROOVE, textvariable=Total,bg ="#427bf5")
Total_en.grid(row=0, column=4, ipady=2, ipadx=5)
# Butões
total_btn = Button(F4, text="Total", fg='white', bg="#225363", font=("lucida", 9, "bold"), bd=7, relief=GROOVE, command=total)
total_btn.grid(row=1, column=4, ipadx=20, padx=30)
conta_btn = Button(F4, text="Gerar Conta", fg='white', bg="#225363", font=("lucida", 9, "bold"), bd=7,
relief=GROOVE,command=conta)
conta_btn.grid(row=1, column=5, ipadx=20)
limpar_btn = Button(F4, text="Limpar Conta", fg='white', bg="#225363", font=("lucida", 9, "bold"), bd=7, relief=GROOVE,command=limpar)
limpar_btn.grid(row=1, column=6, ipadx=20, padx=30)
limparformulário_btn = Button(F4, text="Limpar Formulário", fg='white', bg="#225363",
font=("lucida", 8, "bold"),
bd=7, relief=GROOVE, command=limpezafornulario)
limparformulário_btn.grid(row=1, column=7, ipadx=10, padx=30)
sair_btn = Button(F4, text="Sair", fg='white', bg="#225363", font=("lucida", 9, "bold"), bd=7, relief=GROOVE,
command=sair)
sair_btn.grid(row=1, column=8, ipadx=20)
root.mainloop()