refactor: unificar nombres de parametros anio/mes en todos los endpoints

/listado usaba periodo/mesCorte mientras /detallado, /boleta e /historial
usaban anio/mes. Ahora todos exponen anio/mes en la firma publica; el
FiltroDTO y DatosCalculo internos mantienen sus nombres actuales.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AyxL2mSnUE9XyUFHw8zDmM
parent 52a6e71a
...@@ -54,16 +54,21 @@ so.planilla_be ...@@ -54,16 +54,21 @@ so.planilla_be
| Método | Ruta | Descripción | | Método | Ruta | Descripción |
|---|---|---| |---|---|---|
| GET | `/api/v1/renta-quinta` | Grilla paginada de retenciones, con cálculo | | GET | `/api/v1/renta-quinta/listado` | Grilla paginada de retenciones, con cálculo |
| GET | `/api/v1/renta-quinta/{id}` | Boleta completa por `id_renta_quinta` | | GET | `/api/v1/renta-quinta/{id}` | Boleta completa por `id_renta_quinta` |
| GET | `/api/v1/renta-quinta/detallado` | Detalle completo por `numeroDocumento` + `anio` + `mes` |
| GET | `/api/v1/renta-quinta/boleta` | Boleta por `codper` + `anio` + `mes` | | GET | `/api/v1/renta-quinta/boleta` | Boleta por `codper` + `anio` + `mes` |
| GET | `/api/v1/renta-quinta/historial/{codper}/{anio}` | Meses del trabajador en el periodo | | GET | `/api/v1/renta-quinta/historial/{codper}/{anio}` | Meses del trabajador en el periodo |
`anio` y `mes` son los nombres de parámetro usados en **todos** los endpoints (`listado`,
`detallado`, `boleta`, `historial`) — no usar `periodo`/`mesCorte` en la firma pública aunque
internamente `RentaQuintaFiltroDTO` y `DatosCalculo` sigan llamándolos así.
### Filtros de la grilla ### Filtros de la grilla
`periodo` y `mesCorte` son **obligatorios**; el resto es opcional y, si no se envía, no filtra. `anio` y `mes` son **obligatorios**; el resto es opcional y, si no se envía, no filtra. Todos son
Todos son `Integer` salvo `documentoOApellidos`, que es texto (busca por `numero_documento` o por `Integer` salvo `documentoOApellidos`, que es texto (busca por `numero_documento` o por apellidos
apellidos + nombres, con `LIKE` en mayúsculas). + nombres, con `LIKE` en mayúsculas).
Los filtros de catálogo (`sede`, `tipoPlanilla`, `areaGeneral`, `subArea`, `cargo`) llegan como Los filtros de catálogo (`sede`, `tipoPlanilla`, `areaGeneral`, `subArea`, `cargo`) llegan como
número y se comparan **como texto** contra columnas TEXT: el service los convierte con número y se comparan **como texto** contra columnas TEXT: el service los convierte con
......
...@@ -104,8 +104,7 @@ public class RentaQuintaCalculadora { ...@@ -104,8 +104,7 @@ public class RentaQuintaCalculadora {
* boleta real ni el estimado del propio mes de corte cuando este es julio/diciembre). * boleta real ni el estimado del propio mes de corte cuando este es julio/diciembre).
*/ */
private BigDecimal gratificacionesPendientes(DatosCalculo datos, boolean julioCubierto, boolean diciembreCubierto) { private BigDecimal gratificacionesPendientes(DatosCalculo datos, boolean julioCubierto, boolean diciembreCubierto) {
BigDecimal gratificacion = orZero(datos.basicoReferencia()) BigDecimal gratificacion = orZero(datos.remuneracionReferencia())
.add(orZero(datos.asignacionFamiliarReferencia()))
.multiply(FACTOR_GRATIFICACION); .multiply(FACTOR_GRATIFICACION);
BigDecimal total = BigDecimal.ZERO; BigDecimal total = BigDecimal.ZERO;
if (!julioCubierto) { if (!julioCubierto) {
......
...@@ -36,8 +36,8 @@ public class RentaQuintaController { ...@@ -36,8 +36,8 @@ public class RentaQuintaController {
@Operation(summary = "Grilla de proyección y control de quinta categoría (paginada)") @Operation(summary = "Grilla de proyección y control de quinta categoría (paginada)")
@GetMapping("/listado") @GetMapping("/listado")
public Page<RentaQuintaResumenDTO> listado( public Page<RentaQuintaResumenDTO> listado(
@RequestParam @NotNull Integer periodo, @RequestParam @NotNull Integer anio,
@RequestParam @NotNull @Min(1) @Max(12) Integer mesCorte, @RequestParam @NotNull @Min(1) @Max(12) Integer mes,
@RequestParam(required = false) Integer sede, @RequestParam(required = false) Integer sede,
@RequestParam(required = false) Integer tipoPlanilla, @RequestParam(required = false) Integer tipoPlanilla,
@RequestParam(required = false) Integer areaGeneral, @RequestParam(required = false) Integer areaGeneral,
...@@ -47,7 +47,7 @@ public class RentaQuintaController { ...@@ -47,7 +47,7 @@ public class RentaQuintaController {
@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "0") Integer page,
@RequestParam(defaultValue = "20") Integer size) { @RequestParam(defaultValue = "20") Integer size) {
return service.buscar(new RentaQuintaFiltroDTO( return service.buscar(new RentaQuintaFiltroDTO(
periodo, mesCorte, sede, tipoPlanilla, areaGeneral, subArea, cargo, anio, mes, sede, tipoPlanilla, areaGeneral, subArea, cargo,
documentoOApellidos, page, size)); documentoOApellidos, page, size));
} }
......
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