940 lines
30 KiB
Markdown
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
|