Generación de Imposiciones
El proceso de Generación de Imposiciones es una etapa posterior al cálculo de remuneraciones. Su objetivo es consolidar los montos individuales calculados en las liquidaciones y agruparlos por institución.
Migración 2025-12: Lógica migrada a Servicio de Dominio en Orchestrator (
PrevisionsService).
Lógica de Consolidación
Section titled “Lógica de Consolidación”La consolidación se realiza en 6 bloques principales. Solo se consideran liquidaciones en estado CALCULADA, APROBADA o PAGADA.
-
AFP Obligatorio: Agrupa por AFP el total descontado (10% + Comisión). Concepto
DESC-001. -
Salud:
- Agrupa por ISAPRE (Concepto
DESC-002). - Si no tiene Isapre, consolida todo bajo
FONASA.
- Agrupa por ISAPRE (Concepto
-
Seguro de Cesantía: Agrupa el 0.6% de cargo trabajador bajo la entidad AFP (visual) o AFC.
-
SIS y Mutual:
- SIS (
APT-003) se paga a las AFP. - Mutual (
APT-004) a la Mutual de Seguridad correspondiente.
- SIS (
-
Cesantía Empleador: El 2.4% o 3.0% (
APT-002) se consolida para pago a AFC.
-
Impuesto Único: Total del tributo (
DESC-004) para F29. -
Retención Honorarios: Suma de retenciones de boletas procesadas para F29.
Arquitectura del Proceso
Section titled “Arquitectura del Proceso”El proceso es Idempotente y transaccional.
sequenceDiagram
participant API as Controller
participant Service as PrevisionsService
participant Repo as PrevisionsRepository
participant DB as PostgreSQL
API->>Service: generate(year, month)
rect rgba(0, 0, 0, 0.1)
note right of Service: 1. Agregación (Read-Only)
Service->>Repo: getAFPWorkerAggregates()
Repo->>DB: SELECT SUM(...) FROM liquidaciones_detalle
DB-->>Repo: Totales AFP
Service->>Repo: getHealthWorkerAggregates()
Repo-->>Service: Totales ISAPRE/FONASA
end
rect rgba(0, 0, 0, 0.1)
note right of Service: 2. Persistencia (Transactional)
Service->>Repo: transactionalReplace(Entity[])
Repo->>DB: BEGIN
Repo->>DB: DELETE FROM imposiciones WHERE mes=X
Repo->>DB: INSERT INTO imposiciones (Batch)
Repo->>DB: COMMIT
end
Service-->>API: Resultado (Rows created)