fix: usar sueldo bruto del mes de corte para proyectar la grilla, no el total del mes

La grilla pasaba planillaCargada (básico+extras+gratis del mes) como base
de proyección de meses restantes, en vez del sueldoBruto/remContrato real,
inflando proyeccionFutura, rentaBrutaAnual e impuesto frente a
/detalle-completo (que sí usa boleta.getSueldoBruto()). Se agrega
sueldoBrutoMesCorte a la proyección del query y se usa en el cálculo.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GDaQQ4oDPiTnXr2FfDLnst
parent f21795c7
......@@ -93,7 +93,8 @@ public interface RentaQuintaRepository extends JpaRepository<RentaQuinta, Long>
sum(case when r.boletaMes < :mesCorte then coalesce(r.renta5taCategoria, 0) else 0 end) as retenidoAnterior,
sum(case when r.boletaMes = :mesCorte then coalesce(r.renta5taCategoria, 0) else 0 end) as retencionDelMes,
sum(case when r.boletaMes = :mesCorte then coalesce(r.basico, 0) else 0 end) as basicoMesCorte,
sum(case when r.boletaMes = :mesCorte then coalesce(r.asignacionFamiliar, 0) else 0 end) as asignacionFamiliarMesCorte
sum(case when r.boletaMes = :mesCorte then coalesce(r.asignacionFamiliar, 0) else 0 end) as asignacionFamiliarMesCorte,
sum(case when r.boletaMes = :mesCorte then coalesce(r.sueldoBruto, 0) else 0 end) as sueldoBrutoMesCorte
from RentaQuinta r
where r.boletaAnio = :periodo
and r.boletaMes <= :mesCorte
......
......@@ -27,4 +27,7 @@ public interface RentaQuintaResumenProjection {
BigDecimal getBasicoMesCorte();
BigDecimal getAsignacionFamiliarMesCorte();
/** Sueldo bruto del mes de corte, base para proyectar los meses restantes del año. */
BigDecimal getSueldoBrutoMesCorte();
}
......@@ -62,7 +62,7 @@ public class RentaQuintaServiceImpl implements RentaQuintaService {
filtro.mesCorte(),
p.getHistorialReal(),
p.getPlanillaCargada(),
p.getPlanillaCargada(),
p.getSueldoBrutoMesCorte(),
p.getBasicoMesCorte(),
p.getAsignacionFamiliarMesCorte(),
p.getRetenidoAnterior()));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment