Commit ca8f256f by Vanesa Puma Yamo

se agrega modificaciones en retenciones efectuadas

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