erp-core/docs/02-definicion-modulos/gaps/GAP-ANALYSIS-MGN-002.md

150 lines
5.9 KiB
Markdown

# GAP ANALYSIS - MGN-002: Empresas y Organizaciones
**Fecha:** 2025-11-23
**Basado en:** Odoo base (res.company), Gamilit core, Construcción MAI-002
**Estado:** Gap analysis completado
## Resumen Ejecutivo
| Métrica | Valor |
|---------|-------|
| **Funcionalidades de Odoo** | 8 |
| **Funcionalidades incluidas en MGN-002** | 5 |
| **Gaps identificados** | 3 |
| **Gaps P0 (críticos)** | 0 |
| **Gaps P1 (altos)** | 1 |
| **Gaps P2 (bajos)** | 2 |
| **% Cobertura** | 63% |
## 1. FUNCIONALIDADES DE ODOO
### Del Módulo base (res.company)
1. **Gestión de empresas:** CRUD de empresas con datos completos
2. **Multi-company access:** Usuario puede acceder a múltiples empresas
3. **Context switching:** Cambio de empresa activa sin logout
4. **Configuración empresa:** Logo, datos fiscales, moneda principal
5. **Holdings:** Jerarquías de empresas (parent_id)
6. **Empresa como partner:** Empresa vinculada a res.partner
7. **Consolidación financiera:** Balance consolidado de holdings
8. **Transferencias inter-compañía:** Transacciones entre empresas del grupo
## 2. FUNCIONALIDADES INCLUIDAS EN MGN-002
1.**Gestión de empresas:** Incluida en MGN-002 (CRUD completo)
2.**Multi-empresa:** Incluida en MGN-002 (Usuario accede a múltiples)
3.**Context switching:** Incluida en MGN-002 (Cambio de empresa activa)
4.**Configuración empresa:** Incluida en MGN-002 (Logo, datos fiscales, moneda)
5.**Holdings:** Incluida en MGN-002 (parent_id jerárquico)
## 3. GAPS IDENTIFICADOS
### Gap P0 (Críticos - Debe incluirse en MVP)
**NO HAY GAPS P0**
### Gap P1 (Altos - Deseable para MVP)
#### GAP-MGN-002-001: Roles Diferentes por Empresa
- **Descripción:** Usuario puede tener un rol diferente en cada empresa (ej: Admin en Empresa A, Employee en Empresa B)
- **Referencia Odoo:** res.company.users_rel con roles específicos
- **Impacto:** ALTO
- **Justificación impacto:** En grupos empresariales, usuario puede ser gerente en una empresa y supervisor en otra. Sin esto, usuario tiene mismo rol en todas (limitación)
- **Recomendación:** CONSIDERAR para MVP o Fase 2
- **Esfuerzo estimado:** 8 SP
- **Implementación sugerida:**
```sql
-- Modificar tabla users_companies
CREATE TABLE core.users_companies (
user_id UUID REFERENCES auth.users(id),
company_id UUID REFERENCES core.companies(id),
role_id UUID REFERENCES auth.roles(id), -- Rol específico en esta empresa
is_default BOOLEAN DEFAULT FALSE,
PRIMARY KEY (user_id, company_id)
);
```
- **Dependencias:** MGN-001 (roles), MGN-002 (empresas)
### Gap P2 (Medios/Bajos - No crítico)
#### GAP-MGN-002-002: Consolidación Financiera Multi-Empresa
- **Descripción:** Balance consolidado de holdings (suma automática de balances de empresas hijas)
- **Referencia Odoo:** account (consolidación)
- **Impacto:** MEDIO
- **Justificación impacto:** Útil para grupos empresariales, pero es funcionalidad contable avanzada. Puede implementarse con queries custom en MGN-004 o MGN-012
- **Recomendación:** POSPONER a Fase 2 o extensión MGN-004
- **Esfuerzo estimado:** 21 SP (complejo)
#### GAP-MGN-002-003: Transferencias Inter-Compañía Automáticas
- **Descripción:** Transferencias de inventario/financieras entre empresas del grupo con asientos automáticos
- **Referencia Odoo:** account (inter-company transactions)
- **Impacto:** BAJO
- **Justificación impacto:** Funcionalidad avanzada para holdings. No es esencial para mayoría de casos de uso
- **Recomendación:** POSPONER a Fase 2 o posterior
- **Esfuerzo estimado:** 13 SP
## 4. FUNCIONALIDADES SOBRANTES (No en Odoo, pero incluidas)
**NO HAY FUNCIONALIDADES SOBRANTES**
MGN-002 es implementación fiel de res.company de Odoo.
## 5. ANÁLISIS COMPARATIVO CON CONSTRUCCIÓN
### Funcionalidades en ERP Construcción (MAI-002)
**Implementadas:**
- ✅ Gestión de empresas (CRUD)
- ✅ Multi-empresa (usuario accede a múltiples)
- ✅ Configuración empresa (logo, RFC, datos fiscales)
- ✅ Context switching
**No implementadas:**
- ❌ Holdings (parent_id)
- ❌ Roles diferentes por empresa
- ❌ Empresa vinculada a partner
### Gaps vs Construcción
**Funcionalidades que Construcción NO tiene pero DEBERÍA tener según Odoo:**
1. **Holdings (P1):** Para grupos constructoras (matriz con subsidiarias)
2. **Empresa como partner (P1):** Patrón Odoo, simplifica catálogos
3. **Roles por empresa (P1):** Usuario puede ser Admin en una empresa, Supervisor en otra
## 6. RECOMENDACIONES
### Para MGN-002
- [ ] **Considerar roles por empresa (GAP-001):** Útil para grupos empresariales, pero NO bloquea MVP
- [ ] **Agregar company.partner_id:** Vincular empresa a partner (patrón Odoo)
- [ ] **Validar jerarquías:** Prevenir ciclos en parent_id (empresa A → B → A)
### Para ERP Construcción
- [x] **Retroalimentación 1:** Implementar holdings (parent_id) para grupos constructoras
- [x] **Retroalimentación 2:** Vincular empresa a partner (simplifica catálogos)
- [ ] **Retroalimentación 3:** Considerar roles diferentes por empresa para organización matricial
## 7. IMPACTO EN STORY POINTS
| Concepto | SP Original | SP Gaps P0 | SP Nuevo | Δ SP |
|----------|-------------|------------|----------|------|
| MGN-002 Original | 30 SP | - | 30 SP | - |
| GAP-001 (Roles por empresa) | - | 0 SP (P1) | - | - |
| **MGN-002 Total** | **30 SP** | **+0 SP** | **30 SP** | **+0 SP** |
**Análisis:** No hay gaps P0. MGN-002 puede implementarse sin cambios. Si se incluye GAP-001 (P1), serían +8 SP (+27%).
**Recomendación:**
- MVP: 30 SP (sin cambios)
- Fase 2: +8 SP (roles por empresa)
## 8. REFERENCIAS
- [ALCANCE-POR-MODULO.md - MGN-002](../ALCANCE-POR-MODULO.md#mgn-002-empresas-y-organizaciones)
- [MAPEO-ODOO-TO-MGN.md](../../00-analisis-referencias/odoo/MAPEO-ODOO-TO-MGN.md)
- [odoo-base-analysis.md](../../00-analisis-referencias/odoo/odoo-base-analysis.md)
- [ADR-002: Arquitectura Modular](../../adr/ADR-002-arquitectura-modular.md)
- [ADR-003: Multi-Tenancy](../../adr/ADR-003-multi-tenancy.md)