Plataforma técnica · Sevastopol
Honorarios en Sevastopol
Islands Remuneraciones Honorarios
Propósito
Section titled “Propósito”HonorariosViewIsland cubre el ciclo de boletas de terceros (prestadores que no son empleados): mantenimiento del padrón, generación masiva del periodo desde la base operacional, contabilización contra el plan de cuentas y reversa.
Una única island con dos tabs controladas por una signal local:
boletas— listado del periodo activo con acciones contabilizar/reversar.prestadores— CRUD del padrón con cuenta de gasto mapeada.
Es la contraparte tributaria de la DJ 1879 — las boletas aquí registradas alimentan la declaración anual.
Decisiones de UX
Section titled “Decisiones de UX”| Decisión | Motivo |
|---|---|
| Una island con 2 tabs | Boletas y prestadores comparten contexto de tenant y catálogo de cuentas; separar en dos islands forzaría cargar prestadores dos veces. |
Tab boletas filtra por período activo | useActivePeriod re-fetcha /api/honorarios?year=&month=. Tab prestadores ignora el período (es padrón). |
Generación masiva con force: true y confirm nativo | POST /generar consolida la base operacional del mes en boletas. El operador ratifica para evitar disparos accidentales. |
| Cuenta de gasto del prestador como FK del plan | El catálogo viene de /api/admin/chart-of-accounts filtrado por tipo === "GASTO" && es_imputable. Se hereda a la boleta al contabilizar. |
| Acciones por estado de boleta | EMITIDA / RECIBIDA / APROBADA → botón “Contabilizar”; CONTABILIZADO → botón “Reversar”. La UI muestra el botón válido por fila. |
| Loading state por fila | contabilizandoId y reversandoId controlan el spinner por fila — evita doble click y muestra qué está procesando. |
| Form de prestador con validación cliente | rut, nombres y apellidos son obligatorios; el resto se persiste como null si vacío. |
| Cuenta de gasto opcional en prestador | El prestador puede crearse sin cuenta — se completa antes de la primera contabilización. |
| Filtros locales sobre la lista cargada | Volumen mensual manejable; filtroTexto busca en nombre, RUT y número de boleta. |
| Tab | Endpoint | Contenido |
|---|---|---|
boletas | /api/honorarios?year=&month= | Lista del periodo con acciones contabilizar/reversar. |
prestadores | /api/honorarios/prestadores | Padrón de prestadores. |
Lenguaje compartido
Section titled “Lenguaje compartido”| Componente | Uso |
|---|---|
PayrollWorkspaceHeader | Header con controls y pills. |
WorkspaceTabBar | Cambio entre boletas y prestadores. |
WorkspaceSectionCard | Sección con métricas (total bruto, retención, líquido, count). |
InlineMetricPill | Métricas inline por tab. |
| Hook | Uso |
|---|---|
useActiveTenant | Recarga boletas + prestadores + cuentas al cambiar tenant. |
useActivePeriod | { year, month } filtra el listado de boletas. Tab prestadores lo ignora. |
Endpoints
Section titled “Endpoints”| Método + ruta | Uso |
|---|---|
GET /api/honorarios?year=&month=&tenant_id= | Boletas del periodo. |
POST /api/honorarios/generar?tenant_id= | Generación masiva. |
POST /api/honorarios/:id/contabilizar?tenant_id= | Contabiliza una boleta. |
POST /api/honorarios/:id/reversar?tenant_id= | Reversa el asiento. |
GET /api/honorarios/prestadores?tenant_id= | Padrón. |
POST /api/honorarios/prestadores?tenant_id= | Alta prestador. |
PUT /api/honorarios/prestadores/:id?tenant_id= | Edición prestador. |
DELETE /api/honorarios/prestadores/:id?tenant_id= | Eliminación prestador. |
GET /api/admin/chart-of-accounts?tenant_id= | Plan de cuentas para el selector. |
Backend de referencia
Section titled “Backend de referencia”HonorariosService — CRUD de boletas y prestadores, generación masiva del periodo, contabilización y reversa.
Relación con otros dominios
Section titled “Relación con otros dominios”- Declaraciones consume las boletas anuales para construir la DJ 1879.
- Gastos comparte el plan de cuentas — un prestador puede tener cuenta de gasto solapada con categorías de gasto.
- Operaciones SII alimenta las boletas de honorarios recibidas (terceros que emiten al tenant).
- Ciclo contable lee el estado de contabilización del periodo.
Estas relaciones se documentan en cada destino, no aquí.