Explicación:
Notas:
Las funciones leer_bakery() y leer_modificadores() siguen exactamente el mismo patron, cambiando solo las columnas especificas de cada catalogo.
carpeta_catalogo = Path("datos/catalogos")
#Definir la primera función para leer catálogo de bebidas
def leer_bebidas():
# Creamos la ruta completa al archivo CSV
ruta = carpeta_catalogo / "bebidas_menu.csv"
# Abrimos el archivo y leemos su contenido y lo almacenamos en un diccionario en f
with open(ruta, newline="", encoding='utf-8-sig') as f:
# leer el archivo CSV y indicar que el delimitador es una coma
archivo = csv.DictReader(f, delimiter=',')
bebidas = []
for fila in archivo:
# Agregamos cada fila del archivo CSV a la lista bebidas
bebidas.append({"id_bebida": fila["id_bebida"].strip(),"nombre": fila["nombre"].strip(), "precios_base": float(fila["precios_base"]),"categoria": fila.get("categoria", "").strip(),"activo": int(fila["activo"])})
return bebidas
# Probamos la función
if __name__ == "__main__":
print(leer_bebidas())
import tkinter as tk # importar librería para utilizar métodos de Tkinter
from tkinter import messagebox # mensajes emergentes
import datetime
import data_io
pedido_actual = {
"fecha_hora": datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
"lineas": [],
"total": 0.0}
id_linea_actual = 0
def abrir_ventana_pedido():
"""Implementa la lógica para abrir la venta de nuevo pedido"""
ventana_pedido = tk.Toplevel(ventana)
ventana_pedido.title("Café el economista")
ventana_pedido.geometry("400x350")
tk.Label(ventana_pedido, text="Nuevo Pedido", font=("Arial", 14)).pack(pady=20)
def cancelar_pedido():
confirmar = messagebox.askyesno("Cancelar pedido", "¿Realmente desea cancelar el pedido?")
if confirmar:
pedido_actual["lineas"].clear()
pedido_actual["total"] = 0.0
pedido_actual["fecha_hora"] = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
global id_linea_actual
id_linea_actual = 0
messagebox.showinfo("Pedido cancelado", "El pedido fue cancelado correctamente.")
ventana_pedido.destroy()
# Botones del menú de pedido
tk.Button(ventana_pedido, text="Bebidas", width=25, command=mostrar_bebidas).pack(pady=5)
tk.Button(ventana_pedido, text="Bakery", width=25, command=mostrar_bakery).pack(pady=5)
tk.Button(ventana_pedido, text="Ver pedido",width=25, command=ver_pedido).pack(pady=10)
tk.Button(ventana_pedido, text="Pagar pedido", width=25, command=pagar_pedido).pack(pady=5)
tk.Button(ventana_pedido, text="Cancelar pedido", width=25, command=cancelar_pedido).pack(pady=20)
BEBIDAS = data_io.leer_bebidas()
BAKERY = data_io.leer_bakery()
MODIFICADORES = data_io.leer_modificadores()
# Filtrar bebidas activas
bebidas_activas = []
for bebida in BEBIDAS:
if bebida["activo"] == 1:
bebidas_activas.append(bebida)