Previsions Service
El PrevisionsService orquesta la generación mensual de imposiciones, consolidando cotizaciones de AFP, Salud, AFC, aportes patronales e impuestos.
Ubicación
Section titled “Ubicación”Archivo: src/domain/previsions/PrevisionsService.ts
Método Principal
Section titled “Método Principal”async generate( year: number, month: number, userId: string, dryRun: boolean = true): Promise<GenerationResult>Parámetros
Section titled “Parámetros”| Parámetro | Tipo | Descripción |
|---|---|---|
year | number | Año del período |
month | number | Mes del período (1-12) |
userId | string | Usuario que ejecuta |
dryRun | boolean | true = simulación, false = persistir |
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”-
Lectura de Agregados (paralelo):
- AFP (cotización trabajador)
- Salud (Isapre/Fonasa)
- AFC (Seguro Cesantía trabajador)
- Aportes Patronales (SIS, Mutual, AFC empleador)
- Impuesto Único (SII)
- Retención Honorarios (10%)
-
Mapeo a Entidades: Transforma agregados en
PrevisionEntity. -
Persistencia: Si
dryRun = false, reemplaza transaccionalmente los registros del período.
Ejemplo de Uso
Section titled “Ejemplo de Uso”import { PrevisionsService } from '@/domain/previsions/PrevisionsService';import { PrevisionsRepository } from '@/domain/previsions/PrevisionsRepository';
const repo = new PrevisionsRepository(pool);const service = new PrevisionsService(repo);
// Simularconst sim = await service.generate(2025, 12, 'user-123', true);console.log(sim.registros_generados); // Ej: 15
// Ejecutarconst result = await service.generate(2025, 12, 'user-123', false);Dependencias
Section titled “Dependencias”- PrevisionsRepository: Acceso a agregados y persistencia.