# 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)