# 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