🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
11 KiB
FASE 4: Validacion de Dependencias
ID: EPIC-VAL-004 Fecha: 2026-01-04 Estado: Completado Basado en: FASE-3 (Plan de Correcciones)
1. Objetivo
Validar que las correcciones planificadas en FASE 3:
- No rompan dependencias existentes
- Tengan todas sus dependencias satisfechas
- Sean compatibles con la estructura actual
- Identifiquen correcciones ya implementadas
2. Analisis de Estado Actual
2.1 Correcciones Ya Implementadas (Excluir del Plan)
| ID Plan | Descripcion | Estado Actual | Accion |
|---|---|---|---|
| COR-034 | core.attachments | YA EXISTE (linea 271) | EXCLUIR |
| COR-027 | hr.leaves | YA EXISTE (linea 252) | AJUSTAR |
| COR-027 | hr.leave_types | YA EXISTE (linea 231) | AJUSTAR |
Nota: HR ya tiene estructura de leaves. Solo falta leave_allocations.
2.2 Correcciones P1/P2 Anteriores Verificadas
| ID | Tabla/Funcion | Archivo | Linea | Verificado |
|---|---|---|---|---|
| COR-005 | financial.tax_groups | 04-financial.sql | 285 | OK |
| COR-013 | financial.account_full_reconcile | 04-financial.sql | 593 | OK |
| COR-013 | financial.account_partial_reconcile | 04-financial.sql | 606 | OK |
| COR-020 | core.partner_duplicates | 02-core.sql | 759 | OK |
3. Validacion de Dependencias por Correccion
3.1 COR-021: core.states
| Dependencia | Tabla/Schema | Existe | Estado |
|---|---|---|---|
| core.countries | core | SI | OK |
| system.tenants | auth | SI | OK |
Dependencias Satisfechas: SI Tablas que dependeran de states:
- core.partners (agregar state_id)
- core.addresses (agregar state_id)
- financial.fiscal_positions (state_ids array)
3.2 COR-022: core.banks, core.partner_banks
| Dependencia | Tabla/Schema | Existe | Estado |
|---|---|---|---|
| system.tenants | auth | SI | OK |
| core.countries | core | SI | OK |
| core.partners | core | SI | OK |
| core.currencies | core | SI | OK |
Dependencias Satisfechas: SI Tablas que dependeran:
- financial.bank_statements (journal_id -> partner_bank_id)
- financial.payments (partner_bank_id)
3.3 COR-023: financial.bank_statements, bank_statement_lines
| Dependencia | Tabla/Schema | Existe | Estado |
|---|---|---|---|
| system.tenants | auth | SI | OK |
| financial.journals | financial | SI | OK |
| core.currencies | core | SI | OK |
| core.partners | core | SI | OK |
| core.partner_banks | core | NO | REQUIERE COR-022 |
Dependencias Satisfechas: NO - Requiere COR-022 primero Orden de ejecucion: COR-022 -> COR-023
3.4 COR-024: financial.tax_repartition_lines
| Dependencia | Tabla/Schema | Existe | Estado |
|---|---|---|---|
| system.tenants | auth | SI | OK |
| financial.taxes | financial | SI | OK |
| financial.accounts | financial | SI | OK |
Dependencias Satisfechas: SI
3.5 COR-025: inventory.routes, stock_rules
| Dependencia | Tabla/Schema | Existe | Estado |
|---|---|---|---|
| system.tenants | auth | SI | OK |
| inventory.warehouses | inventory | SI | OK |
| inventory.locations | inventory | SI | OK |
| inventory.picking_types | inventory | SI | OK (COR-007) |
| core.partners | core | SI | OK |
| core.companies | core | SI | OK |
Dependencias Satisfechas: SI
3.6 COR-026: hr.attendances
| Dependencia | Tabla/Schema | Existe | Estado |
|---|---|---|---|
| auth.tenants | auth | SI | OK |
| hr.employees | hr | SI | OK |
Dependencias Satisfechas: SI
3.7 COR-027: hr.leave_allocations (AJUSTADO)
| Dependencia | Tabla/Schema | Existe | Estado |
|---|---|---|---|
| auth.tenants | auth | SI | OK |
| hr.employees | hr | SI | OK |
| hr.leave_types | hr | SI | YA EXISTE |
Dependencias Satisfechas: SI
Nota: Solo se requiere agregar leave_allocations, no recrear estructura
3.8 COR-028: financial.fiscal_positions
| Dependencia | Tabla/Schema | Existe | Estado |
|---|---|---|---|
| system.tenants | auth | SI | OK |
| core.companies | core | SI | OK |
| core.countries | core | SI | OK |
| core.states | core | NO | REQUIERE COR-021 |
| financial.taxes | financial | SI | OK |
| financial.accounts | financial | SI | OK |
Dependencias Satisfechas: PARCIAL - Requiere COR-021 para state_ids Workaround: Puede implementarse sin states, agregar despues
3.9 COR-029: purchase.button_cancel, button_draft
| Dependencia | Tabla/Schema | Existe | Estado |
|---|---|---|---|
| purchase.purchase_orders | purchase | SI | OK |
| inventory.pickings | inventory | SI | OK |
Dependencias Satisfechas: SI
3.10 COR-030: crm.merge_leads
| Dependencia | Tabla/Schema | Existe | Estado |
|---|---|---|---|
| crm.leads | crm | SI | OK |
| crm.lead_activities | crm | VERIFICAR | - |
Dependencias Satisfechas: VERIFICAR lead_activities
3.11 COR-031: inventory.stock_scrap
| Dependencia | Tabla/Schema | Existe | Estado |
|---|---|---|---|
| system.tenants | auth | SI | OK |
| inventory.products | inventory | SI | OK |
| core.uom | core | SI | OK |
| inventory.lots | inventory | SI | OK |
| inventory.locations | inventory | SI | OK |
| inventory.stock_moves | inventory | SI | OK |
| inventory.pickings | inventory | SI | OK |
Dependencias Satisfechas: SI
3.12 COR-032: projects.project_updates
| Dependencia | Tabla/Schema | Existe | Estado |
|---|---|---|---|
| system.tenants | auth | SI | OK |
| projects.projects | projects | SI | OK |
| auth.users | auth | SI | OK |
Dependencias Satisfechas: SI
3.13 COR-033: sales.order_templates
| Dependencia | Tabla/Schema | Existe | Estado |
|---|---|---|---|
| system.tenants | auth | SI | OK |
| inventory.products | inventory | SI | OK |
| core.uom | core | SI | OK |
Dependencias Satisfechas: SI
4. Grafo de Dependencias
GRUPO 0 (Sin dependencias) - Ejecutar primero
├── COR-021: core.states
├── COR-024: financial.tax_repartition_lines
├── COR-025: inventory.routes + rules
├── COR-026: hr.attendances
├── COR-027: hr.leave_allocations (ajustado)
├── COR-029: purchase.button_cancel/draft
├── COR-031: inventory.stock_scrap
├── COR-032: projects.project_updates
└── COR-033: sales.order_templates
GRUPO 1 (Depende de GRUPO 0)
├── COR-022: core.banks + partner_banks (despues de states)
├── COR-028: financial.fiscal_positions (depende de COR-021)
└── COR-030: crm.merge_leads (verificar activities)
GRUPO 2 (Depende de GRUPO 1)
└── COR-023: financial.bank_statements (depende de COR-022)
EXCLUIDOS (Ya existen)
├── COR-034: core.attachments - YA EXISTE
├── hr.leaves - YA EXISTE
└── hr.leave_types - YA EXISTE
5. Tabla de Referencias Cruzadas
5.1 Tablas que Agregan FK a Tablas Existentes
| Tabla Existente | Nuevo Campo | Referencia a | Correccion |
|---|---|---|---|
| core.partners | state_id | core.states | COR-021 |
| core.addresses | state_id | core.states | COR-021 |
| core.partners | bank_ids | core.partner_banks | COR-022 |
| financial.payments | partner_bank_id | core.partner_banks | COR-022 |
5.2 Tablas Nuevas con Referencias a Existentes
| Nueva Tabla | Referencia | Tabla Existente |
|---|---|---|
| core.states | country_id | core.countries |
| core.banks | country_id | core.countries |
| core.partner_banks | partner_id | core.partners |
| financial.bank_statements | journal_id | financial.journals |
| financial.bank_statement_lines | partner_id | core.partners |
| financial.tax_repartition_lines | tax_id | financial.taxes |
| inventory.routes | warehouse_id | inventory.warehouses |
| inventory.stock_rules | route_id | inventory.routes |
| hr.attendances | employee_id | hr.employees |
| hr.leave_allocations | employee_id | hr.employees |
6. Validacion de Schemas
6.1 Orden de Carga de Schemas
00-prerequisites.sql (funciones utilitarias)
↓
01-auth.sql (tenants, users, roles)
↓
02-core.sql (countries, currencies, partners)
↓
03-analytics.sql (analytic accounts)
↓
04-financial.sql (accounts, journals, taxes)
↓
05-inventory.sql (products, warehouses, stock)
↓
06-purchase.sql (purchase orders)
↓
07-sales.sql (sales orders)
↓
08-projects.sql (projects, tasks)
↓
09-system.sql (system config)
↓
10-billing.sql (subscriptions)
↓
11-crm.sql (leads, opportunities)
↓
12-hr.sql (employees, contracts)
Validacion: El orden actual es correcto para las nuevas correcciones.
7. Conflictos Identificados
7.1 Conflicto Potencial: auth.tenants vs system.tenants
Observacion: Algunos archivos usan auth.tenants, otros system.tenants.
Estado: Necesita verificacion de cual es el estandar actual.
Accion: Usar el schema que corresponda segun el archivo DDL donde se implemente.
7.2 Conflicto Potencial: Trigger function core.update_timestamp
Observacion: 12-hr.sql usa core.update_timestamp() pero podria no existir.
Estado: Verificar que existe en 02-core.sql
Accion: Usar update_updated_at_column() de 00-prerequisites.sql si es necesario.
8. Resumen de Validacion
8.1 Correcciones Validadas
| ID | Descripcion | Dependencias OK | Listo |
|---|---|---|---|
| COR-021 | core.states | SI | SI |
| COR-022 | core.banks | SI | SI |
| COR-023 | bank_statements | SI (con COR-022) | SI |
| COR-024 | tax_repartition | SI | SI |
| COR-025 | routes/rules | SI | SI |
| COR-026 | hr.attendances | SI | SI |
| COR-027 | hr.leave_allocations | SI (ajustado) | SI |
| COR-028 | fiscal_positions | SI (con COR-021) | SI |
| COR-029 | purchase functions | SI | SI |
| COR-030 | merge_leads | VERIFICAR | PARCIAL |
| COR-031 | stock_scrap | SI | SI |
| COR-032 | project_updates | SI | SI |
| COR-033 | order_templates | SI | SI |
8.2 Correcciones Excluidas
| ID | Razon |
|---|---|
| COR-034 | core.attachments ya existe |
8.3 Metricas Finales
| Metrica | Cantidad |
|---|---|
| Correcciones planificadas | 14 |
| Correcciones validadas | 12 |
| Correcciones excluidas | 1 |
| Correcciones a verificar | 1 |
| Listas para ejecucion | 12 |
9. Proximos Pasos
- FASE 5: Refinar el plan con el orden exacto de ejecucion
- Verificar existencia de
crm.lead_activitiespara COR-030 - Confirmar trigger function para timestamps
Generado: 2026-01-04 Herramienta: Claude Code Metodologia: SCRUM/SIMCO