erp-core/orchestration/01-analisis/FASE-4-VALIDACION-DEPENDENCIAS.md
rckrdmrd 4c4e27d9ba feat: Documentation and orchestration updates
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 05:35:20 -06:00

348 lines
14 KiB
Markdown

# 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