erp-core/docs/02-definicion-modulos/DEPENDENCIAS-MODULOS.md

940 lines
30 KiB
Markdown

# DEPENDENCIAS ENTRE MÓDULOS
**Fecha:** 2025-12-05
**Versión:** 1.1
**Basado en:** LISTA-MODULOS-ERP-GENERICO.md + ALCANCE-POR-MODULO.md + DDL-SPEC SaaS
---
## Introducción
Este documento define las dependencias entre los 18 módulos del ERP Genérico (14 core + 4 SaaS) y establece el orden óptimo de implementación.
**Objetivo:**
- Identificar qué módulos dependen de otros
- Establecer orden de implementación que minimice bloqueos
- Planificar sprints de desarrollo
- Identificar riesgos de dependencias circulares
**Metodología:**
- **Dependencia fuerte:** Módulo B NO puede funcionar sin Módulo A (bloquea implementación)
- **Dependencia débil:** Módulo B puede funcionar sin Módulo A, pero con funcionalidad limitada
- **Dependencia opcional:** Módulo B puede usar Módulo A si está disponible, pero no es necesario
---
## Matriz de Dependencias
### Tabla Completa de Dependencias
| Módulo | Código | Depende de (Fuerte) | Depende de (Débil) | Requerido por (Fuerte) | Nivel de Implementación |
|--------|--------|---------------------|--------------------|-----------------------|------------------------|
| **Fundamentos** | MGN-001 | - | - | TODOS (MGN-002 a MGN-014) | **Nivel 0** |
| **Empresas** | MGN-002 | MGN-001 | - | MGN-004, MGN-005, MGN-006, MGN-007, MGN-010 | **Nivel 1** |
| **Catálogos** | MGN-003 | MGN-001, MGN-002 | - | MGN-004, MGN-005, MGN-006, MGN-007, MGN-009 | **Nivel 1** |
| **Mensajería** | MGN-014 | MGN-001 | - | MGN-013 | **Nivel 1** |
| **Financiero** | MGN-004 | MGN-001, MGN-002, MGN-003 | - | MGN-006, MGN-007, MGN-008, MGN-012 | **Nivel 2** |
| **Inventario** | MGN-005 | MGN-001, MGN-002, MGN-003 | - | MGN-006, MGN-007 | **Nivel 2** |
| **RRHH** | MGN-010 | MGN-001, MGN-002, MGN-003 | - | MGN-011 | **Nivel 2** |
| **Compras** | MGN-006 | MGN-004, MGN-005 | - | MGN-008 | **Nivel 3** |
| **Ventas** | MGN-007 | MGN-004, MGN-005 | - | MGN-008, MGN-009, MGN-013 | **Nivel 3** |
| **Analítica** | MGN-008 | MGN-004, MGN-006, MGN-007 | - | MGN-011, MGN-012 | **Nivel 4** |
| **CRM** | MGN-009 | MGN-003, MGN-007 | MGN-014 | - | **Nivel 4** |
| **Portal** | MGN-013 | MGN-001, MGN-007, MGN-014 | - | - | **Nivel 4** |
| **Proyectos** | MGN-011 | MGN-008 | MGN-010 | - | **Nivel 5** |
| **Reportes** | MGN-012 | MGN-004, MGN-008 | - | - | **Nivel 5** |
| **Billing SaaS** | MGN-015 | MGN-001, MGN-002 (Tenants) | - | MGN-016, MGN-017, MGN-018 | **Nivel 6** |
| **Payments POS** | MGN-016 | MGN-001, MGN-004, MGN-015 | - | - | **Nivel 7** |
| **WhatsApp Business** | MGN-017 | MGN-001, MGN-003, MGN-015 | - | MGN-018 | **Nivel 7** |
| **AI Agents** | MGN-018 | MGN-001, MGN-003, MGN-017 | - | - | **Nivel 8** |
### Visualización de Niveles de Implementación
```
Nivel 0 (Base):
┌─────────────┐
│ MGN-001 │ ← INICIO OBLIGATORIO
│ Fundamentos │
└─────────────┘
Nivel 1 (Core Base):
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ MGN-002 │ │ MGN-003 │ │ MGN-014 │
│ Empresas │ │ Catálogos │ │ Mensajería │
└─────────────┘ └─────────────┘ └─────────────┘
Nivel 2 (Módulos Transaccionales Base):
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ MGN-004 │ │ MGN-005 │ │ MGN-010 │
│ Financiero │ │ Inventario │ │ RRHH │
└─────────────┘ └─────────────┘ └─────────────┘
Nivel 3 (Compras y Ventas):
┌─────────────┐ ┌─────────────┐
│ MGN-006 │ │ MGN-007 │
│ Compras │ │ Ventas │
└─────────────┘ └─────────────┘
Nivel 4 (Analítica y Complementarios):
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ MGN-008 │ │ MGN-009 │ │ MGN-013 │
│ Analítica │ │ CRM │ │ Portal │
└─────────────┘ └─────────────┘ └─────────────┘
Nivel 5 (Módulos Avanzados):
┌─────────────┐ ┌─────────────┐
│ MGN-011 │ │ MGN-012 │
│ Proyectos │ │ Reportes │
└─────────────┘ └─────────────┘
Nivel 6 (SaaS Platform - Base):
┌─────────────┐
│ MGN-015 │
│ Billing SaaS│
└─────────────┘
Nivel 7 (SaaS Platform - Integraciones):
┌─────────────┐ ┌─────────────┐
│ MGN-016 │ │ MGN-017 │
│ Payments POS│ │ WhatsApp │
└─────────────┘ └─────────────┘
Nivel 8 (SaaS Platform - AI):
┌─────────────┐
│ MGN-018 │
│ AI Agents │
└─────────────┘
```
---
## Detalle de Dependencias por Módulo
### MGN-001: Fundamentos
**Nivel:** 0 (Base)
**Depende de:**
- ❌ Ninguno (es el módulo base)
**Requerido por (Fuerte):**
-**TODOS** los módulos (MGN-002 a MGN-014)
**Razón:**
Autenticación, autorización y multi-tenancy son fundamentales para cualquier funcionalidad del ERP.
**Impacto de bloqueo:**
- **CRÍTICO:** Si MGN-001 no está completo, NO se puede iniciar ningún otro módulo.
- **Prioridad:** P0 - MÁXIMA
- **Debe completarse en:** Sprint 1-2
---
### MGN-002: Empresas y Organizaciones
**Nivel:** 1 (Core Base)
**Depende de:**
-**MGN-001 (Fuerte):** Requiere autenticación de usuarios
**Requerido por (Fuerte):**
-**MGN-004 (Financiero):** Documentos contables deben tener company_id
-**MGN-005 (Inventario):** Almacenes y productos por empresa
-**MGN-006 (Compras):** Órdenes de compra por empresa
-**MGN-007 (Ventas):** Órdenes de venta por empresa
-**MGN-010 (RRHH):** Empleados por empresa
**Razón:**
Multi-empresa es requerimiento fundamental. Todos los documentos transaccionales deben tener company_id.
**Impacto de bloqueo:**
- **ALTO:** Bloquea módulos transaccionales (MGN-004 a MGN-007, MGN-010)
- **Prioridad:** P0 - ALTA
- **Debe completarse en:** Sprint 3
---
### MGN-003: Catálogos Maestros
**Nivel:** 1 (Core Base)
**Depende de:**
-**MGN-001 (Fuerte):** Requiere autenticación
-**MGN-002 (Fuerte):** Empresa también es un partner
**Requerido por (Fuerte):**
-**MGN-004 (Financiero):** Partners, monedas
-**MGN-005 (Inventario):** Categorías de productos, UoM
-**MGN-006 (Compras):** Proveedores (partners)
-**MGN-007 (Ventas):** Clientes (partners)
-**MGN-009 (CRM):** Leads, clientes potenciales
**Razón:**
Datos maestros (partners, monedas, UoM) son usados por todos los módulos transaccionales.
**Impacto de bloqueo:**
- **ALTO:** Bloquea módulos transaccionales
- **Prioridad:** P0 - ALTA
- **Debe completarse en:** Sprint 3-4
---
### MGN-004: Financiero Básico
**Nivel:** 2 (Transaccional Base)
**Depende de:**
-**MGN-001 (Fuerte):** Autenticación
-**MGN-002 (Fuerte):** Company_id en documentos
-**MGN-003 (Fuerte):** Partners, monedas
**Requerido por (Fuerte):**
-**MGN-006 (Compras):** Facturas de proveedor
-**MGN-007 (Ventas):** Facturas de cliente
-**MGN-008 (Analítica):** Asientos con distribución analítica
-**MGN-012 (Reportes):** Reportes financieros
**Razón:**
Compras y ventas generan facturas (documentos contables). Analítica requiere plan de cuentas.
**Impacto de bloqueo:**
- **ALTO:** Bloquea compras, ventas, analítica
- **Prioridad:** P0 - ALTA
- **Debe completarse en:** Sprint 5-8
---
### MGN-005: Inventario Básico
**Nivel:** 2 (Transaccional Base)
**Depende de:**
-**MGN-001 (Fuerte):** Autenticación
-**MGN-002 (Fuerte):** Almacenes por empresa
-**MGN-003 (Fuerte):** Categorías de productos, UoM
**Requerido por (Fuerte):**
-**MGN-006 (Compras):** Recepciones de productos
-**MGN-007 (Ventas):** Entregas de productos
**Razón:**
Compras y ventas generan movimientos de inventario (pickings).
**Impacto de bloqueo:**
- **ALTO:** Bloquea compras y ventas
- **Prioridad:** P0 - ALTA
- **Debe completarse en:** Sprint 5-8
---
### MGN-006: Compras Básico
**Nivel:** 3 (Compras y Ventas)
**Depende de:**
-**MGN-004 (Fuerte):** Facturas de proveedor
-**MGN-005 (Fuerte):** Recepciones de stock
**Requerido por (Fuerte):**
-**MGN-008 (Analítica):** Costos por proyecto
**Razón:**
Órdenes de compra generan facturas (MGN-004) y recepciones (MGN-005). Costos se distribuyen analíticamente (MGN-008).
**Impacto de bloqueo:**
- **MEDIO:** Bloquea analítica
- **Prioridad:** P0 - ALTA
- **Debe completarse en:** Sprint 9-10
---
### MGN-007: Ventas Básico
**Nivel:** 3 (Compras y Ventas)
**Depende de:**
-**MGN-004 (Fuerte):** Facturas de cliente
-**MGN-005 (Fuerte):** Entregas de stock
**Requerido por (Fuerte):**
-**MGN-008 (Analítica):** Ingresos por proyecto
-**MGN-009 (CRM):** Cotizaciones desde oportunidades
-**MGN-013 (Portal):** Aprobación de cotizaciones
**Razón:**
Órdenes de venta generan facturas (MGN-004) y entregas (MGN-005). Ingresos se distribuyen analíticamente (MGN-008). CRM convierte leads a cotizaciones. Portal permite aprobación online.
**Impacto de bloqueo:**
- **MEDIO:** Bloquea analítica, CRM, portal
- **Prioridad:** P0 - ALTA
- **Debe completarse en:** Sprint 9-10
---
### MGN-008: Contabilidad Analítica
**Nivel:** 4 (Analítica y Complementarios)
**Depende de:**
-**MGN-004 (Fuerte):** Plan de cuentas, asientos
-**MGN-006 (Fuerte):** Costos de compras
-**MGN-007 (Fuerte):** Ingresos de ventas
**Requerido por (Fuerte):**
-**MGN-011 (Proyectos):** Proyectos vinculados a cuentas analíticas
-**MGN-012 (Reportes):** P&L por proyecto
**Razón:**
Analítica consolida costos e ingresos de compras/ventas. Proyectos usan cuentas analíticas para tracking.
**Impacto de bloqueo:**
- **MEDIO:** Bloquea proyectos y reportes avanzados
- **Prioridad:** P0 - ALTA (CRÍTICO para construcción)
- **Debe completarse en:** Sprint 11
---
### MGN-009: CRM Básico
**Nivel:** 4 (Analítica y Complementarios)
**Depende de:**
-**MGN-003 (Fuerte):** Partners (clientes potenciales)
-**MGN-007 (Fuerte):** Conversión de oportunidad a cotización
- 🔸 **MGN-014 (Débil):** Actividades y notificaciones
**Requerido por:**
- ❌ Ninguno
**Razón:**
CRM convierte leads a cotizaciones (MGN-007). Usa actividades de mensajería (MGN-014) pero puede funcionar sin ellas.
**Impacto de bloqueo:**
- **BAJO:** No bloquea otros módulos
- **Prioridad:** P1 - ALTA
- **Puede completarse en:** Sprint 12-13
---
### MGN-010: RRHH Básico
**Nivel:** 2 (Transaccional Base)
**Depende de:**
-**MGN-001 (Fuerte):** Empleados vinculados a users
-**MGN-002 (Fuerte):** Empleados por empresa
-**MGN-003 (Fuerte):** Empleados vinculados a partners
**Requerido por (Fuerte):**
-**MGN-011 (Proyectos):** Timesheet de empleados
**Razón:**
Proyectos requieren timesheet de empleados.
**Impacto de bloqueo:**
- **BAJO:** Solo bloquea proyectos (timesheet es opcional)
- **Prioridad:** P1 - ALTA
- **Puede completarse en:** Sprint 14-15
---
### MGN-011: Proyectos Genéricos
**Nivel:** 5 (Módulos Avanzados)
**Depende de:**
-**MGN-008 (Fuerte):** Proyectos vinculados a cuentas analíticas
- 🔸 **MGN-010 (Débil):** Timesheet de empleados (opcional)
**Requerido por:**
- ❌ Ninguno
**Razón:**
Proyectos usan analítica para tracking de costos/ingresos. Timesheet es opcional (puede registrarse sin RRHH).
**Impacto de bloqueo:**
- **BAJO:** No bloquea otros módulos
- **Prioridad:** P1 - ALTA
- **Puede completarse en:** Sprint 16-17
---
### MGN-012: Reportes y Analytics
**Nivel:** 5 (Módulos Avanzados)
**Depende de:**
-**MGN-004 (Fuerte):** Reportes financieros
-**MGN-008 (Fuerte):** Reportes analíticos
**Requerido por:**
- ❌ Ninguno
**Razón:**
Reportes consumen datos de financiero y analítica.
**Impacto de bloqueo:**
- **BAJO:** No bloquea otros módulos
- **Prioridad:** P2 - MEDIA
- **Puede completarse en:** Sprint 18
---
### MGN-013: Portal de Usuarios
**Nivel:** 4 (Analítica y Complementarios)
**Depende de:**
-**MGN-001 (Fuerte):** Autenticación portal_user
-**MGN-007 (Fuerte):** Cotizaciones para aprobación
-**MGN-014 (Fuerte):** Mensajería en portal
**Requerido por:**
- ❌ Ninguno
**Razón:**
Portal permite aprobación de cotizaciones y comunicación con clientes.
**Impacto de bloqueo:**
- **BAJO:** No bloquea otros módulos
- **Prioridad:** P1 - ALTA (CRÍTICO para INFONAVIT)
- **Puede completarse en:** Sprint 14-15
---
### MGN-014: Mensajería y Notificaciones
**Nivel:** 1 (Core Base)
**Depende de:**
-**MGN-001 (Fuerte):** Usuarios para notificaciones
**Requerido por (Fuerte):**
-**MGN-013 (Portal):** Mensajería en portal
**Requerido por (Débil):**
- 🔸 **Todos:** Chatter, tracking, notificaciones (mejora experiencia)
**Razón:**
Mensajería mejora colaboración en todos los módulos. Es crítico para portal.
**Impacto de bloqueo:**
- **MEDIO:** Bloquea portal
- **Prioridad:** P1 - ALTA
- **Debe completarse en:** Sprint 12 (antes de portal)
---
### MGN-015: Billing SaaS
**Nivel:** 6 (SaaS Platform - Base)
**Depende de:**
-**MGN-001 (Fuerte):** Autenticación y tenants
-**MGN-002/Tenants (Fuerte):** Suscripciones vinculadas a tenants
**Requerido por (Fuerte):**
-**MGN-016 (Payments POS):** Facturación de transacciones
-**MGN-017 (WhatsApp):** Feature flags y límites
-**MGN-018 (AI Agents):** Feature flags y cuotas de uso
**Razón:**
Sistema de facturación SaaS con modelo per-seat. Gestiona suscripciones, planes (Starter, Growth, Enterprise), feature flags y facturación automática.
**Impacto de bloqueo:**
- **ALTO:** Bloquea todos los módulos SaaS dependientes
- **Prioridad:** P0 para modelo SaaS
- **Debe completarse en:** Fase 4 (post-core)
---
### MGN-016: Payments POS
**Nivel:** 7 (SaaS Platform - Integraciones)
**Depende de:**
-**MGN-001 (Fuerte):** Autenticación
-**MGN-004 (Fuerte):** Módulo financiero para asientos contables
-**MGN-015 (Fuerte):** Billing para facturación
**Requerido por:**
- ❌ Ninguno
**Razón:**
Integración con terminales de pago (MercadoPago, Clip). Procesa transacciones POS y genera asientos contables automáticos. Soporta OAuth (MercadoPago) y API Keys (Clip).
**Impacto de bloqueo:**
- **BAJO:** No bloquea otros módulos
- **Prioridad:** P1 para verticales retail/POS
- **Puede completarse en:** Paralelo con MGN-017
---
### MGN-017: WhatsApp Business
**Nivel:** 7 (SaaS Platform - Integraciones)
**Depende de:**
-**MGN-001 (Fuerte):** Autenticación
-**MGN-003 (Fuerte):** Catálogos (contactos con whatsapp_number)
-**MGN-015 (Fuerte):** Feature flags para límites de mensajes
**Requerido por (Fuerte):**
-**MGN-018 (AI Agents):** Canal de comunicación para agentes
**Razón:**
Integración con WhatsApp Business Cloud API. Permite envío/recepción de mensajes, templates HSM, chatbots con flujos visuales y campañas de marketing.
**Impacto de bloqueo:**
- **ALTO:** Bloquea AI Agents que usan WhatsApp como canal
- **Prioridad:** P0 para verticales con atención al cliente
- **Puede completarse en:** Paralelo con MGN-016
---
### MGN-018: AI Agents
**Nivel:** 8 (SaaS Platform - AI)
**Depende de:**
-**MGN-001 (Fuerte):** Autenticación
-**MGN-003 (Fuerte):** Catálogos (contactos)
-**MGN-017 (Fuerte):** WhatsApp como canal de comunicación
**Requerido por:**
- ❌ Ninguno
**Razón:**
Agentes inteligentes con RAG (Retrieval Augmented Generation) usando pgvector. Permite crear knowledge bases, tools personalizados y conversaciones asistidas por IA integradas con WhatsApp.
**Impacto de bloqueo:**
- **BAJO:** No bloquea otros módulos
- **Prioridad:** P1 para automatización de atención
- **Debe completarse en:** Post WhatsApp
---
## Orden de Implementación Recomendado
### Sprint 1-2 (Fundamentos) - 50 SP
**Objetivo:** Establecer base de seguridad y multi-tenancy.
**Módulos:**
1.**MGN-001: Fundamentos** (50 SP)
- Database: Schema auth_management
- Backend: Módulo auth (JWT, RBAC, RLS)
- Frontend: Login, signup, forgot password
**Entregables:**
- Usuarios pueden registrarse, autenticarse
- Roles y permisos funcionando
- Multi-tenancy operativo
**Criterios de éxito:**
- Test coverage 80%+
- Login funcional
- RLS validado
---
### Sprint 3-4 (Core Base) - 65 SP
**Objetivo:** Catálogos maestros y multi-empresa.
**Módulos:**
2.**MGN-002: Empresas y Organizaciones** (30 SP)
- Database: core.companies
- Backend: Módulo companies
- Frontend: Selector de empresa, configuración
3.**MGN-003: Catálogos Maestros** (35 SP)
- Database: core.partners, core.currencies, core.countries, core.uom
- Backend: Módulo catalogs
- Frontend: Catálogos CRUD
**Entregables:**
- Multi-empresa funcional
- Catálogos de partners, monedas, países, UoM
- Context switching de empresa
**Criterios de éxito:**
- Usuario puede trabajar con múltiples empresas
- Catálogos completos
- Validación de RLS por empresa
---
### Sprint 5-8 (Módulos Transaccionales Base) - 150 SP
**Objetivo:** Financiero e Inventario operativos.
**Módulos:**
4.**MGN-004: Financiero Básico** (80 SP)
- Database: Schema financial_management
- Backend: Módulo financial
- Frontend: Plan de cuentas, asientos, facturas
5.**MGN-005: Inventario Básico** (70 SP)
- Database: Schema inventory_management
- Backend: Módulo inventory
- Frontend: Productos, almacenes, movimientos
**Entregables:**
- Contabilidad general funcional
- Inventario con movimientos
- Facturas y pagos
- Valoración de inventario
**Criterios de éxito:**
- Asiento contable válido (débito = crédito)
- Movimientos de stock correctos
- Reportes financieros básicos (Balance, P&L)
---
### Sprint 9-10 (Compras y Ventas) - 120 SP
**Objetivo:** Ciclo completo de compras y ventas.
**Módulos:**
6.**MGN-006: Compras Básico** (60 SP)
- Database: Schema purchasing_management
- Backend: Módulo purchasing
- Frontend: Órdenes de compra, RFQ
7.**MGN-007: Ventas Básico** (60 SP)
- Database: Schema sales_management
- Backend: Módulo sales
- Frontend: Cotizaciones, órdenes de venta
**Entregables:**
- Ciclo completo: RFQ → PO → Recepción → Factura
- Ciclo completo: Cotización → SO → Entrega → Factura
- Integración con inventario y financiero
**Criterios de éxito:**
- 3-way match funcional (PO vs Recepción vs Factura)
- Generación automática de pickings
- Generación automática de asientos contables
---
### Sprint 11 (Analítica) - 45 SP
**Objetivo:** Contabilidad analítica operativa (CRÍTICO para proyectos).
**Módulos:**
8.**MGN-008: Contabilidad Analítica** (45 SP)
- Database: Schema analytics_management
- Backend: Módulo analytics
- Frontend: Cuentas analíticas, reportes por proyecto
**Entregables:**
- Cuentas analíticas funcionales
- Distribución analítica en transacciones
- Reportes P&L por proyecto
**Criterios de éxito:**
- Campo analytic_account_id en todas las transacciones
- Consolidación automática de líneas analíticas
- Reporte P&L por proyecto correcto
---
### Sprint 12-13 (Mensajería y CRM) - 95 SP
**Objetivo:** Colaboración y gestión comercial.
**Módulos:**
9.**MGN-014: Mensajería y Notificaciones** (45 SP)
- Database: Schema notifications_management
- Backend: Módulo notifications (WebSocket)
- Frontend: Chatter, notificaciones in-app
10.**MGN-009: CRM Básico** (50 SP)
- Database: Schema crm_management
- Backend: Módulo crm
- Frontend: Pipeline kanban, leads
**Entregables:**
- Chatter funcional en documentos
- Tracking automático de cambios
- Pipeline de ventas operativo
- Conversión lead → cotización
**Criterios de éxito:**
- Notificaciones en tiempo real (WebSocket)
- Tracking automático sin código adicional
- Pipeline kanban drag-and-drop
---
### Sprint 14-15 (RRHH y Portal) - 105 SP
**Objetivo:** Recursos humanos y portal de clientes.
**Módulos:**
11.**MGN-010: RRHH Básico** (55 SP)
- Database: Schema hr_management
- Backend: Módulo hr
- Frontend: Empleados, contratos, asistencias
12.**MGN-013: Portal de Usuarios** (50 SP)
- Database: Rol portal_user en auth
- Backend: Módulo portal (RLS estricto)
- Frontend: Portal separado
**Entregables:**
- Gestión de empleados completa
- Timesheet básico
- Portal de clientes funcional
- Firma electrónica de cotizaciones
**Criterios de éxito:**
- Empleados vinculados a users y partners
- Cliente puede aprobar cotización online
- Firma electrónica válida legalmente
---
### Sprint 16-17 (Proyectos) - 65 SP
**Objetivo:** Gestión de proyectos genéricos.
**Módulos:**
13.**MGN-011: Proyectos Genéricos** (65 SP)
- Database: Schema projects_management
- Backend: Módulo projects
- Frontend: Kanban de tareas, Gantt
**Entregables:**
- Proyectos vinculados a analítica
- Tareas con kanban
- Timesheet por tarea
- Vista Gantt
**Criterios de éxito:**
- Proyecto crea cuenta analítica automáticamente
- Timesheet genera líneas analíticas
- Portal de proyectos funcional
---
### Sprint 18 (Reportes) - 40 SP
**Objetivo:** Reportes y dashboards avanzados.
**Módulos:**
14.**MGN-012: Reportes y Analytics** (40 SP)
- Database: Schema reports_management
- Backend: Módulo reports
- Frontend: Dashboards, query builder
**Entregables:**
- Dashboards configurables
- Reportes financieros estándar
- Exportación PDF/Excel
**Criterios de éxito:**
- Reportes con filtros dinámicos
- Exportación funcional
- Dashboards por rol
---
### Sprint 19 (Buffer y Testing) - Buffer
**Objetivo:** Testing exhaustivo, documentación, refinamiento.
**Actividades:**
- Testing E2E de flujos completos
- Corrección de bugs
- Documentación final
- Optimizaciones de performance
- Preparación para migración de ERP Construcción
**Criterios de éxito:**
- Test coverage 70%+
- Todos los flujos críticos validados
- Documentación completa
---
## Riesgos de Dependencias
### Riesgos Críticos (P0)
| Riesgo | Probabilidad | Impacto | Mitigación |
|--------|--------------|---------|------------|
| **MGN-001 se retrasa** | Baja | CRÍTICO | Prioridad MÁXIMA, equipo completo en Sprint 1-2, testing exhaustivo |
| **MGN-004 (Financiero) muy complejo** | Media | ALTO | Seguir patrón Odoo, consultoría contable, validación temprana |
| **MGN-008 (Analítica) mal diseñada** | Media | ALTO | Validar con ERP Construcción, seguir patrón Odoo, testing con datos reales |
| **Dependencia circular no detectada** | Baja | MEDIO | Revisión de arquitectura en Sprint 0, validar con este documento |
### Riesgos Altos (P1)
| Riesgo | Probabilidad | Impacto | Mitigación |
|--------|--------------|---------|------------|
| **MGN-005 (Inventario) subestimado** | Media | MEDIO | Buffer en Sprint 8, validar complejidad con Odoo |
| **Integración MGN-006/007 con MGN-005 falla** | Media | ALTO | Testing de integración en Sprint 10, casos de prueba reales |
| **MGN-014 (WebSocket) problemas de infraestructura** | Alta | MEDIO | Validación técnica temprana, fallback a polling |
### Riesgos Medios (P2)
| Riesgo | Probabilidad | Impacto | Mitigación |
|--------|--------------|---------|------------|
| **Scope creep en módulos** | Alta | MEDIO | Validar con ALCANCE-POR-MODULO.md, rechazar funcionalidades no esenciales |
| **Velocity sobrestimado** | Media | MEDIO | Buffer Sprint 19, priorizar P0 sobre P1 |
---
## Dependencias Críticas (Bloquean Otros Módulos)
### MGN-001 (Fundamentos)
- **Bloquea:** TODOS los demás módulos (MGN-002 a MGN-014)
- **Razón:** Autenticación, autorización, multi-tenancy son base para todo
- **Prioridad:** P0 - MÁXIMA
- **Acción:** Implementar PRIMERO en Sprint 1-2, equipo completo dedicado
### MGN-002 (Empresas)
- **Bloquea:** MGN-004, MGN-005, MGN-006, MGN-007, MGN-010
- **Razón:** Documentos transaccionales requieren company_id
- **Prioridad:** P0 - ALTA
- **Acción:** Implementar en Sprint 3, validar RLS por empresa
### MGN-003 (Catálogos)
- **Bloquea:** MGN-004, MGN-005, MGN-006, MGN-007, MGN-009
- **Razón:** Partners, monedas, UoM son datos maestros esenciales
- **Prioridad:** P0 - ALTA
- **Acción:** Implementar en Sprint 3-4, priorizar partners y UoM
### MGN-004 (Financiero)
- **Bloquea:** MGN-006, MGN-007, MGN-008, MGN-012
- **Razón:** Compras y ventas generan facturas, analítica requiere plan de cuentas
- **Prioridad:** P0 - ALTA
- **Acción:** Implementar en Sprint 5-8, validar contabilidad con contador
### MGN-005 (Inventario)
- **Bloquea:** MGN-006, MGN-007
- **Razón:** Compras y ventas generan movimientos de stock
- **Prioridad:** P0 - ALTA
- **Acción:** Implementar en Sprint 5-8, validar movimientos dobles
### MGN-008 (Analítica)
- **Bloquea:** MGN-011, MGN-012
- **Razón:** Proyectos requieren cuentas analíticas, reportes usan datos analíticos
- **Prioridad:** P0 - CRÍTICO (para construcción)
- **Acción:** Implementar en Sprint 11, validar con ERP Construcción
---
## Dependencias Opcionales (No Bloquean)
### MGN-014 (Mensajería) → Módulos Transaccionales
- **Tipo:** Débil (mejora experiencia, no bloquea)
- **Razón:** Chatter y tracking son opcionales, módulos funcionan sin ellos
- **Recomendación:** Implementar en Sprint 12 para mejorar UX
### MGN-010 (RRHH) → MGN-011 (Proyectos)
- **Tipo:** Débil (timesheet es opcional)
- **Razón:** Proyectos pueden funcionar sin timesheet de empleados
- **Recomendación:** Implementar RRHH antes de proyectos para timesheet completo
### MGN-009 (CRM) → MGN-007 (Ventas)
- **Tipo:** Débil (conversión lead → quotation es opcional)
- **Razón:** Ventas puede funcionar sin CRM, cotizaciones se crean directamente
- **Recomendación:** Implementar CRM después de ventas (Sprint 12-13)
---
## Validación de No-Circularidad
### Análisis de Grafos de Dependencias
**Resultado:** ✅ NO hay dependencias circulares.
**Validación:**
- MGN-001 no depende de nadie
- Todos los demás módulos forman un DAG (Directed Acyclic Graph)
- Niveles de implementación (0 a 5) garantizan orden topológico
**Posibles ciclos a evitar:**
- ❌ MGN-007 (Ventas) → MGN-009 (CRM) → MGN-007: **NO EXISTE** (CRM depende de Ventas, no al revés)
- ❌ MGN-004 (Financiero) → MGN-008 (Analítica) → MGN-004: **NO EXISTE** (Analítica depende de Financiero, no al revés)
---
## Timeline Consolidado
### Resumen por Trimestre
**Q1 2026 (Meses 1-3) - Fundamentos y Core:**
- Sprint 1-2: MGN-001 (Fundamentos) - 50 SP
- Sprint 3-4: MGN-002 (Empresas) + MGN-003 (Catálogos) - 65 SP
- Sprint 5-6: MGN-004 (Financiero) Parte 1 - 40 SP
- **Total Q1:** 155 SP
**Q2 2026 (Meses 4-6) - Módulos Transaccionales:**
- Sprint 7-8: MGN-004 (Financiero) Parte 2 + MGN-005 (Inventario) - 110 SP
- Sprint 9-10: MGN-006 (Compras) + MGN-007 (Ventas) - 120 SP
- Sprint 11: MGN-008 (Analítica) - 45 SP
- **Total Q2:** 275 SP
**Q3 2026 (Meses 7-9) - Módulos Complementarios:**
- Sprint 12-13: MGN-014 (Mensajería) + MGN-009 (CRM) - 95 SP
- Sprint 14-15: MGN-010 (RRHH) + MGN-013 (Portal) - 105 SP
- Sprint 16-17: MGN-011 (Proyectos) - 65 SP
- **Total Q3:** 265 SP
**Q4 2026 (Mes 10) - Reportes y Buffer:**
- Sprint 18: MGN-012 (Reportes) - 40 SP
- Sprint 19: Buffer, testing, documentación
- **Total Q4:** 40 SP
**TOTAL:** 735 SP en 19 sprints (38 semanas / 9.5 meses)
---
## Métricas de Dependencias
| Métrica | Valor |
|---------|-------|
| **Total módulos** | 18 (14 core + 4 SaaS) |
| **Módulos sin dependencias** | 1 (MGN-001) |
| **Módulos con 1 dependencia** | 1 (MGN-002) |
| **Módulos con 2 dependencias** | 4 (MGN-003, MGN-014, MGN-009, MGN-015) |
| **Módulos con 3 dependencias** | 9 (MGN-004, MGN-005, MGN-006, MGN-007, MGN-010, MGN-013, MGN-016, MGN-017, MGN-018) |
| **Módulos con 4+ dependencias** | 3 (MGN-008, MGN-011, MGN-012) |
| **Dependencias totales (aristas)** | 42 |
| **Profundidad máxima (niveles)** | 8 niveles (0 a 8) |
| **Módulos críticos (bloquean 3+ módulos)** | 7 (MGN-001, MGN-002, MGN-003, MGN-004, MGN-005, MGN-008, MGN-015) |
---
## Recomendaciones Finales
### Para el Equipo de Desarrollo
1. **Respetar el orden de implementación:** NO saltar niveles sin completar dependencias
2. **Testing de integración temprano:** Validar integraciones entre módulos en cada sprint
3. **Documentar APIs claramente:** Facilitar integración entre módulos
4. **Validar con datos reales:** Usar datos de ERP Construcción para validar
### Para el Product Owner
1. **Priorizar P0 estrictamente:** NO agregar funcionalidades P1/P2 hasta completar P0
2. **Validar alcance con ALCANCE-POR-MODULO.md:** Rechazar scope creep
3. **Aceptar incrementos por módulo:** Cada sprint debe entregar módulo funcional
4. **Planificar migración:** Desde Sprint 11 (post-analítica), planear migración de Construcción
### Para el Arquitecto
1. **Validar dependencias en cada sprint:** Verificar que no se crean dependencias circulares
2. **Revisar integraciones:** Asegurar que límites entre módulos están claros
3. **Actualizar este documento:** Si cambian dependencias, actualizar inmediatamente
4. **Comunicar bloqueos:** Si un módulo se retrasa, comunicar impacto en dependientes
---
## Conclusión
Las dependencias entre módulos están claramente definidas y validadas. El orden de implementación propuesto minimiza bloqueos y permite entregas incrementales.
**Próximos pasos:**
1. Validar este orden con el equipo técnico
2. Iniciar Sprint 1 (MGN-001 Fundamentos)
3. Crear backlog detallado por módulo (Fase 2)
4. Planificar Fase 4 SaaS (MGN-015 a MGN-018) post-core
---
**Documento creado:** 2025-11-23
**Última actualización:** 2025-12-05
**Versión:** 1.1
**Autor:** Architecture-Analyst
**Estado:** ✅ Completado
**Próxima Fase:** Fase 2 - Diseño Técnico Detallado