# GAP ANALYSIS - MGN-003: Catálogos Maestros

**Fecha:** 2025-11-23
**Basado en:** Odoo base (res.partner, res.currency, res.country, uom.uom), Construcción
**Estado:** Gap analysis completado

## Resumen Ejecutivo

| Métrica | Valor |
|---------|-------|
| **Funcionalidades de Odoo** | 10 |
| **Funcionalidades incluidas en MGN-003** | 8 |
| **Gaps identificados** | 4 |
| **Gaps P0 (críticos)** | 1 |
| **Gaps P1 (altos)** | 2 |
| **Gaps P2 (bajos)** | 1 |
| **% Cobertura** | 80% |

## 1. FUNCIONALIDADES DE ODOO

### Módulo base - res.partner
1. **Partner universal:** is_customer, is_supplier, is_employee (un modelo para todos)
2. **Jerarquía de partners:** parent_id (empresa con contactos)
3. **Datos fiscales:** Tax ID, régimen fiscal, responsabilidades tributarias
4. **Condiciones de pago:** Payment terms (30, 60, 90 días)
5. **Calificación partner:** customer_rank, supplier_rank

### Módulo base - res.currency
6. **Catálogo monedas:** ISO 4217 (USD, MXN, EUR, etc.)
7. **Tasas de cambio:** Con vigencia temporal, actualización manual/automática

### Módulo base - res.country
8. **Catálogo países:** ISO 3166-1 (código 2/3 letras, numérico)
9. **Estados/provincias:** res.country.state

### Módulo uom
10. **Unidades de medida:** Categorías (longitud, peso, volumen), conversiones automáticas

## 2. FUNCIONALIDADES INCLUIDAS EN MGN-003

1. ✅ **Partner universal** - Incluido
2. ✅ **Jerarquía partners** - Incluido
3. ✅ **Datos fiscales** - Incluido
4. ✅ **Condiciones de pago** - Incluido
5. ✅ **Catálogo monedas** - Incluido
6. ✅ **Tasas de cambio** - Incluido (manual)
7. ✅ **Catálogo países** - Incluido
8. ✅ **Unidades de medida** - Incluido

## 3. GAPS IDENTIFICADOS

### Gap P0 (Críticos - Debe incluirse en MVP)

#### GAP-MGN-003-001: Calificación de Partners (Ranking)
- **Descripción:** Customer rank y supplier rank (calificación automática basada en transacciones)
- **Referencia Odoo:** res.partner (customer_rank, supplier_rank)
- **Impacto:** CRÍTICO
- **Justificación impacto:** Identifica partners inactivos vs activos. Reportes como "Top 10 Clientes" requieren ranking. Sin esto, queries complejos en reportes
- **Recomendación:** INCLUIR en MVP
- **Esfuerzo estimado:** 5 SP
- **Implementación:**
  ```sql
  ALTER TABLE core.partners
  ADD COLUMN customer_rank INT DEFAULT 0,
  ADD COLUMN supplier_rank INT DEFAULT 0;

  -- Trigger para actualizar rank en cada transacción
  CREATE FUNCTION update_partner_ranks() RETURNS TRIGGER AS $$
  BEGIN
    -- Incrementar customer_rank si es factura de cliente
    -- Incrementar supplier_rank si es factura de proveedor
  END;
  $$ LANGUAGE plpgsql;
  ```

### Gap P1 (Altos - Deseable para MVP)

#### GAP-MGN-003-002: Actualización Automática de Tasas de Cambio
- **Descripción:** Sincronización automática de tasas de cambio desde API externa (Banxico, ECB)
- **Referencia Odoo:** currency_rate_update
- **Impacto:** ALTO
- **Justificación impacto:** Sin esto, contador debe actualizar tasas manualmente diariamente. API de Banxico proporciona tasas oficiales
- **Recomendación:** CONSIDERAR para MVP o Fase 2
- **Esfuerzo estimado:** 13 SP

#### GAP-MGN-003-003: Validación de Tax ID por País
- **Descripción:** Validación de RFC (México), NIT (Colombia), CUIT (Argentina) con algoritmos oficiales
- **Referencia Odoo:** l10n_mx_edi (validación RFC)
- **Impacto:** ALTO
- **Justificación impacto:** Previene errores de captura en datos fiscales. RFC inválido causa problemas en facturación electrónica
- **Recomendación:** CONSIDERAR para MVP o Fase 2
- **Esfuerzo estimado:** 8 SP

### Gap P2 (Medios/Bajos - No crítico)

#### GAP-MGN-003-004: Portal de Proveedores (Onboarding)
- **Descripción:** Portal para que proveedores registren sus datos (partner onboarding)
- **Referencia Odoo:** portal (partner portal)
- **Impacto:** BAJO
- **Justificación impacto:** Útil para onboarding masivo de proveedores, pero puede hacerse manualmente
- **Recomendación:** POSPONER a Fase 2
- **Esfuerzo estimado:** 13 SP

## 4. FUNCIONALIDADES SOBRANTES

**NO HAY FUNCIONALIDADES SOBRANTES**

## 5. ANÁLISIS COMPARATIVO CON CONSTRUCCIÓN

### Gaps vs Construcción

1. **Ranking de partners (P0):** NO implementado
2. **Actualización automática tasas (P1):** NO implementado (manual)
3. **Validación RFC (P1):** NO implementado

## 6. RECOMENDACIONES

### Para MGN-003
- [x] **Incluir partner ranking (GAP-001):** CRÍTICO para reportes
- [ ] **Considerar actualización automática tasas (GAP-002):** Ahorra tiempo contador
- [ ] **Considerar validación Tax ID (GAP-003):** Previene errores facturación

### Para ERP Construcción
- [x] **Agregar customer_rank/supplier_rank**
- [x] **Implementar actualización automática de tasas (API Banxico)**
- [x] **Validar RFC con algoritmo oficial**

## 7. IMPACTO EN STORY POINTS

| Concepto | SP Original | SP Gaps P0 | SP Nuevo | Δ SP |
|----------|-------------|------------|----------|------|
| MGN-003 | 35 SP | +5 SP | 40 SP | +5 SP (+14%) |

## 8. REFERENCIAS

- [ALCANCE-POR-MODULO.md - MGN-003](../ALCANCE-POR-MODULO.md#mgn-003-catalogos-maestros)
- [odoo-base-analysis.md](../../00-analisis-referencias/odoo/odoo-base-analysis.md)
