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">

  1. 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

  1. $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

janela = Tk() janela.geometry("400x400+200+200") janela.title("Think About Eat!") janela["bg"] = "#eeddff"

  1. $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$



#FRAME DE FAZER O LOGIN

  1. $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

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

  1. $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$


#FRAME DO DONO DO RESTAURANTE

  1. $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

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

  1. $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$



#FRAME PRINCIPAL

  1. $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

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">

  1. C:\Python27\ python
  2. -*- coding: utf-8 -*-

import ttk from Tkinter import *

  1. JANELA
  2. $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

janela = Tk() janela.geometry("600x600+400+400") janela.title("Movimentações do Sistema") janela["bg"] = "#eeddff"


  1. $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  1. FRAME DE FAZER O LOGIN
  2. $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

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


  1. $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  2. ---------------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")
  1. 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)
  1. ---------------é necessário ter um arquivo chamado pedido no caminho abaixo, aqui fazemos a leitura do conteudo que está
  2. ---------------inserido no arquivo pedido.txt
       arquivo = open('C:/arq/pedido.txt', 'r')
       texto = arquivo.readlines()
       arquivo.close()
       x = 0
  1. --------------- 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")
       # -------------------------------------
  1. ---------------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")
  1. 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)
  1. --------------- realiza a leitura do arquivo pedido_concluido que está localizadono seguinte caminho
  2. -----------------C:/arq/pedido_concuido.txt
       arquivo = open('C:/arq/pedido_concuido.txt', 'r')
       texto = arquivo.readlines()
       arquivo.close()
       x = 0
  1. ---------------- 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")
       # -------------------------------------
  1. ---------- 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")
  1. 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)
  1. --------------- aqui fazemos a leitura do arquivo.
       arquivo = open('C:/arq/promocao.txt', 'r')
       texto = arquivo.readlines()
       arquivo.close()
       x = 0
  1. --------------- 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
  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")
       # -------------------------------------


  1. FRAME DO DONO DO RESTAURANTE
  2. $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

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
  1. ------------------ 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()
  1. --------------------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():
  1. ----------- 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()
  1. ---------------------- 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()
  1. --------------- 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()


  1. ------ 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')
  1. ------ 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()


  1. -------------------------------------------------------------------
  1. $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$



  1. FRAME PRINCIPAL
  2. $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

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:
    • Aluno 3:
    • Aluno 4: