Previsions Service
Orchestrator · Remuneraciones
ServiceImposicionesPreview/Commit
PrevisionsService genera imposiciones mensuales a partir de liquidaciones. Consolida descuentos y aportes por institución, periodo y tipo de obligación, separando simulación (dryRun) de persistencia definitiva.
Ubicación
Section titled “Ubicación”| Pieza | Ruta |
|---|---|
| Service | src/domain/previsions/PrevisionsService.ts |
| Repository | src/domain/previsions/PrevisionsRepository.ts |
| Route | src/routes/remuneraciones/previsiones.ts |
| Tablas | Consolidados previsionales del schema remuneraciones |
Método Principal
Section titled “Método Principal”async generate( year: number, month: number, userId: string, dryRun: boolean = true): Promise<GenerationResult>| Parámetro | Tipo | Uso |
|---|---|---|
year | number | Año del periodo. |
month | number | Mes del periodo, entre 1 y 12. |
userId | string | Usuario que ejecuta el proceso. |
dryRun | boolean | true simula, false persiste. |
Resultado
Section titled “Resultado”interface GenerationResult { mensaje: string; registros_generados: number; monto_total_consolidado: number;}Flujo de Generación
Section titled “Flujo de Generación”-
Lee agregados del periodo desde liquidaciones y vistas de remuneraciones.
-
Consolida AFP, salud, AFC, aportes patronales, impuesto único y retenciones soportadas.
-
Mapea cada agregado a entidades de previsión por institución y tipo de obligación.
-
Si
dryRunestrue, retorna totales sin persistir. -
Si
dryRunesfalse, reemplaza transaccionalmente el consolidado del periodo.
Consideraciones Técnicas
Section titled “Consideraciones Técnicas”| Regla | Criterio |
|---|---|
| Idempotencia por periodo | La ejecución definitiva debe reemplazar el consolidado del mismo periodo de forma controlada. |
| Preview antes de commit | La UI debe permitir revisar montos antes de persistir. |
| Liquidaciones fuente | El proceso depende de liquidaciones aprobadas o cerradas según regla vigente. |
| Auditoría | userId debe quedar asociado a la generación. |
Ejemplo
Section titled “Ejemplo”import { PrevisionsService } from '@/domain/previsions/PrevisionsService';import { PrevisionsRepository } from '@/domain/previsions/PrevisionsRepository';
const repo = new PrevisionsRepository(pool);const service = new PrevisionsService(repo);
const preview = await service.generate(2026, 5, 'user-123', true);const result = await service.generate(2026, 5, 'user-123', false);Ver También
Section titled “Ver También” Servicio de Imposiciones Lectura contable de la consolidación previsional mensual.
Servicio de Liquidaciones Fuente del detalle de haberes, descuentos y aportes.
API de Remuneraciones Endpoints de payroll, parámetros e imposiciones.