Plataforma técnica · Sevastopol
Liquidaciones e imposiciones en Sevastopol
Islands Remuneraciones Liquidaciones
Propósito
Section titled “Propósito”El cálculo mensual del frontend consolida todo el subdominio anterior en dos islands:
PayrollViewIslandejecuta el motor de cálculo por empleado y persiste la liquidación.PrevisionsViewIslandgenera 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).
Decisiones de UX
Section titled “Decisiones de UX”| Decisión | Motivo |
|---|---|
| Preview antes de persistir | PayrollViewIsland 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 mes | Si 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 cliente | El PDF lo genera el Orchestrator con plantilla legal. La island sólo lo descarga vía GET /:id/pdf. |
PrevisionsViewIsland genera con dry-run | El alta de planilla muestra simulación (cantidad de líneas, totales por institución) antes de persistir. |
| Filtros locales sobre la lista cargada | Hasta 2000 liquidaciones por consulta — el volumen mensual por tenant es manejable. Paginar agrega latencia. |
useActivePeriod controla qué se ve | Cambiar year/month en el workspace recarga liquidaciones y previsiones. Sin período no hay cálculo. |
Islands del subdominio
Section titled “Islands del subdominio”| Island | Endpoint base | Documentación |
|---|---|---|
PayrollViewIsland | /api/remuneraciones/payroll | Payroll |
PrevisionsViewIsland | /api/previsiones | Previsiones |
Lenguaje compartido
Section titled “Lenguaje compartido”Ambas islands usan los tokens estándar de PayrollWorkspace: PayrollWorkspaceHeader, WorkspaceSectionCard, InlineMetricPill y los botones workspacePrimary/Secondary.
Hooks compartidos
Section titled “Hooks compartidos”| Hook | Uso |
|---|---|
useActiveTenant | Recarga liquidaciones + previsiones al cambiar tenant. |
useActivePeriod | { year, month } define qué periodo se calcula. Re-fetch en cada cambio. |
Backend de referencia
Section titled “Backend de referencia”Liquidaciones e imposiciones (Orchestrator) expone:
PayrollService— motor de cálculo + asiento contable + PDF.PrevisionsService— agrupa descuentos previsionales y genera planilla mensual.
Relación con otros dominios
Section titled “Relación con otros dominios”- 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
remuneracionescuando todas las liquidaciones del mes están enCONTABILIZADAy existe previsión. - Declaraciones (F29) lee retenciones de IUSC y aportes desde las liquidaciones.
Estas relaciones se documentan en cada destino, no aquí.