# Herencia de ERP Core - Vertical Construccion

**Version:** 1.0.0
**Vertical:** Construccion
**Nivel:** STANDALONE (proyecto independiente)
**Version ERP-Core:** 1.2.0
**Ruta ERP-Core:** projects/erp-core
**Herencia:** 60-70% de funcionalidad base de erp-core
**Fecha Migracion:** 2025-12-27

---

## RESUMEN DE HERENCIA

Este documento especifica exactamente que hereda la vertical Construccion del ERP Core y como lo extiende.

---

## 1. MODULOS HEREDADOS (100%)

Estos modulos se usan TAL CUAL del core, sin modificaciones:

| Modulo Core | Codigo | Uso en Construccion |
|-------------|--------|---------------------|
| Auth | MGN-001 | Autenticacion JWT, OAuth, sessions |
| Users | MGN-002 | Gestion de usuarios CRUD |
| Roles | MGN-003 | RBAC, guards, decoradores |
| Audit | MGN-007 | Auditoria, access logs |
| Notifications | MGN-008 | Notificaciones in-app, email |
| Reports | MGN-009 | Report builder basico |

**Accion:** NO crear codigo para estos modulos. Usar directamente del core.

---

## 2. MODULOS HEREDADOS Y EXTENDIDOS

Estos modulos heredan la base del core pero agregan funcionalidad especifica:

### MGN-004: Tenants → Empresas Constructoras

```yaml
herencia_base:
  - Multi-tenancy basico
  - Aislamiento RLS
  - Subscripciones

extension_construccion:
  - Constructora como tenant especializado
  - Campos adicionales:
    - rfc_constructora
    - licencia_construccion
    - registro_cmic
    - clasificacion_empresa (micro/pequena/mediana/grande)
  - Relaciones:
    - constructora → obras (1:N)
    - constructora → contratos (1:N)
```

### MGN-005: Catalogs → Catalogos de Construccion

```yaml
herencia_base:
  - CRUD de catalogos genericos
  - Estructura maestro-detalle

extension_construccion:
  - Catalogo de conceptos de obra (OPUS style)
  - Catalogo de unidades de medida construccion
  - Catalogo de materiales de construccion
  - Catalogo de mano de obra especializada
  - Catalogo de equipo y maquinaria
  - Catalogo de APUs (Analisis de Precios Unitarios)
```

### MGN-010: Financial → Contabilidad de Obra

```yaml
herencia_base:
  - Plan de cuentas
  - Asientos contables
  - Periodos contables

extension_construccion:
  - Cuentas por proyecto de obra
  - Centros de costo por etapa de obra
  - Integracion con estimaciones
  - Reportes financieros por obra
```

---

## 3. ESPECIFICACIONES TRANSVERSALES HEREDADAS

Del analisis de gaps vs Odoo 18, esta vertical hereda y usa:

### Obligatorias (Impacto Directo)

| Especificacion | Gap | Uso |
|----------------|-----|-----|
| `SPEC-PROYECTOS-DEPENDENCIAS-BURNDOWN.md` | GAP-MGN-011 | Gestion de obras con dependencias |
| `SPEC-MAIL-THREAD-TRACKING.md` | Patron tecnico | Tracking de comunicaciones en obras |
| `SPEC-WIZARD-TRANSIENT-MODEL.md` | Patron tecnico | Wizards de generacion de estimaciones |
| `SPEC-VALORACION-INVENTARIO.md` | GAP-MGN-005 | Valoracion de materiales en almacen |
| `SPEC-TRAZABILIDAD-LOTES-SERIES.md` | GAP-MGN-005 | Trazabilidad de materiales |

### Recomendadas (Impacto Indirecto)

| Especificacion | Gap | Uso |
|----------------|-----|-----|
| `SPEC-SISTEMA-SECUENCIAS.md` | GAP-MGN-004 | Foliado de contratos, estimaciones |
| `SPEC-REPORTES-FINANCIEROS.md` | GAP-MGN-004 | Reportes de obra |
| `SPEC-GASTOS-EMPLEADOS.md` | GAP-MGN-010 | Viaticos de residentes |
| `SPEC-INTEGRACION-CALENDAR.md` | GAP-MGN-014 | Programacion de obra |

**Ubicacion:** `erp-core/docs/04-modelado/especificaciones-tecnicas/transversal/`

---

## 4. WORKFLOWS HEREDADOS

| Workflow | Aplicacion en Construccion |
|----------|---------------------------|
| `WORKFLOW-CIERRE-PERIODO-CONTABLE.md` | Cierre de periodo de obra |
| `WORKFLOW-3-WAY-MATCH.md` | Validacion facturas vs entradas |
| `WORKFLOW-PAGOS-ANTICIPADOS.md` | Anticipos de obra |

---

## 5. MODULOS PROPIOS (No heredados)

Estos modulos son especificos de construccion y NO existen en el core:

| Codigo | Modulo | Descripcion |
|--------|--------|-------------|
| MAI-002 | project_management | Gestion de obras |
| MAI-003 | financial_management | Estimaciones, deductivas |
| MAI-004 | contract_management | Contratos de obra |
| MAI-005 | document_management | Control documental |
| MAI-006 | bidding_management | Licitaciones |
| MAI-007 | budget_management | Presupuestos de obra |
| MAI-008 | warehouse_management | Almacen de obra |
| MAI-009 | equipment_management | Maquinaria y equipo |
| MAI-010 | quality_control | Control de calidad |
| MAI-011 | safety_management | Seguridad industrial |

---

## 6. SCHEMAS DE BASE DE DATOS

### Heredados de Core (Usar directamente)

```yaml
schemas_core:
  - auth (con extension vertical)
  - core_users
  - core_rbac
  - core_tenants (extendido)
  - core_catalogs (extendido)
  - core_audit
  - core_notifications
```

### Propios de Construccion

```yaml
schemas_vertical:
  - vertical_construccion
    - obras
    - contratos
    - estimaciones
    - presupuestos
    - almacen_obra
    - maquinaria
    - calidad
    - seguridad
```

---

## 7. DEPENDENCIAS ENTRE MODULOS

```
                    ┌─────────────────┐
                    │   ERP CORE      │
                    │  (60-70% base)  │
                    └────────┬────────┘
                             │
         ┌───────────────────┼───────────────────┐
         │                   │                   │
    ┌────▼────┐        ┌─────▼─────┐       ┌─────▼─────┐
    │  Auth   │        │  Tenants  │       │ Financial │
    │ (100%)  │        │ (extendido)│       │(extendido)│
    └────┬────┘        └─────┬─────┘       └─────┬─────┘
         │                   │                   │
         └───────────────────┼───────────────────┘
                             │
                    ┌────────▼────────┐
                    │   CONSTRUCCION  │
                    │   (30-40% propio)│
                    └─────────────────┘
                             │
         ┌───────────────────┼───────────────────┐
         │                   │                   │
    ┌────▼────┐        ┌─────▼─────┐       ┌─────▼─────┐
    │  Obras  │        │Estimaciones│       │ Almacen  │
    │ (propio)│        │  (propio)  │       │ (propio) │
    └─────────┘        └───────────┘       └──────────┘
```

---

## 8. REGLAS DE HERENCIA

### Al crear nuevo modulo vertical:

1. **Verificar si existe en core**
   - Si existe → EXTENDER, no duplicar
   - Si no existe → Crear en vertical

2. **Al extender modulo core:**
   - Heredar Entity base
   - Agregar campos con prefijo vertical
   - Mantener compatibilidad con interfaces core

3. **Al usar especificacion transversal:**
   - Leer spec completa antes de implementar
   - Adaptar a contexto de construccion
   - Documentar variaciones

### Al crear DDL:

```sql
-- Schema vertical
CREATE SCHEMA IF NOT EXISTS vertical_construccion;

-- Tablas propias en schema vertical
CREATE TABLE vertical_construccion.obras (...);

-- Extensiones a core van en schema core con prefijo
-- o como tabla relacionada en vertical
```

---

## 9. ACTUALIZACIONES DEL CORE

Cuando el core se actualiza:

1. **Revisar SUITE_MASTER_INVENTORY.yml** para cambios
2. **Verificar specs afectadas** en changelog
3. **Actualizar herencia** si hay nuevos modulos/specs
4. **Propagar cambios** a este documento

---

## 10. REFERENCIAS

| Recurso | Ubicacion |
|---------|-----------|
| MASTER_INVENTORY Core | `erp-core/orchestration/inventarios/MASTER_INVENTORY.yml` |
| Specs Transversales | `erp-core/docs/04-modelado/especificaciones-tecnicas/transversal/` |
| Workflows | `erp-core/docs/04-modelado/workflows/` |
| SUITE_MASTER_INVENTORY | `erp-suite/orchestration/inventarios/SUITE_MASTER_INVENTORY.yml` |
| HERENCIA-DIRECTIVAS | `./HERENCIA-DIRECTIVAS.md` |

---

*Sistema NEXUS + SIMCO v2.2.0*
*Vertical: Construccion (Nivel 2B.2)*
*Ultima actualizacion: 2025-12-08*
