Skip to content

Plataforma técnica · Sevastopol

Liquidaciones e imposiciones en Sevastopol

Islands Remuneraciones Liquidaciones

El cálculo mensual del frontend consolida todo el subdominio anterior en dos islands:

  • PayrollViewIsland ejecuta el motor de cálculo por empleado y persiste la liquidación.
  • PrevisionsViewIsland genera la planilla de imposiciones a partir de las liquidaciones del periodo.

Ambas dependen del período activo y son el único punto donde el dominio remuneraciones produce asientos contables y documentos finales (PDF de liquidación, planilla de imposiciones).

DecisiónMotivo
Preview antes de persistirPayrollViewIsland separa POST /preview (motor en seco, sin escribir) de POST /generar (persistencia + asiento). El operador valida líquido, descuentos y aportes antes de aprobar.
Override de dias_trabajados cuando hay finiquito en el mesSi el empleado tiene fecha_egreso dentro del periodo, la island ajusta los días automáticamente y avisa con toast. Evita liquidaciones del mes completo a quien dejó la empresa antes del cierre.
Status mutable (BORRADOR → APROBADA → CONTABILIZADA)Cambiar estado dispara reglas distintas en el backend. La UI usa modal con select del estado destino — no botones directos — para forzar revisión.
PDF como descarga del backend, no render clienteEl PDF lo genera el Orchestrator con plantilla legal. La island sólo lo descarga vía GET /:id/pdf.
PrevisionsViewIsland genera con dry-runEl alta de planilla muestra simulación (cantidad de líneas, totales por institución) antes de persistir.
Filtros locales sobre la lista cargadaHasta 2000 liquidaciones por consulta — el volumen mensual por tenant es manejable. Paginar agrega latencia.
useActivePeriod controla qué se veCambiar year/month en el workspace recarga liquidaciones y previsiones. Sin período no hay cálculo.
IslandEndpoint baseDocumentación
PayrollViewIsland/api/remuneraciones/payrollPayroll
PrevisionsViewIsland/api/previsionesPrevisiones

Ambas islands usan los tokens estándar de PayrollWorkspace: PayrollWorkspaceHeader, WorkspaceSectionCard, InlineMetricPill y los botones workspacePrimary/Secondary.

HookUso
useActiveTenantRecarga liquidaciones + previsiones al cambiar tenant.
useActivePeriod{ year, month } define qué periodo se calcula. Re-fetch en cada cambio.

Liquidaciones e imposiciones (Orchestrator) expone:

  • PayrollService — motor de cálculo + asiento contable + PDF.
  • PrevisionsService — agrupa descuentos previsionales y genera planilla mensual.
  • Maestro laboral provee contrato (sueldo base, jornada, reglas AFC).
  • Régimen previsional define el régimen APV/Isapre que el motor aplica.
  • Tiempo trabajado entrega días trabajados, vacaciones tomadas y permisos.
  • Ciclo contable cierra el paso remuneraciones cuando todas las liquidaciones del mes están en CONTABILIZADA y existe previsión.
  • Declaraciones (F29) lee retenciones de IUSC y aportes desde las liquidaciones.

Estas relaciones se documentan en cada destino, no aquí.