# FASE 1: Análisis Inicial - ERP Construcción

**Proyecto:** erp-construccion
**Fecha:** 2026-01-04
**Estado:** Completado
**Objetivo:** Propagación FASE-8 ERP-Core

---

## 1. Inventario de Archivos DDL

### 1.1 Archivos Existentes

| Archivo | Líneas | Tablas | Schema |
|---------|--------|--------|--------|
| 01-construction-schema-ddl.sql | 903 | 24 | construction |
| 02-hr-schema-ddl.sql | 156 | 3 | hr (extensión) |
| 03-hse-schema-ddl.sql | 1,268 | 58 | hse |
| 04-estimates-schema-ddl.sql | 415 | 8 | estimates |
| 05-infonavit-schema-ddl.sql | 413 | 8 | infonavit |
| 06-inventory-ext-schema-ddl.sql | 213 | 4 | inventory (extensión) |
| 07-purchase-ext-schema-ddl.sql | 227 | 5 | purchase (extensión) |
| **TOTAL** | **3,595** | **110** | **7 schemas** |

### 1.2 Schemas por Tipo

| Tipo | Schemas | Tablas |
|------|---------|--------|
| Propios | construction, hse, estimates, infonavit | 98 |
| Extensiones de Core | hr, inventory, purchase | 12 |

---

## 2. Inventario de Orchestration

### 2.1 Archivos Clave

| Archivo | Descripción | Estado |
|---------|-------------|--------|
| `00-guidelines/HERENCIA-ERP-CORE.md` | Herencia del core v1.2.0 | Activo |
| `00-guidelines/HERENCIA-SPECS-ERP-CORE.md` | Specs heredadas | Activo |
| `referencias/DEPENDENCIAS-ERP-CORE.yml` | Dependencias detalladas | Activo |
| `inventarios/DATABASE_INVENTORY.yml` | Inventario de BD | Activo |

### 2.2 Estado de Documentación

- [x] HERENCIA-ERP-CORE.md actualizado (v1.2.0)
- [x] DEPENDENCIAS-ERP-CORE.yml completo
- [x] PROJECT-STATUS.md presente
- [ ] **PENDIENTE:** Referencias a FASE-8 del core

---

## 3. Análisis de Herencia Actual

### 3.1 Versión de ERP-Core Referenciada

```yaml
version_actual: "1.2.0"
version_fase8: "FASE-8 (2026-01-04)"
gap_version: "Requiere actualización"
```

### 3.2 Módulos Heredados del Core

| Módulo Core | Uso | Nivel Herencia |
|-------------|-----|----------------|
| Auth | Autenticación JWT/OAuth | 100% |
| Users | Gestión de usuarios | 100% |
| Roles | RBAC, guards | 100% |
| Tenants | Multi-tenancy | Extendido |
| Catalogs | Catálogos base | Extendido |
| Financial | Contabilidad | Extendido |
| Inventory | Productos, stock | Extendido |
| Purchase | Órdenes compra | Extendido |
| Projects | Proyectos, tareas | Extendido |
| HR | Empleados | Extendido |

---

## 4. Mapeo de Schemas vs Correcciones FASE-8

### 4.1 Correcciones Aplicables

| ID Core | Elemento | Aplicable | Schema Destino | Adaptación |
|---------|----------|-----------|----------------|------------|
| COR-035 | payment_term_lines | ✅ Sí | financial | Términos de pago obra |
| COR-036 | incoterms | ✅ Sí | financial | Para importaciones |
| COR-037 | payment_methods | ✅ Sí | financial | Métodos pago anticipo |
| COR-038 | reconcile_models | ⚠️ Parcial | financial | Conciliación estimaciones |
| COR-039 | journal_entries fields | ✅ Sí | financial | Campos adicionales |
| COR-040 | packages | ✅ Sí | inventory | Paquetes materiales |
| COR-041 | putaway_rules | ⚠️ Parcial | inventory | Ubicación almacén obra |
| COR-042 | storage_categories | ✅ Sí | inventory | Categorías almacén |
| COR-043 | product fields | ✅ Sí | inventory | Campos materiales |
| COR-044 | removal_strategies | ✅ Sí | inventory | FIFO materiales |
| COR-045 | product_supplierinfo | ✅ Sí | purchase | Proveedores materiales |
| COR-046 | PO fields | ✅ Sí | purchase | Campos OC obra |
| COR-047 | action_create_stock_moves | ✅ Sí | purchase | Stock desde OC |
| COR-048 | SO fields | ❌ No aplica | - | No hay ventas |
| COR-049 | action_confirm | ❌ No aplica | - | No hay ventas |
| COR-050 | get_pricelist_price | ❌ No aplica | - | No hay ventas |
| COR-051 | convert_lead_to_opportunity | ❌ No aplica | - | No hay CRM ventas |
| COR-052 | Lead/Opp fields | ❌ No aplica | - | No hay CRM ventas |
| COR-053 | action_set_lost | ❌ No aplica | - | No hay CRM ventas |
| COR-054 | action_set_won | ❌ No aplica | - | No hay CRM ventas |
| COR-055 | CRM tags | ❌ No aplica | - | No hay CRM ventas |
| COR-056 | project_collaborators | ✅ Sí | projects | Colaboradores obra |
| COR-057 | project fields | ✅ Sí | construction | Campos proyecto obra |
| COR-058 | task_count trigger | ✅ Sí | construction | Conteo partidas |
| COR-059 | project_ratings | ⚠️ Parcial | construction | Calificación obra |
| COR-060 | burndown_chart_data | ✅ Sí | construction | Avance de obra |
| COR-061 | employee fields | ✅ Sí | hr | Campos empleado obra |
| COR-062 | work_locations | ✅ Sí | hr | Ubicaciones de obra |
| COR-063 | skills system | ✅ Sí | hr | Habilidades cuadrillas |
| COR-064 | expense system | ✅ Sí | hr | Gastos residentes |
| COR-065 | resume_lines | ⚠️ Parcial | hr | Experiencia obra |
| COR-066 | payslip basics | ✅ Sí | hr | Nómina destajo |

### 4.2 Resumen de Aplicabilidad

| Categoría | Cantidad | Porcentaje |
|-----------|----------|------------|
| Aplicables directamente | 18 | 56% |
| Aplicables con adaptación | 6 | 19% |
| No aplicables | 8 | 25% |
| **Total correcciones** | **32** | **100%** |

---

## 5. Dependencias Identificadas

### 5.1 Dependencias con ERP-Core

```yaml
dependencias_criticas:
  - auth.tenants: "Todas las tablas construcción"
  - auth.users: "Auditoría, created_by"
  - core.partners: "Contratistas, proveedores"
  - core.currencies: "Moneda de obra"
  - core.countries: "País de proyecto"
  - financial.accounts: "Cuentas contables"
  - inventory.products: "Materiales"
  - inventory.locations: "Almacenes obra"
  - hr.employees: "Personal de obra"
```

### 5.2 Dependencias Internas

```yaml
dependencias_construccion:
  - construction.fraccionamientos: "Base para todos"
  - construction.proyectos: "Agrupa obras"
  - hse.* depende de: "construction.fraccionamientos"
  - estimates.* depende de: "construction.presupuestos"
```

---

## 6. Módulos Específicos del Giro

### 6.1 Adaptaciones Requeridas para Construcción

| Módulo Core | Adaptación Construcción |
|-------------|------------------------|
| Projects | → Obras, fraccionamientos, etapas |
| HR Skills | → Habilidades de cuadrilla (albañil, plomero, etc.) |
| HR Expenses | → Gastos de residentes de obra |
| Inventory Packages | → Paquetes de materiales |
| Work Locations | → Ubicaciones de obra (frente, almacén) |
| Burndown | → Avance de obra (% físico vs programado) |

### 6.2 Elementos Nuevos para Construcción

| Elemento | Descripción |
|----------|-------------|
| construction.skill_types | Tipos: Albañilería, Plomería, Electricidad |
| construction.work_locations | Frentes de obra, almacenes temporales |
| construction.burndown_data | Avance físico y financiero |

---

## 7. Archivos a Modificar/Crear

### 7.1 DDL a Modificar

| Archivo | Acción | Correcciones |
|---------|--------|--------------|
| 02-hr-schema-ddl.sql | Agregar | COR-061 a COR-066 adaptados |
| 06-inventory-ext-schema-ddl.sql | Agregar | COR-040 a COR-044 adaptados |
| 07-purchase-ext-schema-ddl.sql | Agregar | COR-045 a COR-047 |

### 7.2 Archivos a Crear

| Archivo | Contenido |
|---------|-----------|
| 08-financial-ext-schema-ddl.sql | COR-035 a COR-039 |
| 09-projects-ext-schema-ddl.sql | COR-056 a COR-060 adaptados |
| migrations/20260104_fase8_construccion.sql | Migración consolidada |
| seeds/construccion-skill-types.sql | Seed habilidades construcción |

### 7.3 Documentación a Actualizar

| Documento | Cambio |
|-----------|--------|
| HERENCIA-ERP-CORE.md | Agregar referencia FASE-8 |
| DEPENDENCIAS-ERP-CORE.yml | Actualizar versión |
| DATABASE_INVENTORY.yml | Agregar nuevas tablas |

---

## 8. Riesgos Identificados

| Riesgo | Impacto | Mitigación |
|--------|---------|------------|
| FK a tablas core que no existen | Alto | Verificar existencia antes |
| Conflicto schemas hr/construction | Medio | Prefijo claro |
| Datos existentes incompatibles | Medio | Script migración cuidadoso |
| RLS policy conflicts | Bajo | Usar mismo patrón |

---

## 9. Próximos Pasos

1. **FASE 2:** Análisis detallado de cada corrección aplicable
2. **FASE 3:** Plan de implementación con adaptaciones
3. **FASE 4:** Validación del plan contra este análisis
4. **FASE 5:** Análisis de dependencias detallado
5. **FASE 6:** Refinamiento del plan
6. **FASE 7:** Ejecución
7. **FASE 8:** Validación final

---

## 10. Métricas de Análisis

| Métrica | Valor |
|---------|-------|
| Archivos DDL existentes | 7 |
| Tablas existentes | 110 |
| Correcciones aplicables | 24 (75%) |
| Nuevos archivos requeridos | 4 |
| Archivos a modificar | 3 |
| Documentos a actualizar | 3 |

---

**Estado:** FASE 1 COMPLETADA
**Siguiente:** FASE 2 - Análisis Detallado
**Fecha:** 2026-01-04
