Josedcape commited on
Commit
aada8e1
verified
1 Parent(s): 4b4a5df

Create utils/data_manager.py

Browse files
Files changed (1) hide show
  1. utils/data_manager.py +70 -0
utils/data_manager.py ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from streamlit_agent import Agent
3
+
4
+
5
+
6
+ # --- Agente de transcripci贸n del men煤 ---
7
+
8
+ class MenuTranscriptorAgent(Agent):
9
+ def run(self, menu_csv_path):
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}
15
+ except Exception as e:
16
+ st.error(f"Error al cargar el men煤: {e}")
17
+ return None
18
+
19
+ # --- Agente de manejo de pedidos ---
20
+
21
+ class PedidoAgent(Agent):
22
+ def run(self, productos, precios, state):
23
+ # Interfaz de usuario para seleccionar productos y cantidades
24
+ with st.form("pedido_form"):
25
+ producto_seleccionado = st.selectbox("Producto:", productos)
26
+ cantidad = st.number_input("Cantidad:", min_value=1, value=1)
27
+ submitted = st.form_submit_button("Agregar al pedido")
28
+
29
+ # Agregar al pedido y actualizar el estado
30
+ if submitted:
31
+ precio = precios[productos.index(producto_seleccionado)]
32
+ state.pedidos.append(
33
+ {"Producto": producto_seleccionado, "Cantidad": cantidad, "Precio": precio}
34
+ )
35
+ st.success("Pedido agregado correctamente")
36
+
37
+ # Mostrar el pedido actual y el total
38
+ st.subheader("Pedido actual:")
39
+ if state.pedidos:
40
+ df_pedidos = pd.DataFrame(state.pedidos)
41
+ st.table(df_pedidos)
42
+ total = df_pedidos["Cantidad"].mul(df_pedidos["Precio"]).sum()
43
+ st.markdown(f"**Total: ${total:.2f}**")
44
+ else:
45
+ st.info("El pedido est谩 vac铆o")
46
+
47
+ # Botones para descargar (puedes agregar la l贸gica aqu铆)
48
+ st.button("Generar PDF")
49
+ st.button("Guardar como texto")
50
+
51
+ # --- Aplicaci贸n principal ---
52
+
53
+ def main():
54
+ st.title("Saz贸n Burger - Sistema de Pedidos")
55
+
56
+ # Estado compartido entre los agentes
57
+ if "pedidos" not in st.session_state:
58
+ st.session_state.pedidos = []
59
+
60
+ # Agente de transcripci贸n del men煤
61
+ menu_transcriptor = MenuTranscriptorAgent()
62
+ menu_data = menu_transcriptor.run("menu_sazon_burger.csv")
63
+
64
+ # Agente de manejo de pedidos (solo si se carg贸 el men煤 correctamente)
65
+ if menu_data:
66
+ pedido_agent = PedidoAgent()
67
+ pedido_agent.run(menu_data["productos"], menu_data["precios"], st.session_state)
68
+
69
+ if __name__ == "__main__":
70
+ main()