Spaces:
Sleeping
Sleeping
| # 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.") |