Mundo em Python

Gestão de Supermercado

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()

 


Link

0