- 15 Sep, 2026 2 commits
-
-
La tabla planilla.renta_quinta fue reemplazada por planilla.pl_planilla; el basico y las utilidades ahora viven en tablas aparte (pl_renta_basico y pl_utilidades, PK compuesta numero_documento+anio+mes). - RentaQuinta pasa a mapear pl_planilla (id_pl_planilla); utilidades, campo1 y campo2 quedan @Transient porque ya no son columnas de esa tabla. - Nuevos modulos rentabasico y utilidades con sus entities/repositories, siguiendo el patron de otrosempleadores. - RentaQuintaServiceImpl aplica pl_renta_basico.monto_basico como reemplazo del basico de pl_planilla cuando existe registro para el mes (si no, se conserva el de pl_planilla), y carga pl_utilidades.monto_utilidad como el campo "utilidades" que antes vivia en la propia renta_quinta. - docs/fk-pl-planilla-renta-basico-utilidades.sql: DDL para las FK compuestas de pl_planilla hacia las 2 tablas nuevas (las PK compuestas ya existen en ellas); no se pudo ejecutar porque el MCP de Postgres configurado es de solo lectura. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Vanesa Puma Yamo authored -
Suma los importes y retenciones declarados por otros empleadores (anteriores, mes de corte y proyeccion) a la renta bruta e impuesto anual, y descuenta esas retenciones del saldo a prorratear (art. 40 y 53 LIR; art. 40 del Reglamento). Expone rentaBrutaAnualSinOtrosEmpleadores para mostrar los ingresos propios por separado en la grilla y la boleta. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Vanesa Puma Yamo authored
-
- 11 Sep, 2026 2 commits
-
-
Vanesa Puma Yamo authored
-
Nuevo modulo otrosempleadores: entidad, repositorio, service y controller para registrar retenciones declaradas por otros empleadores mes a mes. El listado por anio devuelve numeroDocumento + personal a nivel raiz y data sin campos repetidos por fila. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01F9cnQJbPqjJ8d7iSQD8ZC5
Mauro Paolo Josue Zuñiga Mallqui authored
-
- 10 Sep, 2026 5 commits
-
-
- buscarResumen (JPQL con SUM/CASE) se reemplaza por buscarDocumentos (solo filtra/pagina/ordena documentos) + historialHastaMes (trae las boletas reales). Toda la agregacion (historialReal, planillaCargada, mes de referencia, gratificacion pendiente) pasa a Java, compartida con obtenerDetalleCompleto via el mismo helper (agregar/calcular) - antes vivia duplicada entre la query SQL y el service. - Consecuencia: cuando el mes de corte no tiene boleta real, planillaCargada en la grilla ya no queda en 0 - muestra el mismo estimado que el bloque "actual" del detalle completo (sueldo bruto del mes de referencia + gratificacion 109% si el mes de corte es julio o diciembre). - RentaQuintaResumenProjection reemplazado por DocumentoResumenProjection (solo numeroDocumento, ya no expone columnas agregadas). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AyxL2mSnUE9XyUFHw8zDmM
Mauro Paolo Josue Zuñiga Mallqui authored -
Vanesa Puma Yamo authored
-
Solo cubre parametros de entrada; la estructura de las respuestas no cambio. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AyxL2mSnUE9XyUFHw8zDmM
Mauro Paolo Josue Zuñiga Mallqui authored -
/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
Mauro Paolo Josue Zuñiga Mallqui authored -
- Cuando el mes de corte (ej. julio) no tiene boleta real, la proyección usa el sueldo bruto del último mes real como referencia y estima ese mes (sueldo bruto + gratificación 109% si es julio/diciembre) en vez de perderlo silenciosamente en el cálculo de renta bruta anual. - La gratificación de julio/diciembre pendiente ahora se determina por si existe boleta real de ese mes, no por comparar el número de mes de corte. - Elimina el campo utilidadesDistribuidas de BloqueIngresosDTO (no se usa). - Elimina los tests del proyecto (no se van a mantener); CLAUDE.md documenta que no se escriben tests. - Renombra rutas de grilla (/listado) y detalle completo (/detallado). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AyxL2mSnUE9XyUFHw8zDmM
Mauro Paolo Josue Zuñiga Mallqui authored
-
- 08 Sep, 2026 6 commits
-
-
Vanesa Puma Yamo authored
-
Mapea la columna `utilidades` de planilla.renta_quinta en la entity y la suma al total bruto remunerativo tanto en la grilla (CONCEPTOS_MES) como en detalle-completo, donde ademas se expone en su propia columna del bloque de ingresos. Unifica la base de calculo de detalle-completo con la de la grilla: - El total bruto en memoria sale ahora de RentaQuintaMapper.totalBrutoMes(), reemplazando la lista de conceptos duplicada del service. - La base de proyeccion (sueldo bruto, basico, asignacion familiar) suma todas las filas del mes de corte para el documento, no una sola boleta: una persona puede tener varios codper/tipo de planilla y la retencion salia distinta a la de la grilla. - La boleta se toma del historial anual ya cargado, lo que ademas evita NonUniqueResultException cuando hay mas de una fila en el mes. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Dgr6nJcKn3HjiHuwGWypFd
Mauro Paolo Josue Zuñiga Mallqui authored -
Vanesa Puma Yamo authored
-
Vanesa Puma Yamo authored
-
Vanesa Puma Yamo authored
-
Vanesa Puma Yamo authored
-
- 07 Sep, 2026 1 commit
-
-
Los dos campos usaban rutas de agregación distintas y podían mostrar numeros diferentes para el mismo concepto en la boleta. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PE2tjptU1jH4X5WfSRnBp3
Mauro Paolo Josue Zuñiga Mallqui authored
-
- 04 Sep, 2026 7 commits
-
-
Hibernate ddl-auto validate falla con "missing table nuevo.area": JDBC metadata reporta foreign tables (FDW) como FOREIGN TABLE, no TABLE, y el schema validator solo busca TABLE. Se reemplazan las entities/repos de area, subarea, cargo y locales por JdbcTemplate con SQL nativo. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GDaQQ4oDPiTnXr2FfDLnst
Mauro Paolo Josue Zuñiga Mallqui authored -
Corrige el schema de las entities (estaba public), el FDW las expone en schema nuevo, no en el default de la app (planilla). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GDaQQ4oDPiTnXr2FfDLnst
Mauro Paolo Josue Zuñiga Mallqui authored -
Expone GET /api/v1/filtros?tipo=AREA|SUBAREA|CARGO|LOCAL sobre las foreign tables area, subarea, cargo y locales, devolviendo {id, text} por item. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GDaQQ4oDPiTnXr2FfDLnstMauro Paolo Josue Zuñiga Mallqui authored -
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
Mauro Paolo Josue Zuñiga Mallqui authored -
CONCEPTOS_MES (usado por /renta-quinta) omitía licenciaGoceHaber, licenciaSaludFamiliarLey30012, asignacionFallecimientoFamiliar, canastaNavidad2, valeConsumoDescuento, compensacionVacacional y bonificacionExtraordinaria2, quedando desalineado del total de /detalle-completo tras el fix anterior. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GDaQQ4oDPiTnXr2FfDLnst
Mauro Paolo Josue Zuñiga Mallqui authored -
sueldoBruto ahora suma INGRESOS FIJOS, horasExtras suma EXTRAS Y VARIABLES y gratificacionesOrdinarias suma VACACIONES Y LIQUIDACION (antes solo tomaban 1-2 columnas sueltas). Se agrega columna utilidades al bloque. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GDaQQ4oDPiTnXr2FfDLnst
Mauro Paolo Josue Zuñiga Mallqui authored -
Reemplaza UitProperties (config estática por año) por UitCache respaldado en la entidad ParametroUit, y agrega RentaQuintaDetalleCompletoDTO para la boleta con el detalle completo del cálculo. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014FmJuJaDLW5s4jZqdPjcF9
Vanesa Puma Yamo authored
-
- 03 Sep, 2026 1 commit
-
-
Vanesa Puma Yamo authored
-
- 31 Aug, 2026 1 commit
-
-
Expone la grilla de retenciones mensuales sobre planilla.renta_quinta y calcula la proyección anual por trabajador. - Entity con las 115 columnas de la tabla, repository, DTOs y mapper manual - Grilla agregada por documento (codper no identifica al trabajador en los datos reales) con filtros opcionales; solo periodo y mesCorte obligatorios - Cálculo de quinta categoría: proyección, deducción de 7 UIT, tramos progresivos y divisor de retención por mes, con la UIT configurable por año - Manejo de errores sin stack traces y Swagger UI en /docs - Tests unitarios de la calculadora e integración con Testcontainers La configuración con credenciales queda fuera del repo: partir de application.example.yml. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WkHutqxgcr62rTe48Q28X4
Mauro Paolo Josue Zuñiga Mallqui authored
-