Josedcape commited on
Commit
4b26f79
·
verified ·
1 Parent(s): 8415630

Create agent_functions.py

Browse files
Files changed (1) hide show
  1. agent_functions.py +56 -0
agent_functions.py ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # agent_functions.py
2
+ import pandas as pd
3
+ from reportlab.lib.pagesizes import letter
4
+ from reportlab.pdfgen import canvas
5
+
6
+ class PedidoTool:
7
+ def __init__(self, menu_df):
8
+ self.menu_df = menu_df
9
+
10
+ def tomar_pedido(self, pedido):
11
+ items = pedido.split(',')
12
+ confirmados = []
13
+ for item in items:
14
+ if item.strip() in self.menu_df['item'].values:
15
+ confirmados.append(item.strip())
16
+ return confirmados
17
+
18
+ class OrdenTool:
19
+ def __init__(self, menu_df):
20
+ self.menu_df = menu_df
21
+
22
+ def procesar_orden(self, pedido):
23
+ items = pedido.split(',')
24
+ total = 0
25
+ for item in items:
26
+ price = self.menu_df[self.menu_df['item'] == item.strip()]['price'].values[0]
27
+ total += price
28
+ return total
29
+
30
+ def leer_menu_csv(filepath):
31
+ menu = pd.read_csv(filepath)
32
+ return menu
33
+
34
+ def generar_pdf_orden(order_details, filepath='orden_compra.pdf'):
35
+ c = canvas.Canvas(filepath, pagesize=letter)
36
+ width, height = letter
37
+ c.drawString(100, height - 100, "Orden de Compra")
38
+ y = height - 120
39
+ total = 0
40
+ for item, details in order_details.items():
41
+ c.drawString(100, y, f"{item}: ${details['price']}")
42
+ y -= 20
43
+ total += details['price']
44
+ c.drawString(100, y - 20, f"Total: ${total}")
45
+ c.save()
46
+ return filepath
47
+
48
+ def tomar_pedido_agente(pedido, menu_df):
49
+ pedido_tool = PedidoTool(menu_df)
50
+ confirmados = pedido_tool.tomar_pedido(pedido)
51
+ return confirmados
52
+
53
+ def procesar_orden_agente(pedido, menu_df):
54
+ orden_tool = OrdenTool(menu_df)
55
+ total = orden_tool.procesar_orden(pedido)
56
+ return total