SAZONBURGUER / utils /data_manager.py
Josedcape's picture
Update utils/data_manager.py
64e5f04 verified
# data_manager.py
import pandas as pd
import streamlit as st
class PedidoAgent:
def __init__(self, menu_csv_path):
self.menu_csv_path = menu_csv_path
self.menu_data = self.load_menu()
def load_menu(self):
try:
df_menu = pd.read_csv(self.menu_csv_path)
productos = df_menu["Producto"].tolist()
precios = df_menu["Precio"].tolist()
return {"productos": productos, "precios": precios}
except Exception as e:
st.error(f"Error al cargar el menú: {e}")
return None
def realizar_pedido(self, state):
if not self.menu_data:
st.warning("No se pudo cargar el menú.")
return
productos = self.menu_data["productos"]
precios = self.menu_data["precios"]
# Interfaz de usuario para seleccionar productos y cantidades
with st.form("pedido_form"):
producto_seleccionado = st.selectbox("Producto:", productos)
cantidad = st.number_input("Cantidad:", min_value=1, value=1)
submitted = st.form_submit_button("Agregar al pedido")
if submitted:
precio = precios[productos.index(producto_seleccionado)]
state.pedidos.append(
{"Producto": producto_seleccionado, "Cantidad": cantidad, "Precio": precio}
)
st.success("Pedido agregado correctamente")
# Mostrar el pedido actual
st.subheader("Pedido actual:")
if state.pedidos:
df_pedidos = pd.DataFrame(state.pedidos)
st.table(df_pedidos)
class CalculoPedidoAgent:
def calcular_total(self, state):
st.subheader("Resumen del Pedido")
if state.pedidos:
df_pedidos = pd.DataFrame(state.pedidos)
st.table(df_pedidos)
total = df_pedidos["Cantidad"].mul(df_pedidos["Precio"]).sum()
st.markdown(f"**Total: ${total:.2f}**")
else:
st.info("El pedido está vacío.")