fix(auditoria completa): bloqueos de Mi Dia, cobranza (saldos y fechas), captura (departamento y rol), contactos (privacidad), cotizador (QR) y validaciones de API
This commit is contained in:
@@ -249,13 +249,12 @@ async function escribir(planesLeidos) {
|
||||
p.montoPagado = Math.min(p.monto, p.montoPagado + ap.monto)
|
||||
}
|
||||
|
||||
// Si el maestro registra pagos por encima del plan declarado (filas con
|
||||
// MESES/MENSUALIDAD vacíos pero grid lleno), el total del plan es lo pagado.
|
||||
const totalPagadoAcumulado = pagosProg.reduce((a, p) => a + p.montoPagado, 0) +
|
||||
// Invariante del módulo: Σ montos de TODOS los pagos del plan == engancheTotal
|
||||
// (incluidos los standalone, que antes quedaban fuera y generaban saldo
|
||||
// fantasma: el plan mostraba 100% pagado y saldo pendiente a la vez).
|
||||
const totalProgramado = pagosProg.reduce((a, p) => a + p.monto, 0) +
|
||||
standalone.reduce((a, s) => a + s.monto, 0)
|
||||
if (totalPagadoAcumulado > plan.engancheTotal) {
|
||||
plan.engancheTotal = Math.round(totalPagadoAcumulado * 100) / 100
|
||||
}
|
||||
plan.engancheTotal = Math.round(totalProgramado * 100) / 100
|
||||
|
||||
const creado = await prisma.planPago.create({ data: plan })
|
||||
|
||||
|
||||
Reference in New Issue
Block a user