Plataforma técnica · Sevastopol
Contratos APV en Sevastopol
Islands Remuneraciones Apv
Propósito
Section titled “Propósito”APVContractsViewIsland registra el ahorro previsional voluntario que un trabajador adscribe a una AFP sobre un contrato concreto. APV es opcional, condicional al contrato y con vigencia propia — un trabajador puede tener APV en un contrato y no en otro, y cambiar el régimen a lo largo de la relación.
La adscripción aquí registrada condiciona el descuento que PayrollService aplica al cálculo mensual.
Decisiones de UX
Section titled “Decisiones de UX”| Decisión | Motivo |
|---|---|
| Selección guiada empleado → contrato → AFP | El alta exige los tres antes de habilitar campos económicos. Filtrar contratos por empleado evita asignar APV a un contrato ajeno. |
| Catálogo AFP con fallback de 3 endpoints | loadAfpCatalogSafe() prueba /api/apv_contracts?scope=afps, /api/afp y /api/remuneraciones/afp en orden. Mantiene compatibilidad con entornos donde el endpoint canónico cambia. |
| Régimen A vs B como decisión explícita | A: descuento sobre imponible bruto. B: descuento líquido (tras descontar cotización obligatoria). Cambian el cálculo — la UI obliga a elegir uno. |
| Periodicidad mensual / anual / único | El motor de cálculo aplica el descuento sólo cuando corresponde según periodicidad. |
monto_tipo UF/CLP/% + moneda derivada | Si el tipo es UF, la moneda se fuerza a UF y se marca read-only. Evita inconsistencias UF/CLP. |
| Descuento por planilla opcional | Si está marcado, el descuento se aplica vía liquidación; si no, queda como pago directo a la institución (no afecta nómina). |
| Stats por régimen | Conteo de regimenA y regimenB en el header para detectar concentración. |
Datos visibles
Section titled “Datos visibles”| Grupo | Campos esperados |
|---|---|
| Asociación | Empleado, contrato, AFP. |
| Régimen | A o B. |
| Periodicidad | MENSUAL / ANUAL / UNICO. |
| Monto | Tipo (UF/CLP/%), moneda, valor. |
| Vigencia | Desde, hasta (opcional). |
| Modalidad | Descuento por planilla sí/no. |
Endpoints
Section titled “Endpoints”| Método + ruta | Uso |
|---|---|
GET /api/apv_contracts?tenant_id=&limit=&activos=1 | Listado reciente. |
GET /api/apv_contracts?tenant_id=&empleado_id= | Filtra por empleado. |
GET /api/apv_contracts?tenant_id=&contrato_id= | Filtra por contrato. |
POST /api/apv_contracts?tenant_id= | Alta. |
PUT /api/apv_contracts/:id?tenant_id= | Edición. |
DELETE /api/apv_contracts/:id?tenant_id= | Eliminación. |
GET /api/apv_contracts?scope=afps (fallback /api/afp, /api/remuneraciones/afp) | Catálogo AFP. |
GET /api/employees?tenant_id= · GET /api/contracts?empleado_id=&tenant_id= | Catálogos del formulario. |
Backend de referencia
Section titled “Backend de referencia”AfpService expone el catálogo. El CRUD de contratos APV vive en el endpoint propio del Orchestrator dentro del dominio régimen previsional.