Commit ca8f256f by Vanesa Puma Yamo

se agrega modificaciones en retenciones efectuadas

parent efbff596
......@@ -7,7 +7,6 @@ import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
/**
* Cálculo de la retención de quinta categoría (art. 40 y 53 de la Ley del Impuesto a la Renta
* y art. 40 de su Reglamento).
......@@ -116,8 +115,9 @@ public class RentaQuintaCalculadora {
return impuesto;
}
/** Divisores del art. 40 del Reglamento, según el mes en que se practica la retención. */
private BigDecimal divisorDelMes(int mes) {
/** private BigDecimal divisorDelMes(int mes) {
return BigDecimal.valueOf(switch (mes) {
case 1, 2, 3 -> 12;
case 4 -> 9;
......@@ -128,6 +128,20 @@ public class RentaQuintaCalculadora {
default -> throw new IllegalArgumentException("Mes fuera de rango: " + mes);
});
}
**/
/**
* Divisor según la tabla de la imagen (12 en Enero hasta 1 en Diciembre).
*/
private BigDecimal divisorDelMes(int mes) {
if (mes < 1 || mes > 12) {
throw new IllegalArgumentException("Mes fuera de rango: " + mes);
}
// Para Enero (1) -> 13 - 1 = 12
// Para Mayo (5) -> 13 - 5 = 8
// Para Diciembre (12) -> 13 - 12 = 1
return BigDecimal.valueOf(13 - mes);
}
private BigDecimal escala(BigDecimal v) {
return v.setScale(ESCALA, RoundingMode.HALF_UP);
......
......@@ -132,26 +132,33 @@ public class RentaQuintaServiceImpl implements RentaQuintaService {
return historial.stream()
.filter(filtro)
.map(r -> orZero(r.getBasico())
.add(orZero(r.getVacacionesGozadasRemVaca()))
.add(orZero(r.getLicenciaGoceHaber()))
.add(orZero(r.getLicenciaSaludFamiliarLey30012()))
.add(orZero(r.getAsignacionFamiliar()))
.add(orZero(r.getMovilidad()))
.add(orZero(r.getHorasExtras25()))
.add(orZero(r.getHorasExtras35()))
.add(orZero(r.getApoyoSalud()))
.add(orZero(r.getAsignacionEstudios()))
.add(orZero(r.getBonoDesempeno()))
.add(orZero(r.getDominical()))
.add(orZero(r.getCanastaNavidad()))
.add(orZero(r.getValeConsumo()))
.add(orZero(r.getObsequios()))
.add(orZero(r.getBonoExtraordinario()))
.add(orZero(r.getBonoProductividad()))
.add(orZero(r.getBonoDesempeno()))
.add(orZero(r.getBonoAniversario()))
.add(orZero(r.getApoyoSalud()))
.add(orZero(r.getAsignacionEstudios()))
.add(orZero(r.getAsignacionFallecimientoFamiliar()))
.add(orZero(r.getReintegro()))
.add(orZero(r.getSumaGraciosa()))
.add(orZero(r.getVacacionesTruncas()))
.add(orZero(r.getVacacionesGozadasRemVaca()))
.add(orZero(r.getCanastaNavidad()))
.add(orZero(r.getValeConsumo()))
.add(orZero(r.getObsequios()))
.add(orZero(r.getCanastaNavidad2()))
.add(orZero(r.getValeConsumoDescuento()))
.add(orZero(r.getCompensacionVacacional()))
.add(orZero(r.getGratificacionProporcional()))
.add(orZero(r.getVacacionesTruncas()))
.add(orZero(r.getSumaGraciosa()))
.add(orZero(r.getBonificacionExtraordinaria()))
.add(orZero(r.getBonificacionExtraordinaria2()))
.add(orZero(r.getGratificacionJulioDiciembre())))
.reduce(BigDecimal.ZERO, BigDecimal::add);
}
......
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