Plataforma técnica · Sevastopol
Finiquitos en Sevastopol
Islands Remuneraciones Finiquitos
Propósito
Section titled “Propósito”FiniquitosViewIsland opera el término del contrato laboral. Cubre simulación del cálculo (indemnización por causal SII, vacaciones proporcionales, descuentos), generación persistente con asiento contable y descarga del documento legal.
Una única island sin tabs. A diferencia de payroll y previsiones, no escucha useActivePeriod — el finiquito es un evento (fecha de término), no un periodo. Filtra por su propio rango de fechas.
Decisiones de UX
Section titled “Decisiones de UX”| Decisión | Motivo |
|---|---|
| Simulación obligatoria antes de generar | POST /simulate muestra indemnización, feriado proporcional y descuentos. El operador valida antes de aprobar. Generar sin simular es posible pero la UI desincentiva. |
| Causal SII en select | El cálculo depende de la causal (art. 159, 160, 161, mutuo acuerdo). La UI obliga a elegir una causal codificada — no texto libre. |
| Eliminar reactiva el contrato | DELETE /:id regresa el contrato a ACTIVO. El confirm lo advierte literalmente. |
Sin useActivePeriod | Es un evento, no un periodo. Filtros propios por desde/hasta. |
| Filtros locales sobre la lista cargada | Volumen total bajo. filtroTexto busca en empleado_nombre y empleado_rut. |
| PDF abre en nueva pestaña | /api/finiquitos/:id/download se abre con window.open — el documento legal queda visible para imprimir o descargar. |
| Modal único de “Generar” | Causal + fecha + contrato se ingresan en un form simple. Si la simulación falla con datos faltantes, la UI lo informa por toast. |
Eliminación con confirm estricto | El texto del confirm menciona explícitamente que el contrato volverá a estar ACTIVO. |
Datos visibles
Section titled “Datos visibles”| Grupo | Campos esperados |
|---|---|
| Identificación | Número de finiquito, fecha. |
| Trabajador | Empleado, RUT. |
| Cálculo | Total líquido, detalle (snapshot). |
| Estado | BORRADOR / FIRMADO. |
Lenguaje compartido
Section titled “Lenguaje compartido”FiniquitosViewIsland usa PayrollWorkspaceHeader, WorkspaceSectionCard, InlineMetricPill y los botones del workspace — mismo lenguaje que el resto del dominio.
| Hook | Uso |
|---|---|
useActiveTenant | Recarga finiquitos + empleados al cambiar tenant. |
Endpoints
Section titled “Endpoints”| Método + ruta | Uso |
|---|---|
GET /api/finiquitos?tenant_id= | Listado. |
POST /api/finiquitos/simulate?tenant_id= | Cálculo en seco. |
POST /api/finiquitos/generate?tenant_id= | Persistencia + asiento. |
GET /api/finiquitos/:id/download?tenant_id= | PDF legal. |
DELETE /api/finiquitos/:id?tenant_id= | Anula y reactiva el contrato. |
GET /api/employees?tenant_id= | Catálogo para el modal. |
Backend de referencia
Section titled “Backend de referencia”FiniquitoService — simulación, persistencia, asiento contable y generación del PDF legal con causal SII.
Relación con otros dominios
Section titled “Relación con otros dominios”- Maestro laboral provee el contrato a terminar. Eliminar el finiquito reactiva el contrato.
- Tiempo trabajado entrega el saldo de vacaciones que se indemniza.
- Liquidaciones ajusta
dias_trabajadosdel último mes cuando el empleado se finiquita dentro del período. - Ciclo contable lee el asiento del finiquito como parte del cierre.
Estas relaciones se documentan en cada destino, no aquí.