# FASE 4: Validacion de Plan y Analisis de Dependencias

**Fecha:** 2026-01-04
**Objetivo:** Validar plan de correcciones contra dependencias y archivos afectados
**Estado:** Completado
**Basado en:** FASE-3 (Plan de Correcciones)

---

## 1. Validacion de Cobertura del Plan

### 1.1 Verificacion de Gaps vs Correcciones

| Gap Identificado | Correccion Asignada | Estado |
|------------------|---------------------|--------|
| PO missing 'to_approve' state | COR-001 | OK |
| Stock moves missing states | COR-002 | OK |
| Missing stock.move.line | COR-003 | OK |
| No payment_state in invoices | COR-004 | OK |
| Simple tax system | COR-005 | OK |
| SO-Invoice not linked | COR-006 | OK |
| No picking_type_id | COR-007 | OK |
| No product attributes | COR-008 | OK |
| No approval workflow | COR-009 | OK |
| No address management | COR-010 | OK |
| No locked state | COR-011 | OK |
| No downpayments | COR-012 | OK |
| No reconciliation engine | COR-013 | OK |
| No PLS (CRM) | COR-014 | OK |
| No multi-plan analytics | COR-015 | OK |
| No recurring tasks | COR-016 | OK |
| No multi-user assignment | COR-017 | OK |
| No backorder management | COR-018 | OK |
| No auto-assignment | COR-019 | OK |
| No duplicate detection | COR-020 | OK |

**Resultado:** 100% de gaps cubiertos por correcciones

---

## 2. Analisis de Dependencias de Archivos

### 2.1 Archivos DDL Principales (Fuentes)

| Archivo DDL | Correcciones | Archivos Dependientes |
|-------------|--------------|----------------------|
| `database/ddl/05-inventory.sql` | COR-002,003,007,008,018 | 15 archivos |
| `database/ddl/06-purchase.sql` | COR-001,009,010,011 | 12 archivos |
| `database/ddl/07-sales.sql` | COR-006,010,011,012 | 11 archivos |
| `database/ddl/04-financial.sql` | COR-004,005,013 | 14 archivos |
| `database/ddl/11-crm.sql` | COR-014,019 | 5 archivos |
| `database/ddl/08-projects.sql` | COR-016,017 | 4 archivos |
| `database/ddl/03-analytics.sql` | COR-015 | 6 archivos |
| `database/ddl/02-core.sql` | COR-010,020 | 8 archivos |

### 2.2 Archivos Dependientes por Categoria

#### Domain Models (Actualizacion Requerida)
| Archivo | Correcciones que Afectan | Cambios Necesarios |
|---------|--------------------------|-------------------|
| `docs/04-modelado/domain-models/inventory-domain.md` | COR-002,003,007,008 | States, Relations, New Entities |
| `docs/04-modelado/domain-models/sales-domain.md` | COR-006,010,011,012 | Fields, Relations |
| `docs/04-modelado/domain-models/financial-domain.md` | COR-004,005,013 | States, Tax Model, Reconciliation |
| `docs/04-modelado/domain-models/crm-domain.md` | COR-014,019 | Scoring, Assignment |
| `docs/04-modelado/domain-models/analytics-domain.md` | COR-015 | Plans Hierarchy |
| `docs/04-modelado/domain-models/projects-domain.md` | COR-016,017 | Recurrence, Multi-assign |

#### Requerimientos Funcionales (Revision Requerida)
| Archivo RF | Correcciones | Impacto |
|------------|--------------|---------|
| `RF-MGN-005-003-movimientos-de-stock.md` | COR-002,003 | ALTO - Estados |
| `RF-MGN-005-004-pickings-albaranes.md` | COR-007,018 | ALTO - Tipos, Backorders |
| `RF-MGN-006-002-001-crear-orden-compra.md` | COR-001,009 | MEDIO - Approval |
| `RF-MGN-006-003-003-recepcion-parcial-backorder.md` | COR-018 | ALTO - Backorders |
| `RF-MGN-004-005-gestión-de-facturas.md` | COR-004 | MEDIO - Payment state |
| `RF-MGN-007-004-entregas-de-ventas.md` | COR-006 | BAJO - Link |
| `RF-MGN-007-005-facturación-clientes.md` | COR-006,012 | MEDIO - Link, Downpayments |

#### User Stories (Revision Requerida)
| User Story | Correcciones | Impacto |
|------------|--------------|---------|
| `US-MGN-005-003-001-crear-movimiento-stock.md` | COR-002,003 | ALTO |
| `US-MGN-005-003-003-cancelar-movimiento-stock.md` | COR-002 | MEDIO |
| `US-MGN-006-002-001-crear-orden-compra.md` | COR-001 | MEDIO |
| `US-MGN-006-002-002-confirmar-orden-compra.md` | COR-001,009 | ALTO |
| `US-MGN-006-002-003-cancelar-orden-compra.md` | COR-001 | BAJO |
| `US-MGN-006-003-001-crear-recepcion-compra.md` | COR-007 | MEDIO |
| `US-MGN-006-003-003-recepcion-parcial-backorder.md` | COR-018 | ALTO |
| `US-MGN-004-005-001-crear-factura-cliente-draft.md` | COR-004 | MEDIO |

#### Workflows (Actualizacion/Creacion)
| Archivo | Correcciones | Accion |
|---------|--------------|--------|
| `WORKFLOW-3-WAY-MATCH.md` | COR-004 | UPDATE |
| `WORKFLOW-PURCHASE-APPROVAL.md` | COR-001,009 | CREATE |
| `WORKFLOW-STOCK-MOVES.md` | COR-002,003,018 | CREATE |
| `WORKFLOW-SALES-INVOICE.md` | COR-006,012 | CREATE |

#### Especificaciones Tecnicas (Revision)
| Archivo | Correcciones | Impacto |
|---------|--------------|---------|
| `SPEC-BLANKET-ORDERS.md` | COR-001 | BAJO |
| `SPEC-INVENTARIOS-CICLICOS.md` | COR-002,003 | MEDIO |
| `SPEC-VALORACION-INVENTARIO.md` | COR-003 | MEDIO |
| `SPEC-GASTOS-EMPLEADOS.md` | COR-004 | BAJO |
| `SPEC-PORTAL-PROVEEDORES.md` | COR-001 | BAJO |

#### Database Design Docs (Actualizacion)
| Archivo | Correcciones | Accion |
|---------|--------------|--------|
| `schemas/inventory-schema-ddl.sql` | COR-002,003,007,008 | SYNC |
| `schemas/sales-schema-ddl.sql` | COR-006,010,011,012 | SYNC |
| `schemas/financial-schema-ddl.sql` | COR-004,005,013 | SYNC |
| `schemas/purchase-schema-ddl.sql` | COR-001,009,010,011 | SYNC |
| `schemas/analytics-schema-ddl.sql` | COR-015 | SYNC |

#### Trazabilidad (Actualizacion)
| Archivo | Correcciones | Accion |
|---------|--------------|--------|
| `INVENTARIO-OBJETOS-BD.yml` | ALL | UPDATE |
| `MATRIZ-TRAZABILIDAD-RF-ET-BD.md` | ALL | UPDATE |
| `GRAFO-DEPENDENCIAS-SCHEMAS.md` | ALL | UPDATE |
| `VALIDACION-COBERTURA-ODOO.md` | ALL | UPDATE |

---

## 3. Grafo de Dependencias

```
                    ┌─────────────────────────────────────────────────────┐
                    │              DDL FILES (Source of Truth)            │
                    └─────────────────────────┬───────────────────────────┘
                                              │
              ┌───────────────────────────────┼───────────────────────────────┐
              │                               │                               │
              ▼                               ▼                               ▼
   ┌──────────────────┐           ┌──────────────────┐           ┌──────────────────┐
   │   Domain Models   │           │   Schema Docs    │           │    Workflows     │
   │  (6 archivos)     │           │  (5 archivos)    │           │  (4 archivos)    │
   └────────┬─────────┘           └──────────────────┘           └────────┬─────────┘
            │                                                              │
            ▼                                                              ▼
   ┌──────────────────┐                                          ┌──────────────────┐
   │  Req. Funcionales │                                          │   User Stories   │
   │  (7+ archivos)    │                                          │  (8+ archivos)   │
   └────────┬─────────┘                                          └────────┬─────────┘
            │                                                              │
            └───────────────────────┬──────────────────────────────────────┘
                                    │
                                    ▼
                         ┌──────────────────┐
                         │  Especificaciones │
                         │  Tecnicas         │
                         │  (Backend, FE, DB)│
                         └──────────────────┘
```

---

## 4. Validacion de Orden de Ejecucion

### 4.1 Dependencias entre Correcciones (Validado)

| Correccion | Depende De | Permite |
|------------|------------|---------|
| COR-001 | - | COR-009 |
| COR-002 | - | COR-003, COR-018 |
| COR-003 | COR-002 | COR-018 |
| COR-004 | - | COR-013 |
| COR-005 | - | - |
| COR-006 | - | COR-012 |
| COR-007 | - | - |
| COR-008 | - | - |
| COR-009 | COR-001 | - |
| COR-010 | - | - |
| COR-011 | - | - |
| COR-012 | COR-006 | - |
| COR-013 | COR-004 | - |
| COR-014 | - | - |
| COR-015 | - | - |
| COR-016 | - | - |
| COR-017 | - | - |
| COR-018 | COR-002, COR-003 | - |
| COR-019 | - | - |
| COR-020 | - | - |

### 4.2 Orden Validado

**Fase 6.1 (Sin dependencias):**
- COR-001, COR-002, COR-004, COR-005, COR-006, COR-007, COR-008, COR-010, COR-011

**Fase 6.2 (Dependencia Nivel 1):**
- COR-003 (req: COR-002)
- COR-009 (req: COR-001)
- COR-012 (req: COR-006)

**Fase 6.3 (Dependencia Nivel 2):**
- COR-013 (req: COR-004)
- COR-018 (req: COR-002, COR-003)

**Fase 6.4 (Features Independientes):**
- COR-014, COR-015, COR-016, COR-017, COR-019, COR-020

---

## 5. Riesgos de Dependencias

### 5.1 Riesgos Identificados

| ID | Riesgo | Probabilidad | Impacto | Mitigacion |
|----|--------|--------------|---------|------------|
| R1 | ENUM changes break existing data | ALTA | CRITICO | Migration scripts con ALTER TYPE |
| R2 | FK constraints fail on new tables | MEDIA | ALTO | Crear tablas antes de FKs |
| R3 | Triggers fail on new columns | MEDIA | MEDIO | Actualizar triggers despues |
| R4 | Docs out of sync post-change | ALTA | MEDIO | Checklist de actualizacion |
| R5 | User Stories incompatibles | BAJA | BAJO | Revision pre-merge |

### 5.2 Plan de Mitigacion

```sql
-- R1: Migration script para ENUMs
-- Ejemplo para COR-001
ALTER TYPE purchase.order_status ADD VALUE 'to_approve' BEFORE 'purchase';

-- R2: Orden de creacion
-- 1. CREATE TABLE nuevas
-- 2. ADD COLUMN sin FK
-- 3. ADD CONSTRAINT con FK
-- 4. CREATE INDEX

-- R3: Triggers
-- 1. DROP TRIGGER si existe
-- 2. Modificar tabla
-- 3. CREATE OR REPLACE FUNCTION
-- 4. CREATE TRIGGER
```

---

## 6. Checklist de Archivos por Correccion

### COR-001: PO States
- [ ] `database/ddl/06-purchase.sql` - ENUM modification
- [ ] `docs/schemas/purchase-schema-ddl.sql` - Sync
- [ ] `RF-MGN-006-002-001-crear-orden-compra.md` - Update
- [ ] `US-MGN-006-002-002-confirmar-orden-compra.md` - Update
- [ ] `INVENTARIO-OBJETOS-BD.yml` - Add new state

### COR-002: Move States
- [ ] `database/ddl/05-inventory.sql` - ENUM modification
- [ ] `docs/schemas/inventory-schema-ddl.sql` - Sync
- [ ] `inventory-domain.md` - States diagram
- [ ] `RF-MGN-005-003-movimientos-de-stock.md` - Update states
- [ ] `US-MGN-005-003-001-crear-movimiento-stock.md` - Update

### COR-003: Move Lines
- [ ] `database/ddl/05-inventory.sql` - New table
- [ ] `docs/schemas/inventory-schema-ddl.sql` - Sync
- [ ] `inventory-domain.md` - New entity
- [ ] `INVENTARIO-OBJETOS-BD.yml` - Add table
- [ ] `GRAFO-DEPENDENCIAS-SCHEMAS.md` - Update

### COR-004: Payment State
- [ ] `database/ddl/04-financial.sql` - New column + ENUM
- [ ] `docs/schemas/financial-schema-ddl.sql` - Sync
- [ ] `financial-domain.md` - New field
- [ ] `RF-MGN-004-005-gestión-de-facturas.md` - Update
- [ ] `WORKFLOW-3-WAY-MATCH.md` - Update

### COR-005: Tax Groups
- [ ] `database/ddl/04-financial.sql` - New table + columns
- [ ] `docs/schemas/financial-schema-ddl.sql` - Sync
- [ ] `financial-domain.md` - New entity
- [ ] `INVENTARIO-OBJETOS-BD.yml` - Add table

### COR-006: SO-Invoice Link
- [ ] `database/ddl/07-sales.sql` - New columns
- [ ] `docs/schemas/sales-schema-ddl.sql` - Sync
- [ ] `sales-domain.md` - New relations
- [ ] `RF-MGN-007-005-facturación-clientes.md` - Update

(Checklists COR-007 a COR-020 siguen patron similar)

---

## 7. Matriz de Validacion Cruzada

| Correccion | DDL | Schema Doc | Domain | RF | US | Workflow | Spec |
|------------|-----|------------|--------|----|----|----------|------|
| COR-001 | X | X | - | X | X | NEW | X |
| COR-002 | X | X | X | X | X | NEW | - |
| COR-003 | X | X | X | X | X | NEW | X |
| COR-004 | X | X | X | X | X | X | X |
| COR-005 | X | X | X | - | - | - | - |
| COR-006 | X | X | X | X | - | NEW | - |
| COR-007 | X | X | X | X | X | - | - |
| COR-008 | X | X | X | - | - | - | - |
| COR-009 | X | X | - | X | X | NEW | X |
| COR-010 | X | X | X | - | - | - | - |
| COR-011 | X | X | - | - | - | - | - |
| COR-012 | X | X | X | X | - | - | - |
| COR-013 | X | X | X | - | - | - | - |
| COR-014 | X | - | X | - | - | - | - |
| COR-015 | X | X | X | - | - | - | - |
| COR-016 | X | - | X | - | - | - | - |
| COR-017 | X | - | X | - | - | - | - |
| COR-018 | X | X | X | X | X | NEW | X |
| COR-019 | X | - | X | - | - | - | - |
| COR-020 | X | X | - | - | - | - | - |

---

## 8. Resultado de Validacion

### 8.1 Resumen

| Aspecto | Estado |
|---------|--------|
| Cobertura de Gaps | 100% (20/20) |
| Dependencias Mapeadas | 100% |
| Orden Validado | OK |
| Riesgos Identificados | 5 |
| Archivos Afectados | 75+ |

### 8.2 Conclusion

El plan de correcciones FASE-3 esta **VALIDADO** y puede proceder a FASE-5 (Refinamiento).

**Recomendaciones:**
1. Crear branch `feature/odoo-alignment` antes de cambios
2. Ejecutar correcciones P0 primero (COR-001 a COR-006)
3. Actualizar documentacion inmediatamente despues de cada DDL change
4. Crear tests de regresion para cada correccion

---

## 9. Proximos Pasos (FASE 5)

1. Refinar orden de ejecucion basado en capacidad
2. Crear migration scripts detallados
3. Definir tests de regresion
4. Establecer rollback plan

---

**Generado:** 2026-01-04
**Herramienta:** Claude Code
