Spaces:
Sleeping
Sleeping
Update utils/data_manager.py
Browse files- utils/data_manager.py +24 -15
utils/data_manager.py
CHANGED
|
@@ -2,13 +2,15 @@
|
|
| 2 |
|
| 3 |
import pandas as pd
|
| 4 |
import streamlit as st
|
| 5 |
-
from streamlit_agent import Agent
|
| 6 |
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
|
|
|
|
|
|
|
|
|
| 10 |
try:
|
| 11 |
-
df_menu = pd.read_csv(menu_csv_path)
|
| 12 |
productos = df_menu["Producto"].tolist()
|
| 13 |
precios = df_menu["Precio"].tolist()
|
| 14 |
return {"productos": productos, "precios": precios}
|
|
@@ -16,16 +18,20 @@ class MenuTranscriptorAgent(Agent):
|
|
| 16 |
st.error(f"Error al cargar el menú: {e}")
|
| 17 |
return None
|
| 18 |
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 22 |
# Interfaz de usuario para seleccionar productos y cantidades
|
| 23 |
with st.form("pedido_form"):
|
| 24 |
producto_seleccionado = st.selectbox("Producto:", productos)
|
| 25 |
cantidad = st.number_input("Cantidad:", min_value=1, value=1)
|
| 26 |
submitted = st.form_submit_button("Agregar al pedido")
|
| 27 |
|
| 28 |
-
# Agregar al pedido y actualizar el estado
|
| 29 |
if submitted:
|
| 30 |
precio = precios[productos.index(producto_seleccionado)]
|
| 31 |
state.pedidos.append(
|
|
@@ -33,16 +39,19 @@ class PedidoAgent(Agent):
|
|
| 33 |
)
|
| 34 |
st.success("Pedido agregado correctamente")
|
| 35 |
|
| 36 |
-
# Mostrar el pedido actual
|
| 37 |
st.subheader("Pedido actual:")
|
| 38 |
if state.pedidos:
|
| 39 |
df_pedidos = pd.DataFrame(state.pedidos)
|
| 40 |
st.table(df_pedidos)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 41 |
total = df_pedidos["Cantidad"].mul(df_pedidos["Precio"]).sum()
|
| 42 |
st.markdown(f"**Total: ${total:.2f}**")
|
| 43 |
else:
|
| 44 |
-
st.info("El pedido está vacío")
|
| 45 |
-
|
| 46 |
-
# Botones para descargar (lógica de descarga aquí)
|
| 47 |
-
st.button("Generar PDF")
|
| 48 |
-
st.button("Guardar como texto")
|
|
|
|
| 2 |
|
| 3 |
import pandas as pd
|
| 4 |
import streamlit as st
|
|
|
|
| 5 |
|
| 6 |
+
class PedidoAgent:
|
| 7 |
+
def __init__(self, menu_csv_path):
|
| 8 |
+
self.menu_csv_path = menu_csv_path
|
| 9 |
+
self.menu_data = self.load_menu()
|
| 10 |
+
|
| 11 |
+
def load_menu(self):
|
| 12 |
try:
|
| 13 |
+
df_menu = pd.read_csv(self.menu_csv_path)
|
| 14 |
productos = df_menu["Producto"].tolist()
|
| 15 |
precios = df_menu["Precio"].tolist()
|
| 16 |
return {"productos": productos, "precios": precios}
|
|
|
|
| 18 |
st.error(f"Error al cargar el menú: {e}")
|
| 19 |
return None
|
| 20 |
|
| 21 |
+
def realizar_pedido(self, state):
|
| 22 |
+
if not self.menu_data:
|
| 23 |
+
st.warning("No se pudo cargar el menú.")
|
| 24 |
+
return
|
| 25 |
+
|
| 26 |
+
productos = self.menu_data["productos"]
|
| 27 |
+
precios = self.menu_data["precios"]
|
| 28 |
+
|
| 29 |
# Interfaz de usuario para seleccionar productos y cantidades
|
| 30 |
with st.form("pedido_form"):
|
| 31 |
producto_seleccionado = st.selectbox("Producto:", productos)
|
| 32 |
cantidad = st.number_input("Cantidad:", min_value=1, value=1)
|
| 33 |
submitted = st.form_submit_button("Agregar al pedido")
|
| 34 |
|
|
|
|
| 35 |
if submitted:
|
| 36 |
precio = precios[productos.index(producto_seleccionado)]
|
| 37 |
state.pedidos.append(
|
|
|
|
| 39 |
)
|
| 40 |
st.success("Pedido agregado correctamente")
|
| 41 |
|
| 42 |
+
# Mostrar el pedido actual
|
| 43 |
st.subheader("Pedido actual:")
|
| 44 |
if state.pedidos:
|
| 45 |
df_pedidos = pd.DataFrame(state.pedidos)
|
| 46 |
st.table(df_pedidos)
|
| 47 |
+
|
| 48 |
+
class CalculoPedidoAgent:
|
| 49 |
+
def calcular_total(self, state):
|
| 50 |
+
st.subheader("Resumen del Pedido")
|
| 51 |
+
if state.pedidos:
|
| 52 |
+
df_pedidos = pd.DataFrame(state.pedidos)
|
| 53 |
+
st.table(df_pedidos)
|
| 54 |
total = df_pedidos["Cantidad"].mul(df_pedidos["Precio"]).sum()
|
| 55 |
st.markdown(f"**Total: ${total:.2f}**")
|
| 56 |
else:
|
| 57 |
+
st.info("El pedido está vacío.")
|
|
|
|
|
|
|
|
|
|
|
|