Actualizar backend/modules/cobranza/logic.py

This commit is contained in:
2026-08-31 15:09:25 -05:00
parent 1b68ac4da7
commit a66909d474

View File

@@ -11,12 +11,15 @@ class CobranzaLogic:
return self.processor.obtener_lista_sectoristas(ano, mes) return self.processor.obtener_lista_sectoristas(ano, mes)
def obtener_datos_tabla(self, ano, mes, sectorista="TODOS", agrupacion="SEDE", def obtener_datos_tabla(self, ano, mes, sectorista="TODOS", agrupacion="SEDE",
sede_filtro="TODOS", prog_filtro="TODOS", venc_hasta=None): sede_filtro="TODOS", prog_filtro="TODOS", venc_hasta=None,
mats_retirar=None):
datos_brutos = self.processor.obtener_datos_procesados(ano, mes, sectorista, agrupacion, datos_brutos = self.processor.obtener_datos_procesados(ano, mes, sectorista, agrupacion,
sede_filtro, prog_filtro, venc_hasta) sede_filtro, prog_filtro, venc_hasta,
mats_retirar)
sheet_data = [] sheet_data = []
t_cta_ant = t_cta_cur = t_cta_tot = t_cob_ant = t_cob_cur = t_cob_tot = t_saldo = 0.0 t_cta_ant = t_cta_cur = t_cta_tot = t_cob_ant = t_cob_cur = t_cob_tot = t_saldo = 0.0
t_saldo_ret = 0.0
for d in datos_brutos: for d in datos_brutos:
grupo = d.get('GRUPO', '') grupo = d.get('GRUPO', '')
@@ -34,15 +37,17 @@ class CobranzaLogic:
cob_tot = float(d.get('TOTAL_COBRADO', 0.0)) cob_tot = float(d.get('TOTAL_COBRADO', 0.0))
r3 = float(d.get('RATIO_3', 0.0)) r3 = float(d.get('RATIO_3', 0.0))
saldo = float(d.get('SALDO', 0.0)) saldo = float(d.get('SALDO', 0.0))
saldo_ret = float(d.get('SALDO_RETIRAR', 0.0))
opciones = d.get('OPCIONES', ' ≡ ▼ ') opciones = d.get('OPCIONES', ' ≡ ▼ ')
t_cta_ant += cta_ant t_cta_ant += cta_ant
t_cta_cur += cta_cur t_cta_cur += cta_cur
t_cta_tot += cta_tot t_cta_tot += cta_tot
t_cob_ant += cob_ant t_cob_ant += cob_ant
t_cob_cur += cob_cur t_cob_cur += cob_cur
t_cob_tot += cob_tot t_cob_tot += cob_tot
t_saldo += saldo t_saldo += saldo
t_saldo_ret += saldo_ret
avance_ant = f"{r1:.0f}%" if cta_ant > 0 else "" avance_ant = f"{r1:.0f}%" if cta_ant > 0 else ""
avance_cur = f"{r2:.0f}%" if cta_cur > 0 else "" avance_cur = f"{r2:.0f}%" if cta_cur > 0 else ""
@@ -50,19 +55,19 @@ class CobranzaLogic:
if agrupacion == "PROGRAMA": if agrupacion == "PROGRAMA":
fila = [ fila = [
grupo, frecuencia, num_cuota, fecha_venc, grupo, frecuencia, num_cuota, fecha_venc,
f"S/ {cta_ant:,.0f}", f"S/ {cob_ant:,.0f}", avance_ant, f"S/ {cta_ant:,.0f}", f"S/ {cob_ant:,.0f}", avance_ant,
f"S/ {cta_cur:,.0f}", f"S/ {cob_cur:,.0f}", avance_cur, f"S/ {cta_cur:,.0f}", f"S/ {cob_cur:,.0f}", avance_cur,
f"S/ {cta_tot:,.0f}", f"S/ {cob_tot:,.0f}", avance_tot, f"S/ {cta_tot:,.0f}", f"S/ {cob_tot:,.0f}", avance_tot,
f"S/ {saldo:,.0f}", opciones f"S/ {saldo:,.0f}", f"S/ {saldo_ret:,.0f}", opciones
] ]
else: else:
fila = [ fila = [
grupo, grupo,
f"S/ {cta_ant:,.0f}", f"S/ {cob_ant:,.0f}", avance_ant, f"S/ {cta_ant:,.0f}", f"S/ {cob_ant:,.0f}", avance_ant,
f"S/ {cta_cur:,.0f}", f"S/ {cob_cur:,.0f}", avance_cur, f"S/ {cta_cur:,.0f}", f"S/ {cob_cur:,.0f}", avance_cur,
f"S/ {cta_tot:,.0f}", f"S/ {cob_tot:,.0f}", avance_tot, f"S/ {cta_tot:,.0f}", f"S/ {cob_tot:,.0f}", avance_tot,
f"S/ {saldo:,.0f}", opciones f"S/ {saldo:,.0f}", f"S/ {saldo_ret:,.0f}", opciones
] ]
sheet_data.append(fila) sheet_data.append(fila)
@@ -72,11 +77,11 @@ class CobranzaLogic:
if agrupacion == "PROGRAMA": if agrupacion == "PROGRAMA":
fila_total = [ fila_total = [
"TOTAL GENERAL", "-", "-", "-", "TOTAL GENERAL", "-", "-", "-",
f"S/ {t_cta_ant:,.0f}", f"S/ {t_cob_ant:,.0f}", f"{r_tot_1:.0f}%", f"S/ {t_cta_ant:,.0f}", f"S/ {t_cob_ant:,.0f}", f"{r_tot_1:.0f}%",
f"S/ {t_cta_cur:,.0f}", f"S/ {t_cob_cur:,.0f}", f"{r_tot_2:.0f}%", f"S/ {t_cta_cur:,.0f}", f"S/ {t_cob_cur:,.0f}", f"{r_tot_2:.0f}%",
f"S/ {t_cta_tot:,.0f}", f"S/ {t_cob_tot:,.0f}", f"{r_tot_3:.0f}%", f"S/ {t_cta_tot:,.0f}", f"S/ {t_cob_tot:,.0f}", f"{r_tot_3:.0f}%",
f"S/ {t_saldo:,.0f}", "" f"S/ {t_saldo:,.0f}", f"S/ {t_saldo_ret:,.0f}", ""
] ]
else: else:
fila_total = [ fila_total = [
@@ -84,7 +89,7 @@ class CobranzaLogic:
f"S/ {t_cta_ant:,.0f}", f"S/ {t_cob_ant:,.0f}", f"{r_tot_1:.0f}%", f"S/ {t_cta_ant:,.0f}", f"S/ {t_cob_ant:,.0f}", f"{r_tot_1:.0f}%",
f"S/ {t_cta_cur:,.0f}", f"S/ {t_cob_cur:,.0f}", f"{r_tot_2:.0f}%", f"S/ {t_cta_cur:,.0f}", f"S/ {t_cob_cur:,.0f}", f"{r_tot_2:.0f}%",
f"S/ {t_cta_tot:,.0f}", f"S/ {t_cob_tot:,.0f}", f"{r_tot_3:.0f}%", f"S/ {t_cta_tot:,.0f}", f"S/ {t_cob_tot:,.0f}", f"{r_tot_3:.0f}%",
f"S/ {t_saldo:,.0f}", "" f"S/ {t_saldo:,.0f}", f"S/ {t_saldo_ret:,.0f}", ""
] ]
sheet_data.append(fila_total) sheet_data.append(fila_total)
return sheet_data return sheet_data