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

5.9 KiB

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:
    -- 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

  • Retroalimentación 1: Implementar holdings (parent_id) para grupos constructoras
  • 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