Documentación Técnica: Proceso de Reliquidación
Este documento detalla la configuración inicial, el concepto funcional y la lógica de formulación para el módulo de Reliquidación.
Requisitos de Configuración
Antes de utilizar el proceso de reliquidación, es necesario ejecutar los siguientes comandos en la terminal para preparar el sistema:
- Activar los parámetros del sistema: Este comando habilita las configuraciones y parámetros necesarios para el módulo de reliquidación.
Bash
bundle exec rails system_parameters:add_reassessments_system_parameter
- Crear/Actualizar las fórmulas por defecto: Este comando instala o actualiza las fórmulas base que utiliza el proceso de reliquidación.
Bash
bundle exec rails concepts:update_concepts_reassessment_formula
¿Qué es la Reliquidación?
La reliquidación es un proceso que calcula una nómina paralela para ajustar montos de forma retroactiva (por ejemplo, la aplicación de un bono que afecta a meses anteriores).
El sistema distribuye un monto total (ej. $500) entre un período definido (ej. los últimos 5 meses).
Proceso General
- Creación de Nómina Paralela: Se genera una nómina especial de tipo "reliquidación".
- Distribución del Monto: El monto a reliquidar (ej. $500 / 5 meses = $100/mes) se añade como un bono en cada mes del período seleccionado.
- Recálculo Completo: El sistema recalcula todo el proceso de nómina para cada uno de esos meses, ahora incluyendo el nuevo bono.
- Consolidación de Diferencias: Como consecuencia del recálculo, los montos totales a pagar (y las deducciones asociadas) aumentarán. El sistema calcula y consolida estas diferencias para su pago.
Formulación y Nomenclatura
Dado que la reliquidación se ejecuta sobre un proceso de nómina original, es común que las fórmulas necesiten combinar resultados de ambos procesos (el original y el reliquidado).
Para evitar conflictos y diferenciar los orígenes de los datos, se utiliza la siguiente nomenclatura de prefijos especiales dentro de las fórmulas:
1. Prefijo result_ (Resultados del Proceso Original)
Para acceder al valor de un concepto del proceso de nómina original (el que se está reliquidando), se debe usar el prefijo result_.
- afp: Se refiere al valor del concepto 'afp' calculado en el proceso de reliquidación actual.
- result_afp: Se refiere al valor del concepto 'afp' que se obtuvo en el proceso original de nómina.
Ejemplo de fórmula: Sumar la AFP original con la AFP de reliquidación.
formula = result_afp + afp
2. Prefijo indicator_ (Indicadores del Proceso Original)
De forma similar, para acceder a un indicador (como la RTI) del proceso original, se utiliza el prefijo indicator_.
- rti_afp_pesos: Indicador del proceso de reliquidación.
- indicator_rti_afp_pesos: Indicador del proceso original.
Ejemplo de fórmula:
formula = indicator_rti_afp_pesos + rti_afp_pesos
3. Prefijo method_ (Parámetros Customizados para Históricos)
Existen casos especiales, como la carga de históricos o datos migrados, donde no se dispone de toda la información de la nómina original (ej. se sabe el monto de AFP pagado, pero no qué AFP específica tenía el empleado).
Para estos escenarios, se crearon parámetros personalizados que ejecutan una lógica específica para obtener datos. Se identifican con el prefijo method_.
Ubicación del Código: La lógica de estos métodos se encuentra definida en el archivo: app/services/reassessments/parameters/methods.rb
A continuación, se detallan los parámetros customizados disponibles:
- method_afp_code
- Descripción: Extrae el código de la AFP del empleado, solo si el mes original fue procesado con el sistema actual (es decir, no es un dato migrado).
- method_afp_code_by_result
- Descripción: Extrae el código de la AFP del empleado directamente desde los resultados históricos cargados.
- Requisito: Requiere que se haya cargado un concepto histórico con el código afp_code y cuyo valor sea el código de la AFP del empleado en ese período.
- method_afp_tasa_dep
- Descripción: Extrae el monto de la tasa dependiente de la AFP, solo si el mes original fue procesado con el sistema actual.
- method_afp_tasa_dep_by_result
- Descripción: Extrae el monto de la tasa dependiente de la AFP desde los resultados históricos.
- Requisito: Requiere que exista el concepto afp_code cargado en los históricos (ver method_afp_code_by_result).
- method_afp_tasa_sis
- Descripción: Extrae el monto de la tasa SIS de la AFP, solo si el mes original fue procesado con el sistema actual.
- method_afp_tasa_sis_by_result
- Descripción: Extrae el monto de la tasa SIS de la AFP desde los resultados históricos.
Requisito: Requiere que exista el concepto afp_code cargado en los históricos.