Skip to content
GitHub

Previsions Service

El PrevisionsService orquesta la generación mensual de imposiciones, consolidando cotizaciones de AFP, Salud, AFC, aportes patronales e impuestos.

Archivo: src/domain/previsions/PrevisionsService.ts

async generate(
year: number,
month: number,
userId: string,
dryRun: boolean = true
): Promise<GenerationResult>
ParámetroTipoDescripción
yearnumberAño del período
monthnumberMes del período (1-12)
userIdstringUsuario que ejecuta
dryRunbooleantrue = simulación, false = persistir
interface GenerationResult {
mensaje: string;
registros_generados: number;
monto_total_consolidado: number;
}
  1. 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%)
  2. Mapeo a Entidades: Transforma agregados en PrevisionEntity.

  3. Persistencia: Si dryRun = false, reemplaza transaccionalmente los registros del período.

import { PrevisionsService } from '@/domain/previsions/PrevisionsService';
import { PrevisionsRepository } from '@/domain/previsions/PrevisionsRepository';
const repo = new PrevisionsRepository(pool);
const service = new PrevisionsService(repo);
// Simular
const sim = await service.generate(2025, 12, 'user-123', true);
console.log(sim.registros_generados); // Ej: 15
// Ejecutar
const result = await service.generate(2025, 12, 'user-123', false);
  • PrevisionsRepository: Acceso a agregados y persistencia.