Plataforma técnica · Sevastopol
Operations View Island
Operaciones SII Islands Sevastopol
Propósito
Section titled “Propósito”OperationsViewIsland es la interfaz frontend para revisar documentos SII normalizados y operar el detalle contable generado por OperationsService. La vista consulta ventas, compras y boletas por periodo, muestra el estado de generacion, permite reprocesar detalle operacional y reversar contabilizacion de ingresos.
La clasificacion contable, la persistencia y la validacion de reprocesos viven en Orchestrator. Sevastopol actua como interfaz operativa y proxy hacia /api/operaciones.
Ubicación
Section titled “Ubicación”Directorysevastopol/src/components/islands/accounting/
- OperationsViewIsland.tsx
Directorysevastopol/src/pages/api/operaciones/
- […path].ts
Directorysevastopol/src/pages/api/accounting/
- read.ts
Composición
Section titled “Composición”| Modo | Pestañas visibles | Uso |
|---|---|---|
all | VENTA, COMPRA, BOLETA | Vista completa de operaciones SII. |
ingresos | VENTA, BOLETA | Variante exportada para IngresosViewIsland. |
const OPS_API = "/api/operaciones";const [tab, setTab] = createSignal<OperationType>("VENTA");Hooks y Estado Global
Section titled “Hooks y Estado Global”| Hook | Aporta | Reactividad |
|---|---|---|
useActiveTenant | Tenant activo para consultar documentos y ejecutar acciones. | Recarga estado y filas al cambiar tenant. |
useActivePeriod | Periodo mensual activo. | Actualiza periodo desde y hasta, y recarga la vista. |
La island mantiene signals locales para tipo documental, filas, loading y resumen de estado por tipo. El estado se consulta separado de las filas para bloquear reprocesos cuando hay documentos protegidos.
Flujo de Consulta
Section titled “Flujo de Consulta”-
Construir parametros con tenant, tipo documental y rango de periodos.
const params = new URLSearchParams({tenant_id: tid,tipo_documento: tab(),periodo_desde: pDesde,periodo_hasta: pHasta,}); -
Consultar resumen de contabilizacion.
await authenticatedFetch(`${OPS_API}/estado-contabilizacion?${params}`); -
Consultar documentos normalizados.
await authenticatedFetch(`${OPS_API}?${params}`); -
Renderizar metricas, detalle de estado y tabla de documentos.
Acciones
Section titled “Acciones”| Acción | Endpoint | Regla visible |
|---|---|---|
| Generar detalle | POST /api/operaciones/generate | Disponible si el periodo no tiene documentos protegidos. |
| Reprocesar detalle | POST /api/operaciones/generate con forzar_reproceso | Bloqueado cuando hay CONTABILIZADO o PAGADO. |
| Reversar ingresos | POST /api/operaciones/reversar-contabilizacion | Disponible solo en modo ingresos y para VENTA o BOLETA. |
Derivación de Compras
Section titled “Derivación de Compras”Las compras no terminan en esta island. Despues de generar detalle, las lineas COMPRA se derivan por clasificacion de proveedor hacia:
| Destino | Island |
|---|---|
| Existencias | InventarioIsland |
| Activo fijo | ActivosFijosIsland |
| Gasto | GastosIsland |
Estados Visibles
Section titled “Estados Visibles”| Estado | Lectura de interfaz |
|---|---|
VACIO | No existen documentos fuente ni detalle para el periodo. |
PENDIENTE | Existen documentos fuente, pero falta generar detalle. |
VALIDADO | Los documentos tienen detalle generado y pendiente de acciones posteriores. |
CONTABILIZADO | Las lineas aplicables ya fueron marcadas como contabilizadas. |
PAGADO | El flujo posterior marco las lineas como pagadas. |
PARCIAL | Existe mezcla de estados o avance incompleto. |
INCONSISTENTE | Hay diferencias entre documentos fuente y detalle generado. |
Reglas de UI
Section titled “Reglas de UI”| Regla | Motivo |
|---|---|
| Usar tenant activo | Las operaciones pertenecen a la base tenant seleccionada. |
| Separar tipo documental | Ventas, compras y boletas tienen reglas contables distintas. |
| Consultar estado antes de reprocesar | Evita borrar detalle ya contabilizado o pagado. |
| Restringir reversa a ingresos | Compras se consumen por flujos posteriores. |
| Recargar despues de cada accion | Mantiene la tabla alineada con Orchestrator. |