Skip to content
GitHub

Islands de Administración

El módulo de Administración en Sevastopol contiene islands SolidJS para la gestión central del sistema: empresa, capital, plan contable, representantes legales y monitoreo.

  • Directorysevastopol/src/components/islands/admin/
    • CapitalViewIsland.tsx
    • ChartOfAccountsViewIsland.tsx
    • CommonDataExplorerIsland.tsx
    • CompanyViewIsland.tsx
    • LegalRepresentativesViewIsland.tsx
    • MonitoringViewIsland.tsx
    • SessionsViewIsland.tsx
    • SystemConfigViewIsland.tsx
    • TenantsViewIsland.tsx

Gestiona los movimientos del capital social de la empresa.

  • CRUD completo de movimientos de capital
  • Filtros por estado y tipo de capital
  • Stats con totales y gráficos
  • Modal para crear/editar movimientos
TipoDescripción
APORTE_INICIALCapital fundacional
AUMENTO_CAPITALIncrementos
REDUCCION_CAPITALDisminuciones
CAPITALIZACION_UTILIDADESUtilidades reinvertidas
REVALORIZACIONAjustes monetarios
import CapitalViewIsland from "@/components/islands/admin/CapitalViewIsland";
// En página Astro
<CapitalViewIsland client:visible />

Administra el plan de cuentas contable con vista jerárquica.

  • Vista en árbol del plan de cuentas
  • Filtros por código, nombre, tipo y nivel
  • Badges para tipo (ACTIVO/PASIVO/etc.) e imputabilidad
  • Validación de códigos numéricos
  • Soporte IFRS con código alternativo
const stats = createMemo(() => ({
total: accounts().length,
activos: accounts().filter(a => a.tipo === "ACTIVO").length,
pasivos: accounts().filter(a => a.tipo === "PASIVO").length,
imputables: accounts().filter(a => a.imputable).length
}));

Dashboard de métricas de salud del sistema.

MétricaDescripción
disk_usage_pctUso de disco (%)
cpu_load_pctCarga de CPU (%)
memory_usage_pctUso de memoria (%)
active_connectionsConexiones activas
failed_jobs_last_24hTrabajos fallidos (24h)
api_errors_last_24hErrores API (24h)
const healthColor = (pct: number) => {
if (pct < 50) return "text-emerald-500"; // OK
if (pct < 80) return "text-amber-500"; // Warning
return "text-rose-500"; // Critical
}

Gestión de tenants para arquitectura multi-empresa.

  • Lista de tenants con estados
  • Creación de nuevos tenants
  • Bases de datos asociadas por tenant
  • Activación/Desactivación de tenants

Todas las islands de Admin siguen el patrón estándar:

export default function XxxViewIsland() {
return (
<ToastProvider>
<XxxView />
</ToastProvider>
);
}
function XxxView() {
const toast = useToast();
const [isLoading, setLoading] = createSignal(true);
const [data, setData] = createSignal([]);
// Tenants para multi-empresa
const [tenants, setTenants] = createSignal<Tenant[]>([]);
const [selectedTenantId, setSelectedTenantId] = createSignal("");
async function fetchData() {
const url = selectedTenantId()
? `${API_BASE}?tenant_id=${selectedTenantId()}`
: API_BASE;
const r = await authenticatedFetch(url);
// ...
}
onMount(() => {
fetchTenants();
fetchData();
});
return (
<IslandBase
module="ADMIN"
title="Título"
tenants={tenants()}
selectedTenantId={selectedTenantId()}
onTenantChange={setSelectedTenantId}
stats={<StatCard ... />}
filters={<Select ... />}
>
<DataTable items={data()} headers={HEADERS} />
</IslandBase>
);
}
IslandEndpointServicio
CapitalViewIsland/api/admin/capitalCapitalService
ChartOfAccountsViewIsland/api/admin/chart-of-accountsChartOfAccountsService
CompanyViewIsland/api/admin/companyCompanyService
LegalRepresentativesViewIsland/api/admin/representativesLegalRepService
MonitoringViewIsland/api/monitoringMonitoringService
SystemConfigViewIsland/api/admin/system-configSystemConfigService
TenantsViewIsland/api/tenantTenantService
SessionsViewIsland/api/sessionsSessionService