From a71ab603cb2aa26b149a589400e64489679d8c5c Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 27 Aug 2026 16:52:20 -0500 Subject: [PATCH] Actualizar backend/modules/cobranza/logic.py --- backend/modules/cobranza/logic.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/backend/modules/cobranza/logic.py b/backend/modules/cobranza/logic.py index 983f379..1e6487a 100644 --- a/backend/modules/cobranza/logic.py +++ b/backend/modules/cobranza/logic.py @@ -10,8 +10,10 @@ class CobranzaLogic: def obtener_lista_sectoristas(self, ano, mes): return self.processor.obtener_lista_sectoristas(ano, mes) - def obtener_datos_tabla(self, ano, mes, sectorista="TODOS", agrupacion="SEDE"): - datos_brutos = self.processor.obtener_datos_procesados(ano, mes, sectorista, agrupacion) + def obtener_datos_tabla(self, ano, mes, sectorista="TODOS", agrupacion="SEDE", + sede_filtro="TODOS", prog_filtro="TODOS", venc_hasta=None): + datos_brutos = self.processor.obtener_datos_procesados(ano, mes, sectorista, agrupacion, + sede_filtro, prog_filtro, venc_hasta) sheet_data = [] t_cta_ant = t_cta_cur = t_cta_tot = t_cob_ant = t_cob_cur = t_cob_tot = t_saldo = 0.0 @@ -87,8 +89,8 @@ class CobranzaLogic: sheet_data.append(fila_total) return sheet_data - def obtener_detalle_programa_formateado(self, ano, mes, sectorista, programa): - datos_brutos = self.processor.obtener_detalle_programa(ano, mes, sectorista, programa) + def obtener_detalle_programa_formateado(self, ano, mes, sectorista, programa, venc_hasta=None): + datos_brutos = self.processor.obtener_detalle_programa(ano, mes, sectorista, programa, venc_hasta) sheet_data = [] t_cta_ant = t_cta_cur = t_cta_tot = t_cob_ant = t_cob_cur = t_cob_tot = t_saldo = 0.0 @@ -114,6 +116,7 @@ class CobranzaLogic: r1 = (cob_ant / cta_ant) * 100 if cta_ant > 0 else 0.0 r2 = (cob_cur / cta_cur) * 100 if cta_cur > 0 else 0.0 r3 = (cob_tot / cta_tot) * 100 if cta_tot > 0 else 0.0 + avance_ant = f"{r1:.0f}%" if cta_ant > 0 else "" avance_cur = f"{r2:.0f}%" if cta_cur > 0 else "" avance_tot = f"{r3:.0f}%" if cta_tot > 0 else "" @@ -205,10 +208,15 @@ class CobranzaLogic: cell.alignment = Alignment(horizontal="center", vertical="center") for row in range(2, len(filas_excel) + 2): - for col in [6, 7, 9, 10, 12, 13, 15]: + for col in [6, 7, 9, 10, 12, 13, 15]: worksheet.cell(row=row, column=col).number_format = '"S/" #,##0.00' - for col in [8, 11, 14]: + for col in [8, 11, 14]: worksheet.cell(row=row, column=col).number_format = '0%' + # FCH VENCIMIENTO (col 5): forzar TEXTO para que Excel no reinterprete + # la fecha ni le reste un día por zona horaria. + celda_fecha = worksheet.cell(row=row, column=5) + celda_fecha.value = str(celda_fecha.value) + celda_fecha.number_format = '@' for col in worksheet.columns: max_len = 0