-
Notifications
You must be signed in to change notification settings - Fork 0
/
reportes.py
30 lines (22 loc) · 1.06 KB
/
reportes.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# reportes.py
class ReporteBuilder:
def __init__(self):
self.secciones = []
def agregarResumenInventario(self, inventario):
self.secciones.append("Resumen de Inventario:\n" + "\n".join(str(p) for p in inventario))
def agregarResumenVentas(self, ventas):
self.secciones.append("Resumen de Ventas:\n" + "\n".join(str(v) for v in ventas))
def agregarProductoMasVendido(self, producto):
self.secciones.append(f"Producto más vendido: {producto}")
def obtener_reporte(self):
return "\n\n".join(self.secciones)
class ReporteDirector:
def __init__(self, builder):
self.builder = builder
def reporte_inventario_bajo_stock(self, inventario):
self.builder.agregarResumenInventario(inventario.obtener_productos_bajo_stock())
return self.builder.obtener_reporte()
def reporte_ventas_mensual(self, ventas):
self.builder.agregarResumenVentas(ventas.listar_ventas())
self.builder.agregarProductoMasVendido(ventas.producto_mas_vendido())
return self.builder.obtener_reporte()