Plataforma técnica · Sevastopol
Reportes en Sevastopol
Islands Reportes
Propósito
Section titled “Propósito”El dominio reportes del frontend consolida los estados contables anuales que el tenant produce: balance clasificado + estado de resultados (Balance Anual), y la cuenta de patrimonio que acumula utilidades retenidas o pérdidas (Resultado Acumulado).
Las dos islands operan sobre /api/reportes y consumen el período activo del workspace. Son lectura derivada de los movimientos contables del periodo — no se ingresan datos aquí, se calculan y se persiste el snapshot.
Decisiones de UX
Section titled “Decisiones de UX”| Decisión | Motivo |
|---|---|
| Dos islands separadas en vez de tabs | Balance Anual es un reporte ejecutivo con 5 vistas internas; Resultado Acumulado es una tabla del patrimonio. Compartirían período pero los flujos de aprobación divergen. |
| Cálculo vs guardado separados | En ambas islands calcular (preview) está separado de guardar (persistencia). El operador revisa el snapshot antes de fijarlo. |
Workflow BORRADOR → APROBADO (Balance) o BORRADOR → CONTABILIZADO → APROBADO (Resultado) | Cada uno con confirm explícito; el cambio de estado dispara reglas distintas en el backend. |
| Presentación TRIBUTARIO vs IFRS | Balance Anual permite ambas vistas del mismo período. La clasificación de cuentas cambia según el régimen. |
| Modo ANUAL_ACUMULADO vs MENSUAL | Default acumulado al cierre del periodo. MENSUAL es legado y se mantiene para consultas históricas. |
| PDF como descarga del backend | El PDF se genera con plantilla legal en el Orchestrator (PdfService); el frontend solo lo abre como blob en nueva pestaña. |
| Cierre del periodo solo en diciembre | Balance Anual deshabilita cerrarPeriodo si mes !== 12. El cierre anual es evento contable distinto del guardado mensual. |
| Historial con aprobación y reversa | Cada balance guardado puede aprobarse o revertir su aprobación — la auditoría exige trazabilidad. |
Islands del dominio
Section titled “Islands del dominio”| Island | Endpoint base | Documentación |
|---|---|---|
BalanceAnualIsland | /api/reportes/calcular, /guardar, /guardados, /pdf, /cerrar-periodo | Balance Anual |
ResultadoAcumuladoIsland | /api/reportes/resultados-acumulados/* | Resultado Acumulado |
Lenguaje compartido
Section titled “Lenguaje compartido”Ambas islands usan los tokens estándar de WorkspaceTheme (importado con alias ReportesWorkspaceHeader):
| Componente | Uso |
|---|---|
ReportesWorkspaceHeader | Header con pills y controls. |
WorkspaceSectionCard | Sección con eyebrow, title, description, pills. |
WorkspaceTabBar (Balance) / WorkspaceSegmentedControl (Resultado) | Tabs internas en Balance; toggles de tipo/modo en Resultado. |
InlineMetricPill | Métricas inline (año, mes, tipo, estado). |
StatCard | KPIs ejecutivos en la cabecera. |
Hooks compartidos
Section titled “Hooks compartidos”| Hook | Uso |
|---|---|
useActiveTenant | Recarga al cambiar tenant. |
useActivePeriod | { year, month } alimenta el cálculo del periodo. Balance permite mes 1–12; Resultado fuerza modo MENSUAL para usar el mes, ANUAL_ACUMULADO ignora el mes (usa 12). |
Backend de referencia
Section titled “Backend de referencia”Reportes (Orchestrator) agrupa los servicios que estas islands consumen:
BalanceService— cálculo del balance clasificado y estado de resultados.CierrePeriodoService— cierre anual del periodo.ResultadosAcumuladosService— utilidades retenidas / pérdidas acumuladas con workflow.RentaService,PpmService,ReportesServiceSupport— soporte tributario consumido por los anteriores.
Endpoints base
Section titled “Endpoints base”| Endpoint | Uso |
|---|---|
/api/reportes/calcular | Cálculo del balance del periodo (preview, sin persistir). |
/api/reportes/guardar | Persiste el snapshot del balance. |
/api/reportes/guardados (GET, GET/:id, DELETE/:id) | Historial de balances guardados. |
/api/reportes/guardados/:id/aprobar (PUT) | Aprueba un balance guardado. |
/api/reportes/guardados/:id/reversar-aprobacion (PUT) | Reversa la aprobación. |
/api/reportes/pdf | Descarga PDF legal del balance. |
/api/reportes/cerrar-periodo | Cierre anual (mes 12). |
/api/reportes/resultados-acumulados | Listado del patrimonio acumulado. |
/api/reportes/resultados-acumulados/generar | Genera registro en BORRADOR. |
/api/reportes/resultados-acumulados/:id/estado | Cambia el estado (BORRADOR → CONTABILIZADO → APROBADO). |
Relación con otros dominios
Section titled “Relación con otros dominios”- Ciclo contable depende del balance aprobado para cerrar el periodo.
- Manual de cuentas (Command) provee el plan de cuentas que
BalanceAnualIslandusa para clasificar cuentas como activos/pasivos/patrimonio/resultados. - Declaraciones (F29 + Renta) lee el balance tributario para cuadres anuales.
Estas relaciones se documentan en cada destino, no aquí.