Etiqueta: visualeditor |
|||
| Linha 2 040: | Linha 2 040: | ||
* Implementar a funcionalidade abaixo: | * Implementar a funcionalidade abaixo: | ||
** Aluno 1: | ** Aluno 1: | ||
** Aluno 2: | ** Aluno 2: Ana Flávia Souza e Silva - adicionar característica do prato | ||
** Aluno 3: | ** Aluno 3: | ||
** Aluno 4: | ** Aluno 4: | ||
* | * | ||
Edição das 11h11min de 4 de dezembro de 2017
Escopo
- Desenvolver uma aplicação para pedidos de refeição que permita mostrar o cardápio do dia e efetuar pedidos de clientes
Funcionalidades
- Mostrar o cardápio do dia
- Cadastrar o cardápio do dia
- Alterar o cardápio
- Novas funcionalidades:
- 1. Cadastrar o pedido do cliente => Permite que o pedido do cliente seja inserido e os dados serão gravados em arquivo
- 2. Receber confirmação => Faz com que apareça na tela (ou seja enviado email para o cliente) mensagem confirmando pedido
- 3. Concluir pedido => Opção específica para cozinha que veria os pedidos em ordem cronológica e informaria que está pronto
- 4. Promoções => Mostraria as opções do dia que estiverem em promoção
<syntaxhighlight line="1" lang="python3">
- Foi necessário arrumar o erro de, caso os arquivos não existam, apresente uma mensagem informando o mesmo.
from tkinter import * from functools import partial from tkinter import ttk import os.path
#JANELA
- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
janela = Tk() janela.geometry("400x400+200+200") janela.title("Think About Eat!") janela["bg"] = "#eeddff"
- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#FRAME DE FAZER O LOGIN
- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
def tenho_rest(): home.destroy() login = Frame() login["bg"] = "#eeddff"
usuario = Label(login, text = "Usuário: ", bg = "#eeddff") usuario.pack(fill = BOTH) us = Entry(login) us.pack()
senha = Label(login, text = "Senha: ", bg = "#eeddff") senha.pack() se = Entry(login, show = '*') se.pack()
#-------------Valida a senha def valido(): user = us.get() password = se.get()
if os.path.exists('/root/python/senhas.txt') and os.path.exists('/root/python/dado.txt'):
arquivo = open('/root/python/senhas.txt', 'r') texto = arquivo.readlines() arquivo.close()
k = 0 for linha in texto: lista = linha.split() if lista[0] == user: k = 1; if lista[1] == password: login.destroy() us.destroy() se.destroy() meu_rest(lista[2]) else: errou = Label(login, text = "Ahh, não! Algo está errado!", bg = "#d1fce1") errou.pack() if k == 0: errou = Label(login, text = "Ahh, não! Algo está errado!", bg = "#d1fce1") errou.pack() else: bugou = Tk() bugou.geometry("300x300+200+200") bugou.title("Erro") bugou["bg"] = "#eeddff" Label(bugou, text = "Arquivo de restaurantes não encotrado").pack()
#---------------Botão confirmar finish = Button(login, text = "Pronto!", font = "Calibri 10 bold", bg = "#4f8c56", fg = "white", relief = "flat", command = valido) finish.pack() login.pack()
- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#FRAME DO DONO DO RESTAURANTE
- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
def meu_rest(nome_rest): rest = Frame() rest["bg"] = "#eeddff"
nome = Label(rest, text = nome_rest, font = ("Helvetica Neue 95 Black", 16), bg = "#eeddff") nome.pack()
tabela = ttk.Treeview(rest, selectmode = 'browse', show = 'headings' , height = 7)
arquivo = open('/root/python/dado.txt', 'w') texto = arquivo.readlines() arquivo.close()
g = -1 for linha in texto: lista = linha.split() if len(lista) and lista[0] == nome_rest: g+=1 if g != -1: g+=1 if g == 2: i = 0 lista = linha.split() while i < len(lista): tabela.insert("", 'end', text = "L1", values = (lista[i], lista[i+1])) i+=2 elif g == 3: i = 0 lista = linha.split() while i < len(lista): tabela.insert("", 'end', text = "L1", values = (lista[i], lista[i+1])) i+=2 elif g == 4: i = 0 lista = linha.split() while i < len(lista): tabela.insert("", 'end', text = "L1", values = (lista[i], lista[i+1])) i+=2 elif g == 5: i = 0 lista = linha.split() while i < len(lista): tabela.insert("", 'end', text = "L1", values = (lista[i], lista[i+1])) i+=2 g = -1 break
#------------------------ Tabela de produtos
tabela.pack() tabela["columns"] = ("1", "2") tabela['show'] = 'headings'
tabela.column("1", width=150, anchor='c') tabela.column("2", width=150, anchor='c')
tabela.heading("1", text="Nome") tabela.heading("2", text="Preço")
#-------------------------------------
#------------------------Função para deletar o restaurante def delete_rest():
j1 = Tk() j1.geometry("250x250+300+150") j1.title("Validação") tit = Label(j1, text="Digite sua senha:") tit.pack() sen = Entry(j1, show = '*') sen.pack()
#Valido a senha def valido(): senha = sen.get() arquivo = open('/root/python/senhas.txt', 'r') texto = arquivo.readlines() arquivo.close()
for linha in texto: lista = linha.split() if len(lista) and lista[2] == nome_rest: if lista[1] == senha: deleta() else: errou = Label(j1, text = "Ahh, não! Algo está errado!") errou.pack()
def deleta(): #Deleto do arquivo de restaurantes arquivo = open('/root/python/dado.txt', 'r') texto = arquivo.readlines() arquivo.close() arquivo = open('/root/python/dado.txt', 'w') k = -2; for linha in texto: lista = linha.split() if len(lista) and lista[0] == nome_rest: k = -1 if k != -2: k+=1 if k == -1: arquivo.writelines(linha) if k == 4: k = -1 arquivo.close()
#Deleto do arquivo de logins arquivo = open('/root/python/senhas.txt', 'r') texto = arquivo.readlines() arquivo.close() arquivo = open('/root/python/senhas.txt', 'w') k = -2; for linha in texto: lista = linha.split() if lista[2] != nome_rest: arquivo.writelines(linha) arquivo.close() j1.destroy() janela.destroy()
#-----------------Botão confirmar ok = Button(j1, compound = "left", bg = "#54d863", text = "Ok", font = "Calibri 11", relief = "flat", command = valido) ok.pack()
#-------------------------------------------------------
#------------------------Função para adicionar algo no cardápio
def add_card():
add = Tk()
add.geometry("250x250+300+150")
add.title("Adicionar produto")
nome = nome_rest tip = Label(add, text="Tipo do produto:") tip.pack() ex = Label(add, text="(entrada, principal, sobremesa ou prato vegano)", font = ("Calibri 11", 6)) ex.pack() t = Entry(add) t.pack() nom = Label(add, text="Nome:") nom.pack() n = Entry(add) n.pack() prec = Label(add, text="Preço:") prec.pack() ex1 = Label(add, text="Ex: R$2,00", font = ("Calibri 11", 6)) ex1.pack() p = Entry(add) p.pack()
# Adiciona def valide(): tipo = t.get() novo = n.get() preco = p.get()
arquivo = open('/root/python/dado.txt', 'r') texto = arquivo.readlines() arquivo.close()
#--------------------- Verifico se já existe h = 0 g = -1 y = -1 b = 0 x = 0 for linha in texto: lista = linha.split() if len(lista) and lista[0] == nome: y += 1 if tipo == 'entrada': b = 1 elif tipo == 'principal': b = 2 elif tipo == 'sobremesa': b = 3 elif tipo == 'prato vegano': b = 4 else: break elif y != -1: y += 1 if b == y: for i in lista: if i == novo: x = 1 nao = Label(add, text = "Produto já existente.", font = ("Calibri 11", 8)) nao.pack() break
#----------------------- Se nao existir, crio if x == 0: arquivo = open('/root/python/dado.txt', 'w') for linha in texto: lista = linha.split() if len(lista) and lista[0] == nome: g = 0 if tipo == 'entrada': h = 1 elif tipo == 'principal': h = 2 elif tipo == 'sobremesa': h = 3 elif tipo == 'prato vegano': h = 4 else: nao = Label(add, text = "Tipo de produto inválido.", font = ("Calibri 11", 8)) nao.pack() if g != -1 and h != 0: g+=1 if g == h: k = len(linha) linha += novo linha += ' ' linha += preco linha += ' ' arquivo.writelines(linha) arquivo.close() if h != 0: add.destroy() rest.destroy() meu_rest(nome_rest)
#-------------------Botão confirmar finish = Button(add, text = "Pronto!", compound = "left", bg = "#54d863", font = "Calibri 11", relief = "flat", command = valide) finish.place(x = 100, y = 300) finish.pack() add.mainloop()
#--------------------------------------------------
#----------------- Função para deletar algo do cardápio def del_card(): delete = Tk() delete.geometry("250x250+300+150") delete.title("Deletar produto")
tip = Label(delete, text="Tipo do produto:") tip.pack() ex = Label(delete, text="(entrada, principal, sobremesa ou prato vegano)", font = ("Calibri 11", 6)) ex.pack() t = Entry(delete) t.pack() nom = Label(delete, text="Nome:") nom.pack() n = Entry(delete) n.pack() t.pack() n.pack()
# Deleta def valide(): tipo = t.get() comida = n.get()
arquivo = open('/root/python/dado.txt', 'r') texto = arquivo.readlines() arquivo.close() arquivo = open('/root/python/dado.txt', 'w')
h = 0 g = -2 c = 0 for linha in texto: lista = linha.split() if len(lista) and lista[0] == nome_rest: g = -1 if tipo == 'entrada': h = 1 elif tipo == 'principal': h = 2 elif tipo == 'sobremesa': h = 3 elif tipo == 'prato vegano': h = 4 else: nao = Label(delete, text = "Tipo de produto inválido.", font = ("Calibri 11", 8)) nao.pack() u = 0 lista2 = [] if g != -2 and h != 0: g+=1 if g == h: #s = u = 1 v = 0 lista1 = linha.split() for i in lista1: if i == comida: v = 1 c = 1 elif v == 1: v = 0 else: lista2.append(i+' ') lista2.append('\n') if u == 1: arquivo.writelines(lista2) else: arquivo.writelines(linha)
if c == 0 and h != 0: nao = Label(delete, text = "Esse produto não foi encontrado.", font = ("Calibri 11", 8)) nao.pack() nao1 = Label(delete, text = "Tente Novamente!", font = ("Calibri 11", 8)) nao1.pack() elif h != 0: arquivo.close() delete.destroy() rest.destroy() meu_rest(nome_rest)
#-------------Botão confirmar finish = Button(delete, text = "Pronto!", compound = "left", bg = "#54d863", font = "Calibri 11", relief = "flat", command = valide) finish.place(x = 100, y = 300) finish.pack() delete.mainloop()
#---------------------------------------------------------
#----------------------------------------------------------Função para atualizar produto
def att_card(): atualizar = Tk() atualizar.geometry("250x250+300+150") atualizar.title("Deletar produto")
tip = Label(atualizar, text="Tipo do produto:") tip.pack() ex = Label(atualizar, text="(entrada, principal, sobremesa ou prato vegano)", font = ("Calibri 11", 6)) ex.pack() t = Entry(atualizar) t.pack() nom = Label(atualizar, text="Nome:") nom.pack() n = Entry(atualizar) n.pack() newnom = Label(atualizar, text="Novo nome:") newnom.pack() new = Entry(atualizar) new.pack() newp = Label(atualizar, text="Novo preço:") newp.pack() ex1 = Label(atualizar, text="Ex: R$2,00", font = ("Calibri 11", 6)) ex1.pack() np = Entry(atualizar) np.pack()
# Atualiza def valide(): tipo = t.get() comida = n.get() novonome = new.get() novopreco = np.get()
arquivo = open('/root/python/dado.txt', 'r') texto = arquivo.readlines() arquivo.close() arquivo = open('/root/python/dado.txt', 'w')
h = 0 g = -2 c = 0 for linha in texto: lista = linha.split() if len(lista) and lista[0] == nome_rest: g = -1 if tipo == 'entrada': h = 1 elif tipo == 'principal': h = 2 elif tipo == 'sobremesa': h = 3 elif tipo == 'prato vegano': h = 4 else: nao = Label(atualizar, text = "Tipo de produto inválido.", font = ("Calibri 11", 8)) nao.pack() u = 0 lista2 = [] if g != -2 and h != 0: g+=1 if g == h: #s = u = 1 v = 0 lista1 = linha.split() for i in lista1: if i == comida: v = 1 c = 1 lista2.append(novonome+' ') elif v == 1: v = 0 lista2.append(novopreco+' ') else: lista2.append(i+' ') lista2.append('\n') if u == 1: arquivo.writelines(lista2) else: arquivo.writelines(linha)
if c == 0 and h != 0: nao = Label(atualizar, text = "Esse produto não foi encontrado.", font = ("Calibri 11", 8)) nao.pack() nao1 = Label(atualizar, text = "Tente Novamente!", font = ("Calibri 11", 8)) nao1.pack() elif h != 0: arquivo.close() atualizar.destroy() rest.destroy() meu_rest(nome_rest)
#-------------Botão confirmar finish = Button(atualizar, text = "Pronto!", compound = "left", bg = "#54d863", font = "Calibri 11", relief = "flat", command = valide) finish.place(x = 100, y = 300) finish.pack() atualizar.mainloop()
#---------------------------------------------------------------------------------
#------------------- Botoes de adicionar e deletar
b_add = Button(rest, compound = "left", bg = "#54d863", text = "Adicionar produto", font = "Calibri 11", relief = "flat", command = add_card)
b_add.pack()
b_del = Button(rest, compound = "left", bg = "#ff1616", text = "Deletar produto", font = "Calibri 11", relief = "flat", command=del_card)
b_del.pack()
b_att = Button(rest, compound = "left", bg = "#fcf811", text = "Atualizar produto", font = "Calibri 11", relief = "flat", command=att_card)
b_att.pack()
b_del_rest = Button(rest, compound = "left", bg = "#000000", fg = "white", text = "Deletar restaurante", font = "Calibri 11", relief = "flat", command=delete_rest)
b_del_rest.pack()
rest.pack()
#-------------------------------------------------------------------
- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#FRAME PRINCIPAL
- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
home = Frame(janela) tenho = Button(home, compound = "left", bg = "white", text = "Já tenho um restaurante", font = "Calibri 11", relief = "flat", command = tenho_rest) tenho.pack() home.pack() janela.mainloop()
</syntaxhighlight>
Código
<syntaxhighlight line="1" lang="python3"> from tkinter import * from functools import partial from tkinter import ttk
#JANELA $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ janela = Tk() janela.geometry("400x400+200+200") janela.title("Think About Eat!") janela["bg"] = "#eeddff"
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#FRAME DE FAZER O LOGIN $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ def tenho_rest(): home.destroy() login = Frame() login["bg"] = "#eeddff"
usuario = Label(login, text = "Usuário: ", bg = "#eeddff") usuario.pack(fill = BOTH) us = Entry(login) us.pack()
senha = Label(login, text = "Senha: ", bg = "#eeddff") senha.pack() se = Entry(login, show = '*') se.pack()
#-------------Valida a senha def valido(): user = us.get() password = se.get()
arquivo = open('C:/Users/Lucia/Desktop/senhas.txt', 'r') texto = arquivo.readlines() arquivo.close()
k = 0 for linha in texto: lista = linha.split() if lista[0] == user: k = 1; if lista[1] == password: login.destroy() us.destroy() se.destroy() meu_rest(lista[2]) else: errou = Label(login, text = "Ahh, não! Algo está errado!", bg = "#d1fce1") errou.pack() if k == 0: errou = Label(login, text = "Ahh, não! Algo está errado!", bg = "#d1fce1") errou.pack()
#---------------Botão confirmar finish = Button(login, text = "Pronto!", font = "Calibri 10 bold", bg = "#4f8c56", fg = "white", relief = "flat", command = valido) finish.pack() login.pack()
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#FRAME DO DONO DO RESTAURANTE $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ def meu_rest(nome_rest): rest = Frame() rest["bg"] = "#eeddff"
nome = Label(rest, text = nome_rest, font = ("Helvetica Neue 95 Black", 16), bg = "#eeddff") nome.pack()
tabela = ttk.Treeview(rest, selectmode = 'browse', show = 'headings' , height = 7)
arquivo = open('C:/Users/Lucia/Desktop/dado.txt', 'r') texto = arquivo.readlines() arquivo.close()
g = -1 for linha in texto: lista = linha.split() if len(lista) and lista[0] == nome_rest: g+=1 if g != -1: g+=1 if g == 2: i = 0 lista = linha.split() while i < len(lista): tabela.insert("", 'end', text = "L1", values = (lista[i], lista[i+1])) i+=2 elif g == 3: i = 0 lista = linha.split() while i < len(lista): tabela.insert("", 'end', text = "L1", values = (lista[i], lista[i+1])) i+=2 elif g == 4: i = 0 lista = linha.split() while i < len(lista): tabela.insert("", 'end', text = "L1", values = (lista[i], lista[i+1])) i+=2 elif g == 5: i = 0 lista = linha.split() while i < len(lista): tabela.insert("", 'end', text = "L1", values = (lista[i], lista[i+1])) i+=2 g = -1 break
#------------------------ Tabela de produtos
tabela.pack() tabela["columns"] = ("1", "2") tabela['show'] = 'headings'
tabela.column("1", width=150, anchor='c') tabela.column("2", width=150, anchor='c')
tabela.heading("1", text="Nome") tabela.heading("2", text="Preço")
#-------------------------------------
#------------------------Função para deletar o restaurante def delete_rest():
j1 = Tk() j1.geometry("250x250+300+150") j1.title("Validação") tit = Label(j1, text="Digite sua senha:") tit.pack() sen = Entry(j1, show = '*') sen.pack()
#Valido a senha def valido(): senha = sen.get() arquivo = open('C:/Users/Lucia/Desktop/senhas.txt', 'r') texto = arquivo.readlines() arquivo.close()
for linha in texto: lista = linha.split() if len(lista) and lista[2] == nome_rest: if lista[1] == senha: deleta() else: errou = Label(j1, text = "Ahh, não! Algo está errado!") errou.pack()
def deleta(): #Deleto do arquivo de restaurantes arquivo = open('C:/Users/Lucia/Desktop/dado.txt', 'r') texto = arquivo.readlines() arquivo.close() arquivo = open('C:/Users/Lucia/Desktop/dado.txt', 'w') k = -2; for linha in texto: lista = linha.split() if len(lista) and lista[0] == nome_rest: k = -1 if k != -2: k+=1 if k == -1: arquivo.writelines(linha) if k == 4: k = -1 arquivo.close()
#Deleto do arquivo de logins arquivo = open('C:/Users/Lucia/Desktop/senhas.txt', 'r') texto = arquivo.readlines() arquivo.close() arquivo = open('C:/Users/Lucia/Desktop/senhas.txt', 'w') k = -2; for linha in texto: lista = linha.split() if lista[2] != nome_rest: arquivo.writelines(linha) arquivo.close() j1.destroy() janela.destroy()
#-----------------Botão confirmar ok = Button(j1, compound = "left", bg = "#54d863", text = "Ok", font = "Calibri 11", relief = "flat", command = valido) ok.pack()
#-------------------------------------------------------
#------------------------Função para adicionar algo no cardápio
def add_card():
add = Tk()
add.geometry("250x250+300+150")
add.title("Adicionar produto")
nome = nome_rest tip = Label(add, text="Tipo do produto:") tip.pack() ex = Label(add, text="(entrada, principal, sobremesa ou prato vegano)", font = ("Calibri 11", 6)) ex.pack() t = Entry(add) t.pack() nom = Label(add, text="Nome:") nom.pack() n = Entry(add) n.pack() prec = Label(add, text="Preço:") prec.pack() ex1 = Label(add, text="Ex: R$2,00", font = ("Calibri 11", 6)) ex1.pack() p = Entry(add) p.pack()
# Adiciona def valide(): tipo = t.get() novo = n.get() preco = p.get()
arquivo = open('C:/Users/Lucia/Desktop/dado.txt', 'r') texto = arquivo.readlines() arquivo.close()
#--------------------- Verifico se já existe h = 0 g = -1 y = -1 b = 0 x = 0 for linha in texto: lista = linha.split() if len(lista) and lista[0] == nome: y += 1 if tipo == 'entrada': b = 1 elif tipo == 'principal': b = 2 elif tipo == 'sobremesa': b = 3 elif tipo == 'prato vegano': b = 4 else: break elif y != -1: y += 1 if b == y: for i in lista: if i == novo: x = 1 nao = Label(add, text = "Produto já existente.", font = ("Calibri 11", 8)) nao.pack() break
#----------------------- Se nao existir, crio if x == 0: arquivo = open('C:/Users/Lucia/Desktop/dado.txt', 'w') for linha in texto: lista = linha.split() if len(lista) and lista[0] == nome: g = 0 if tipo == 'entrada': h = 1 elif tipo == 'principal': h = 2 elif tipo == 'sobremesa': h = 3 elif tipo == 'prato vegano': h = 4 else: nao = Label(add, text = "Tipo de produto inválido.", font = ("Calibri 11", 8)) nao.pack() if g != -1 and h != 0: g+=1 if g == h: k = len(linha) linha += novo linha += ' ' linha += preco linha += ' ' arquivo.writelines(linha) arquivo.close() if h != 0: add.destroy() rest.destroy() meu_rest(nome_rest)
#-------------------Botão confirmar finish = Button(add, text = "Pronto!", compound = "left", bg = "#54d863", font = "Calibri 11", relief = "flat", command = valide) finish.place(x = 100, y = 300) finish.pack() add.mainloop()
#--------------------------------------------------
#----------------- Função para deletar algo do cardápio def del_card(): delete = Tk() delete.geometry("250x250+300+150") delete.title("Deletar produto")
tip = Label(delete, text="Tipo do produto:") tip.pack() ex = Label(delete, text="(entrada, principal, sobremesa ou prato vegano)", font = ("Calibri 11", 6)) ex.pack() t = Entry(delete) t.pack() nom = Label(delete, text="Nome:") nom.pack() n = Entry(delete) n.pack() t.pack() n.pack()
# Deleta def valide(): tipo = t.get() comida = n.get()
arquivo = open('C:/Users/Lucia/Desktop/dado.txt', 'r') texto = arquivo.readlines() arquivo.close() arquivo = open('C:/Users/Lucia/Desktop/dado.txt', 'w')
h = 0 g = -2 c = 0 for linha in texto: lista = linha.split() if len(lista) and lista[0] == nome_rest: g = -1 if tipo == 'entrada': h = 1 elif tipo == 'principal': h = 2 elif tipo == 'sobremesa': h = 3 elif tipo == 'prato vegano': h = 4 else: nao = Label(delete, text = "Tipo de produto inválido.", font = ("Calibri 11", 8)) nao.pack() u = 0 lista2 = [] if g != -2 and h != 0: g+=1 if g == h: s = u = 1 v = 0 lista1 = linha.split() for i in lista1: if i == comida: v = 1 c = 1 elif v == 1: v = 0 else: lista2.append(i+' ') lista2.append('\n') if u == 1: arquivo.writelines(lista2) else: arquivo.writelines(linha)
if c == 0 and h != 0: nao = Label(delete, text = "Esse produto não foi encontrado.", font = ("Calibri 11", 8)) nao.pack() nao1 = Label(delete, text = "Tente Novamente!", font = ("Calibri 11", 8)) nao1.pack() elif h != 0: arquivo.close() delete.destroy() rest.destroy() meu_rest(nome_rest)
#-------------Botão confirmar finish = Button(delete, text = "Pronto!", compound = "left", bg = "#54d863", font = "Calibri 11", relief = "flat", command = valide) finish.place(x = 100, y = 300) finish.pack() delete.mainloop()
#---------------------------------------------------------
#----------------------------------------------------------Função para atualizar produto
def att_card(): atualizar = Tk() atualizar.geometry("250x250+300+150") atualizar.title("Deletar produto")
tip = Label(atualizar, text="Tipo do produto:") tip.pack() ex = Label(atualizar, text="(entrada, principal, sobremesa ou prato vegano)", font = ("Calibri 11", 6)) ex.pack() t = Entry(atualizar) t.pack() nom = Label(atualizar, text="Nome:") nom.pack() n = Entry(atualizar) n.pack() newnom = Label(atualizar, text="Novo nome:") newnom.pack() new = Entry(atualizar) new.pack() newp = Label(atualizar, text="Novo preço:") newp.pack() ex1 = Label(atualizar, text="Ex: R$2,00", font = ("Calibri 11", 6)) ex1.pack() np = Entry(atualizar) np.pack()
# Atualiza def valide(): tipo = t.get() comida = n.get() novonome = new.get() novopreco = np.get()
arquivo = open('C:/Users/Lucia/Desktop/dado.txt', 'r') texto = arquivo.readlines() arquivo.close() arquivo = open('C:/Users/Lucia/Desktop/dado.txt', 'w')
h = 0 g = -2 c = 0 for linha in texto: lista = linha.split() if len(lista) and lista[0] == nome_rest: g = -1 if tipo == 'entrada': h = 1 elif tipo == 'principal': h = 2 elif tipo == 'sobremesa': h = 3 elif tipo == 'prato vegano': h = 4 else: nao = Label(atualizar, text = "Tipo de produto inválido.", font = ("Calibri 11", 8)) nao.pack() u = 0 lista2 = [] if g != -2 and h != 0: g+=1 if g == h: s = u = 1 v = 0 lista1 = linha.split() for i in lista1: if i == comida: v = 1 c = 1 lista2.append(novonome+' ') elif v == 1: v = 0 lista2.append(novopreco+' ') else: lista2.append(i+' ') lista2.append('\n') if u == 1: arquivo.writelines(lista2) else: arquivo.writelines(linha)
if c == 0 and h != 0: nao = Label(atualizar, text = "Esse produto não foi encontrado.", font = ("Calibri 11", 8)) nao.pack() nao1 = Label(atualizar, text = "Tente Novamente!", font = ("Calibri 11", 8)) nao1.pack() elif h != 0: arquivo.close() atualizar.destroy() rest.destroy() meu_rest(nome_rest)
#-------------Botão confirmar finish = Button(atualizar, text = "Pronto!", compound = "left", bg = "#54d863", font = "Calibri 11", relief = "flat", command = valide) finish.place(x = 100, y = 300) finish.pack() atualizar.mainloop()
#---------------------------------------------------------------------------------
#------------------- Botoes de adicionar e deletar
b_add = Button(rest, compound = "left", bg = "#54d863", text = "Adicionar produto", font = "Calibri 11", relief = "flat", command = add_card)
b_add.pack()
b_del = Button(rest, compound = "left", bg = "#ff1616", text = "Deletar produto", font = "Calibri 11", relief = "flat", command=del_card)
b_del.pack()
b_att = Button(rest, compound = "left", bg = "#fcf811", text = "Atualizar produto", font = "Calibri 11", relief = "flat", command=att_card)
b_att.pack()
b_del_rest = Button(rest, compound = "left", bg = "#000000", fg = "white", text = "Deletar restaurante", font = "Calibri 11", relief = "flat", command=delete_rest)
b_del_rest.pack()
rest.pack()
#-------------------------------------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#FRAME PRINCIPAL
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
home = Frame(janela)
tenho = Button(home, compound = "left", bg = "white", text = "Já tenho um restaurante", font = "Calibri 11", relief = "flat", command = tenho_rest)
tenho.pack()
home.pack()
janela.mainloop()
</syntaxhighlight>
Código comentado
<syntaxhighlight lang="python3">
- C:\Python27\ python
- -*- coding: utf-8 -*-
import ttk from Tkinter import *
- JANELA
- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
janela = Tk() janela.geometry("600x600+400+400") janela.title("Movimentações do Sistema") janela["bg"] = "#eeddff"
- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
- FRAME DE FAZER O LOGIN
- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
def tenho_rest():
home.destroy() login = Frame() login["bg"] = "#eeddff"
usuario = Label(login, text="Usuário: ", bg="#eeddff") usuario.pack(fill=BOTH) us = Entry(login) us.pack()
senha = Label(login, text="Senha: ", bg="#eeddff") senha.pack() se = Entry(login, show='*') se.pack()
# -------------Valida a senha
def valido():
user = us.get()
password = se.get()
arquivo = open('C:/arq/senhas.txt', 'r')
texto = arquivo.readlines()
arquivo.close()
k = 0
for linha in texto:
lista = linha.split()
if lista[0] == user:
k = 1;
if lista[1] == password:
login.destroy()
us.destroy()
se.destroy()
meu_rest(lista[2])
else:
errou = Label(login, text=" ocorreu um erro " + lista[0], bg="#d1fce1")
errou.pack()
if k == 0:
vretorno = lista[0] + " pass: " + lista[1]
errou = Label(login, text=vretorno, bg="#d1fce1")
errou.pack()
errou = Label(login, text="Usuário informado é inválido ou não existe!", bg="#d1fce1")
errou.pack()
# ---------------Botão confirmar
finish = Button(login, text="Pronto!", font="Calibri 10 bold", bg="#4f8c56", fg="white", relief="flat",
command=valido)
finish.pack()
login.pack()
- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
- ---------------Função responsável por visualizar o pedido que foi realizado
def visualiza_pedido():
rest = Tk()
rest.geometry("800x600+400+150")
rest.title("Adicionar produto")
- rest = Frame()
rest["bg"] = "#eeddff"
nome = Label(rest, text='Pedidos realizados', font=("Helvetica Neue 95 Black", 16), bg="#eeddff")
nome.pack()
tabela = ttk.Treeview(rest, selectmode='browse', show='headings', height=150)
- ---------------é necessário ter um arquivo chamado pedido no caminho abaixo, aqui fazemos a leitura do conteudo que está
- ---------------inserido no arquivo pedido.txt
arquivo = open('C:/arq/pedido.txt', 'r')
texto = arquivo.readlines()
arquivo.close()
x = 0
- --------------- vamos percorrer o arquivo linha alinha para inserir as informações no treeview.
while x < len(texto):
if texto[x] == "\n":
local = texto.index(texto[x])
texto.pop(local)
else:
texto[x] = texto[x].split('|')
tabela.insert("", 'end', text="l1", values=(texto[x]))
x += 1
# ------------------------ AQUI ESTAMOS CRIANDO AS COLUNAS NO TREVIEW
tabela.pack()
tabela["columns"] = ("1", "2", "3", "4", "5", "6", "7", "8", "9")
tabela['show'] = 'headings'
tabela.column("1", width=100, anchor='c')
tabela.column("2", width=100, anchor='c')
tabela.column("3", width=100, anchor='c')
tabela.column("4", width=100, anchor='c')
tabela.column("5", width=100, anchor='c')
tabela.column("6", width=100, anchor='c')
tabela.column("7", width=100, anchor='c')
tabela.column("8", width=100, anchor='c')
tabela.column("9", width=100, anchor='c')
tabela.heading("1", text="Restaurante")
tabela.heading("2", text="Pedido")
tabela.heading("3", text="Produto")
tabela.heading("4", text="Preço")
tabela.heading("5", text="Cliente")
tabela.heading("6", text="Telefone")
tabela.heading("7", text="rua")
tabela.heading("8", text="numero")
tabela.heading("9", text="bairro")
# -------------------------------------
- ---------------Função responsável por mostrar os produtos que foram concluidos.
def visualiza_pedido_concluido():
rest = Tk()
rest.geometry("800x600+400+150")
rest.title("Adicionar produto")
- rest = Frame()
rest["bg"] = "#eeddff"
nome = Label(rest, text='Pedidos concluidos', font=("Helvetica Neue 95 Black", 16), bg="#eeddff")
nome.pack()
tabela = ttk.Treeview(rest, selectmode='browse', show='headings', height=150)
- --------------- realiza a leitura do arquivo pedido_concluido que está localizadono seguinte caminho
- -----------------C:/arq/pedido_concuido.txt
arquivo = open('C:/arq/pedido_concuido.txt', 'r')
texto = arquivo.readlines()
arquivo.close()
x = 0
- ---------------- Percorrer linha a linha do arquivo para inserir em um treeviewe que servira para visualizarmos no estilo relatório.
while x < len(texto):
if texto[x] == "\n":
local = texto.index(texto[x])
texto.pop(local)
else:
texto[x] = texto[x].split('|')
tabela.insert("", 'end', text="l1", values=(texto[x]))
x += 1
# ------------------------ aqui estamos montando as colunas do treeview
tabela.pack()
tabela["columns"] = ("1", "2")
tabela['show'] = 'headings'
tabela.column("1", width=100, anchor='c')
tabela.column("2", width=100, anchor='c')
tabela.heading("1", text="Restaurante")
tabela.heading("2", text="Pedido")
# -------------------------------------
- ---------- função responsável por visualizar os produtos que estão em promoçao.
def visualiza_promocao():
rest = Tk()
rest.geometry("800x600+400+150")
rest.title("Adicionar produto")
- rest = Frame()
rest["bg"] = "#eeddff"
nome = Label(rest, text='Promoções', font=("Helvetica Neue 95 Black", 16), bg="#eeddff")
nome.pack()
tabela = ttk.Treeview(rest, selectmode='browse', show='headings', height=150)
- --------------- aqui fazemos a leitura do arquivo.
arquivo = open('C:/arq/promocao.txt', 'r')
texto = arquivo.readlines()
arquivo.close()
x = 0
- --------------- Aqui percorremos linha a linha para inserirmos no treeview
while x < len(texto):
if texto[x] == "\n":
local = texto.index(texto[x])
texto.pop(local)
else:
texto[x] = texto[x].split('|')
tabela.insert("", 'end', text="l1", values=(texto[x]))
x += 1
- --------------- aqui estamos montando as colunas do treeview
tabela.pack()
tabela["columns"] = ("1", "2","3")
tabela['show'] = 'headings'
tabela.column("1", width=100, anchor='c')
tabela.column("2", width=120, anchor='c')
tabela.column("3", width=100, anchor='c')
tabela.heading("1", text="Restaurante")
tabela.heading("2", text="Produto")
tabela.heading("3", text="Preço")
# -------------------------------------
- FRAME DO DONO DO RESTAURANTE
- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
def meu_rest(nome_rest):
rest = Frame() rest["bg"] = "#eeddff"
nome = Label(rest, text=nome_rest, font=("Helvetica Neue 95 Black", 16), bg="#eeddff")
nome.pack()
tabela = ttk.Treeview(rest, selectmode='browse', show='headings', height=7)
arquivo = open('C:/arq/dado.txt', 'r')
texto = arquivo.readlines()
arquivo.close()
g = -1
for linha in texto:
lista = linha.split()
if len(lista) and lista[0] == nome_rest:
g += 1
if g != -1:
g += 1
if g == 2:
i = 0
lista = linha.split()
while i < len(lista):
tabela.insert("", 'end', text="L1", values=(lista[i], lista[i + 1]))
i += 2
elif g == 3:
i = 0
lista = linha.split()
while i < len(lista):
tabela.insert("", 'end', text="L1", values=(lista[i], lista[i + 1]))
i += 2
elif g == 4:
i = 0
lista = linha.split()
while i < len(lista):
tabela.insert("", 'end', text="L1", values=(lista[i], lista[i + 1]))
i += 2
elif g == 5:
i = 0
lista = linha.split()
while i < len(lista):
tabela.insert("", 'end', text="L1", values=(lista[i], lista[i + 1]))
i += 2
g = -1
break
- ------------------ aqui estamos montando as colunas do treeview
tabela.pack()
tabela["columns"] = ("1", "2")
tabela['show'] = 'headings'
tabela.column("1", width=150, anchor='c')
tabela.column("2", width=150, anchor='c')
tabela.heading("1", text="Nome")
tabela.heading("2", text="Preço")
# ------------------------------------- # ------------------------Função para deletar o restaurante def delete_rest():
j1 = Tk()
j1.geometry("250x250+300+150")
j1.title("Validação")
tit = Label(j1, text="Digite sua senha:")
tit.pack()
sen = Entry(j1, show='*')
sen.pack()
# Valido a senha
def valido():
senha = sen.get()
arquivo = open('C:/arq/senhas.txt', 'r')
texto = arquivo.readlines()
arquivo.close()
for linha in texto:
lista = linha.split()
if len(lista) and lista[2] == nome_rest:
if lista[1] == senha:
deleta()
else:
errou = Label(j1, text="Ahh, não! Algo está errado!")
errou.pack()
def deleta():
# Deleto do arquivo de restaurantes
arquivo = open('C:/arq/dado.txt', 'r')
texto = arquivo.readlines()
arquivo.close()
arquivo = open('C:/arq/dado.txt', 'w')
k = -2;
for linha in texto:
lista = linha.split()
if len(lista) and lista[0] == nome_rest:
k = -1
if k != -2:
k += 1
if k == -1:
arquivo.writelines(linha)
if k == 4:
k = -1
arquivo.close()
# Deleto do arquivo de logins
arquivo = open('C:/arq/senhas.txt', 'r')
texto = arquivo.readlines()
arquivo.close()
arquivo = open('C:/arq/senhas.txt', 'w')
k = -2;
for linha in texto:
lista = linha.split()
if lista[2] != nome_rest:
arquivo.writelines(linha)
arquivo.close()
j1.destroy()
janela.destroy()
# -----------------Botão confirmar
ok = Button(j1, compound="left", bg="#54d863", text="Ok", font="Calibri 11", relief="flat", command=valido)
ok.pack()
# -------------------------------------------------------
# ------------------------Função para adicionar algo no cardápio
def add_card():
add = Tk()
add.geometry("250x250+300+150")
add.title("Adicionar produto")
nome = nome_rest
tip = Label(add, text="Tipo do produto:")
tip.pack()
ex = Label(add, text="(entrada, principal, sobremesa ou prato vegano)", font=("Calibri 11", 6))
ex.pack()
t = Entry(add)
t.pack()
nom = Label(add, text="Nome:")
nom.pack()
n = Entry(add)
n.pack()
prec = Label(add, text="Preço:")
prec.pack()
ex1 = Label(add, text="Ex: R$2,00", font=("Calibri 11", 6))
ex1.pack()
p = Entry(add)
p.pack()
# Adiciona
def valide():
tipo = t.get()
novo = n.get()
preco = p.get()
- --------------------faz a leitura do arquivo
arquivo = open('C:/arq/dado.txt', 'r')
texto = arquivo.readlines()
arquivo.close()
# --------------------- Verifico se já existe
h = 0
g = -1
y = -1
b = 0
x = 0
for linha in texto:
lista = linha.split()
if len(lista) and lista[0] == nome:
y += 1
if tipo == 'entrada':
b = 1
elif tipo == 'principal':
b = 2
elif tipo == 'sobremesa':
b = 3
elif tipo == 'prato vegano':
b = 4
else:
break
elif y != -1:
y += 1
if b == y:
for i in lista:
if i == novo:
x = 1
nao = Label(add, text="Produto já existente.", font=("Calibri 11", 8))
nao.pack()
break
# ----------------------- Se nao existir, crio
if x == 0:
arquivo = open('C:/arq/dado.txt', 'w')
for linha in texto:
lista = linha.split()
if len(lista) and lista[0] == nome:
g = 0
if tipo == 'entrada':
h = 1
elif tipo == 'principal':
h = 2
elif tipo == 'sobremesa':
h = 3
elif tipo == 'prato vegano':
h = 4
else:
nao = Label(add, text="Tipo de produto inválido.", font=("Calibri 11", 8))
nao.pack()
if g != -1 and h != 0:
g += 1
if g == h:
k = len(linha)
linha += novo
linha += ' '
linha += preco
linha += ' '
arquivo.writelines(linha)
arquivo.close()
if h != 0:
add.destroy()
rest.destroy()
meu_rest(nome_rest)
# -------------------Botão confirmar
finish = Button(add, text="Pronto!", compound="left", bg="#54d863", font="Calibri 11", relief="flat",
command=valide)
finish.place(x=100, y=300)
finish.pack()
add.mainloop()
# --------------------------------------------------
# --------------------- funcao de realizar pedido ------------------ def add_pedido():
- ----------- aqui criaremos a tela
add = Tk()
add.geometry("500x500+400+350")
add.title("Realizar pedido")
nome = nome_rest
# aqui será criado as label e os campos que ficara visivel na tela.
edpedido = Label(add, text="Numero do pedido")
edpedido.pack()
pedido = Entry(add)
pedido.pack()
ednomeprod = Label(add, text="Nome do produto:")
ednomeprod.pack()
nomeprod = Entry(add)
nomeprod.pack()
edpreco = Label(add, text="Preço:")
edpreco.pack()
ex1 = Label(add, text="Ex: R$2,00", font=("Calibri 11", 6))
ex1.pack()
preco = Entry(add)
preco.pack()
edcliente = Label(add, text="Nome do cliente:")
edcliente.pack()
cliente = Entry(add)
cliente.pack()
edtelefone = Label(add, text="Telefone:")
edtelefone.pack()
telefone = Entry(add)
telefone.pack()
edrua = Label(add, text="Rua:")
edrua.pack()
rua = Entry(add)
rua.pack()
ednumero = Label(add, text="numero:")
ednumero.pack()
numero = Entry(add)
numero.pack()
edbairro = Label(add, text="Bairro:")
edbairro.pack()
bairro = Entry(add)
bairro.pack()
#----- VALIDAÇÃO DOS CAMPOS PARA POSTERIORMENTE GRAVAR ELES NO ARQUIVO
def valide_ped():
A = pedido.get()
B = nomeprod.get()
C = preco.get()
D = cliente.get()
E = telefone.get()
F = rua.get()
G = numero.get()
H = bairro.get()
- ---------------------- REALIZANDO LEITURA DO ARQUIVO
arquivo = open('C:/arq/pedido.txt', 'r')
texto = arquivo.readlines()
arquivo.close()
arquivo = open('C:/arq/pedido.txt', 'a')
arquivo.write('\n'+nome_rest + '|' + A + '|' + B + '|' + C + '|' + D + '|' + E + '|' + F + '|' + G + '|' + H)
arquivo.close()
add.destroy()
rest.destroy()
meu_rest(nome_rest)
# -------------------Botão confirmar
finish = Button(add, text="Pronto!", compound="left", bg="#54d863", font="Calibri 11", relief="flat",
command=valide_ped)
finish.place(x=100, y=300)
finish.pack()
add.mainloop()
# --------------------- FUNÇÃO PARA CONCLUIR PEDIDOS REALIZADOS --------------------------------
def add_concluir_pedido():
add = Tk()
add.geometry("250x250+400+350")
add.title("Concluir pedido")
nome = nome_rest
edconc_pedido = Label(add, text="Numero do pedido")
edconc_pedido.pack()
conc_pedido = Entry(add)
conc_pedido.pack()
# Adiciona
def valide_conclusao_pedido():
A = conc_pedido.get()
arquivo = open('C:/arq/pedido_concuido.txt', 'r')
texto = arquivo.readlines()
arquivo.close()
- --------------- GRAVA AS INFORMAÇÕES NO ARQUIVO
arquivo = open('C:/arq/pedido_concuido.txt', 'a')
arquivo.write('\n'+nome_rest + '|' + A )
arquivo.close()
add.destroy()
# -------------------Botão confirmar
finish = Button(add, text="Pronto!", compound="left", bg="#54d863", font="Calibri 11", relief="flat",
command=valide_conclusao_pedido)
finish.place(x=100, y=300)
finish.pack()
add.mainloop()
- ------ FUNÇÃO RESPONSÃVEL POR INSERIR OS PRODUTOS E PREÇOS NO ARQUIVO DE PROMOÇÃO
def add_promocao():
add = Tk()
add.geometry("250x250+400+350")
add.title("Adicionar Promoção")
nome = nome_rest
ednome_prod_promo = Label(add, text="Nome do produto")
ednome_prod_promo.pack()
nome_prod_promo = Entry(add)
nome_prod_promo.pack()
edpreco_prod_promo = Label(add, text="Preço do produto")
edpreco_prod_promo.pack()
preco_prod_promo = Entry(add)
preco_prod_promo.pack()
#------ FUNÇÃO PARA VALIDAR OS CAMPOS E GRAVAR NO ARQUIVO DE PROMOÇÃO
def valide_promocao():
A = nome_prod_promo.get()
B = preco_prod_promo.get()
arquivo = open('C:/arq/promocao.txt', 'r')
texto = arquivo.readlines()
arquivo.close()
arquivo = open('C:/arq/promocao.txt', 'a')
- ------ O COMANDO WRITE ESCREVE NO ARQUIVO
arquivo.write('\n'+nome_rest + '|' + A + '|' + B )
arquivo.close()
add.destroy()
# -------------------Botão confirmar
finish = Button(add, text="Pronto!", compound="left", bg="#54d863", font="Calibri 11", relief="flat",
command=valide_promocao)
finish.place(x=100, y=300)
finish.pack()
add.mainloop()
# ----------------- Função para deletar algo do cardápio
def del_card():
delete = Tk()
delete.geometry("250x250+300+150")
delete.title("Deletar produto")
tip = Label(delete, text="Tipo do produto:")
tip.pack()
ex = Label(delete, text="(entrada, principal, sobremesa ou prato vegano)", font=("Calibri 11", 6))
ex.pack()
t = Entry(delete)
t.pack()
nom = Label(delete, text="Nome:")
nom.pack()
n = Entry(delete)
n.pack()
t.pack()
n.pack()
# Deleta
def valide():
tipo = t.get()
comida = n.get()
arquivo = open('C:/arq/dado.txt', 'r')
texto = arquivo.readlines()
arquivo.close()
arquivo = open('C:/arq/dado.txt', 'w')
h = 0
g = -2
c = 0
for linha in texto:
lista = linha.split()
if len(lista) and lista[0] == nome_rest:
g = -1
if tipo == 'entrada':
h = 1
elif tipo == 'principal':
h = 2
elif tipo == 'sobremesa':
h = 3
elif tipo == 'prato vegano':
h = 4
else:
nao = Label(delete, text="Tipo de produto inválido.", font=("Calibri 11", 8))
nao.pack()
u = 0
lista2 = []
if g != -2 and h != 0:
g += 1
if g == h:
# s =
u = 1
v = 0
lista1 = linha.split()
for i in lista1:
if i == comida:
v = 1
c = 1
elif v == 1:
v = 0
else:
lista2.append(i + ' ')
lista2.append('\n')
if u == 1:
arquivo.writelines(lista2)
else:
arquivo.writelines(linha)
if c == 0 and h != 0:
nao = Label(delete, text="Esse produto não foi encontrado.", font=("Calibri 11", 8))
nao.pack()
nao1 = Label(delete, text="Tente Novamente!", font=("Calibri 11", 8))
nao1.pack()
elif h != 0:
arquivo.close()
delete.destroy()
rest.destroy()
meu_rest(nome_rest)
# -------------Botão confirmar
finish = Button(delete, text="Pronto!", compound="left", bg="#54d863", font="Calibri 11", relief="flat",
command=valide)
finish.place(x=100, y=300)
finish.pack()
delete.mainloop()
# ---------------------------------------------------------
# ----------------------------------------------------------Função para atualizar produto
def att_card():
atualizar = Tk()
atualizar.geometry("250x250+300+150")
atualizar.title("Deletar produto")
tip = Label(atualizar, text="Tipo do produto:")
tip.pack()
ex = Label(atualizar, text="(entrada, principal, sobremesa ou prato vegano)", font=("Calibri 11", 6))
ex.pack()
t = Entry(atualizar)
t.pack()
nom = Label(atualizar, text="Nome:")
nom.pack()
n = Entry(atualizar)
n.pack()
newnom = Label(atualizar, text="Novo nome:")
newnom.pack()
new = Entry(atualizar)
new.pack()
newp = Label(atualizar, text="Novo preço:")
newp.pack()
ex1 = Label(atualizar, text="Ex: R$2,00", font=("Calibri 11", 6))
ex1.pack()
np = Entry(atualizar)
np.pack()
# Atualiza
def valide():
tipo = t.get()
comida = n.get()
novonome = new.get()
novopreco = np.get()
arquivo = open('C:/arq/dado.txt', 'r')
texto = arquivo.readlines()
arquivo.close()
arquivo = open('C:/arq/dado.txt', 'w')
h = 0
g = -2
c = 0
for linha in texto:
lista = linha.split()
if len(lista) and lista[0] == nome_rest:
g = -1
if tipo == 'entrada':
h = 1
elif tipo == 'principal':
h = 2
elif tipo == 'sobremesa':
h = 3
elif tipo == 'prato vegano':
h = 4
else:
nao = Label(atualizar, text="Tipo de produto inválido.", font=("Calibri 11", 8))
nao.pack()
u = 0
lista2 = []
if g != -2 and h != 0:
g += 1
if g == h:
# s =
u = 1
v = 0
lista1 = linha.split()
for i in lista1:
if i == comida:
v = 1
c = 1
lista2.append(novonome + ' ')
elif v == 1:
v = 0
lista2.append(novopreco + ' ')
else:
lista2.append(i + ' ')
lista2.append('\n')
if u == 1:
arquivo.writelines(lista2)
else:
arquivo.writelines(linha)
if c == 0 and h != 0:
nao = Label(atualizar, text="Esse produto não foi encontrado.", font=("Calibri 11", 8))
nao.pack()
nao1 = Label(atualizar, text="Tente Novamente!", font=("Calibri 11", 8))
nao1.pack()
elif h != 0:
arquivo.close()
atualizar.destroy()
rest.destroy()
meu_rest(nome_rest)
# -------------Botão confirmar
finish = Button(atualizar, text="Pronto!", compound="left", bg="#54d863", font="Calibri 11", relief="flat",
command=valide)
finish.place(x=100, y=300)
finish.pack()
atualizar.mainloop()
# ---------------------------------------------------------------------------------
# ------------------- Botoes de adicionar e deletar
b_add = Button(rest, compound="left", bg="#54d863", text="Adicionar produto", font="Calibri 11", relief="flat",
command=add_card)
b_add.pack()
b_del = Button(rest, compound="left", bg="#ff1616", text="Deletar produto", font="Calibri 11", relief="flat",
command=del_card)
b_del.pack()
b_att = Button(rest, compound="left", bg="#fcf811", text="Atualizar produto", font="Calibri 11", relief="flat",
command=att_card)
b_att.pack()
b_del_rest = Button(rest, compound="left", bg="#000000", fg="white", text="*Deletar restaurante", font="Calibri 11",
relief="flat", command=delete_rest)
b_del_rest.pack()
b_ped = Button(rest, compound="left", bg="green", text="Realizar Pedido", font="Calibri 11", relief="flat",
command=add_pedido)
b_ped.pack()
b_rel = Button(rest, compound="left", bg="blue", text="Visualizar Pedido", font="Calibri 11", relief="flat",
command=visualiza_pedido)
b_rel.pack()
b_concluir_ped = Button(rest, compound="left", bg="purple", text="Concluir Pedido", font="Calibri 11", relief="flat",
command=add_concluir_pedido)
b_concluir_ped.pack()
b_visualiza_ped_conc = Button(rest, compound="left", bg="brown", text="Pedidos concluÃdos", font="Calibri 11", relief="flat",
command=visualiza_pedido_concluido)
b_visualiza_ped_conc.pack()
b_lanca_promo = Button(rest, compound="left", bg="grey", text="Adicionar promoção", font="Calibri 11", relief="flat",
command=add_promocao)
b_lanca_promo.pack()
b_visualiza_promo = Button(rest, compound="left", bg="orange", text="Visualizar promoções", font="Calibri 11", relief="flat",
command=visualiza_promocao)
b_visualiza_promo.pack()
rest.pack()
- -------------------------------------------------------------------
- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
- FRAME PRINCIPAL
- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
home = Frame(janela) tenho = Button(home, compound="left", bg="white", text="Já tenho um restaurante", font="Calibri 11", relief="flat",
command=tenho_rest)
tenho.pack()
home.pack() janela.mainloop() </syntaxhighlight>
Apresentação Final
- Mostrar o programa funcionando para o professor
- Implementar a funcionalidade abaixo:
- Aluno 1:
- Aluno 2: Ana Flávia Souza e Silva - adicionar característica do prato
- Aluno 3:
- Aluno 4: