workspace-v1/projects/erp-construccion/docs/02-definicion-modulos/MAE-014-finanzas-controlling/especificaciones/ET-FIN-005-dashboard de control de gestión.md
rckrdmrd 66161b1566 feat: Workspace-v1 complete migration with NEXUS v3.4
Sistema NEXUS v3.4 migrado con:

Estructura principal:
- core/orchestration: Sistema SIMCO + CAPVED (27 directivas, 28 perfiles)
- core/catalog: Catalogo de funcionalidades reutilizables
- shared/knowledge-base: Base de conocimiento compartida
- devtools/scripts: Herramientas de desarrollo
- control-plane/registries: Control de servicios y CI/CD
- orchestration/: Configuracion de orquestacion de agentes

Proyectos incluidos (11):
- gamilit (submodule -> GitHub)
- trading-platform (OrbiquanTIA)
- erp-suite con 5 verticales:
  - erp-core, construccion, vidrio-templado
  - mecanicas-diesel, retail, clinicas
- betting-analytics
- inmobiliaria-analytics
- platform_marketing_content
- pos-micro, erp-basico

Configuracion:
- .gitignore completo para Node.js/Python/Docker
- gamilit como submodule (git@github.com:rckrdmrd/gamilit-workspace.git)
- Sistema de puertos estandarizado (3005-3199)

Generated with NEXUS v3.4 Migration System
EPIC-010: Configuracion Git y Repositorios
2026-01-04 03:37:42 -06:00

1.0 KiB

ET-FIN-005: Dashboard de Control de Gestión

ID: ET-FIN-005 | Módulo: MAE-014

Controlling Dashboard Service

@Injectable()
export class ControllingService {
  async getDashboard(projectId?: string): Promise<ControllingDashboard> {
    const scope = projectId ? { projectId } : {};
    
    return {
      kpis: await this.calculateKPIs(scope),
      cashFlow: await this.cashFlowService.getSummary(scope),
      budgetVsActual: await this.getBudgetComparison(scope),
      alerts: await this.getActiveAlerts(scope)
    };
  }

  private async calculateKPIs(scope: Scope): Promise<KPIs> {
    const receivables = await this.receivableRepo.find(scope);
    const payables = await this.payableRepo.find(scope);
    
    return {
      dso: this.calculateDSO(receivables), // Days Sales Outstanding
      dpo: this.calculateDPO(payables),     // Days Payable Outstanding
      liquidityRatio: await this.getLiquidityRatio(scope),
      profitMargin: await this.getProfitMargin(scope)
    };
  }
}

Generado: 2025-11-21