Josedcape commited on
Commit
64e5f04
·
verified ·
1 Parent(s): 58defd1

Update utils/data_manager.py

Browse files
Files changed (1) hide show
  1. 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
- # --- Agente de transcripción del menú ---
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}
@@ -16,16 +18,20 @@ class MenuTranscriptorAgent(Agent):
16
  st.error(f"Error al cargar el menú: {e}")
17
  return None
18
 
19
- # --- Agente de manejo de pedidos ---
20
- class PedidoAgent(Agent):
21
- def run(self, productos, precios, state):
 
 
 
 
 
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 y el total
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.")