erp-construccion-database-v2/HERENCIA-ERP-CORE.md
rckrdmrd bf97e26cdf Migración desde erp-construccion/database - Estándar multi-repo v2
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 08:11:21 -06:00

14 KiB

Referencia de Base de Datos - ERP Construcción

Fecha: 2025-12-09 Versión: 1.2 Proyecto: ERP Construcción Nivel: 2B.2 (Proyecto Independiente)


RESUMEN

ERP Construcción es un proyecto independiente que implementa y adapta patrones del ERP-Core para el dominio de construcción de vivienda. No es una extensión del core, sino un sistema autónomo que:

  1. Implementa schemas propios basados en patrones del core
  2. Adapta estructuras de datos al dominio de construcción
  3. Reutiliza código y patrones donde tiene sentido
  4. Opera independientemente del ERP-Core

DDL de Referencia (Core): apps/erp-core/database/ddl/ DDL Propio: database/schemas/


ARQUITECTURA DEL PROYECTO

┌─────────────────────────────────────────────────────────────────┐
│                    ERP CORE (Referencia)                        │
│  Patrones, specs y estructuras reutilizables                    │
│  ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐               │
│  │  auth   │ │  core   │ │inventory│ │ financial│              │
│  │ patrones│ │ patrones│ │ patrones│ │ patrones │              │
│  └─────────┘ └─────────┘ └─────────┘ └─────────┘               │
└─────────────────────────────────────────────────────────────────┘
                              │
                              │ REFERENCIA / FORK
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│              ERP CONSTRUCCIÓN (Proyecto Independiente)          │
│                                                                 │
│  ┌─────────────┐ ┌─────────────┐ ┌─────────────┐               │
│  │construction │ │     hr      │ │    hse      │               │
│  │   24 tbl    │ │   8 tbl     │ │  58 tbl     │               │
│  │ (proyectos) │ │ (empleados) │ │ (seguridad) │               │
│  └─────────────┘ └─────────────┘ └─────────────┘               │
│                                                                 │
│  ┌─────────────┐ ┌─────────────┐ ┌─────────────┐               │
│  │  estimates  │ │  infonavit  │ │ inventory   │               │
│  │   8 tbl     │ │   8 tbl     │ │   4 tbl     │               │
│  │(estimación) │ │   (ruv)     │ │   (ext)     │               │
│  └─────────────┘ └─────────────┘ └─────────────┘               │
│                                                                 │
│  ┌─────────────┐                                                │
│  │  purchase   │   Schemas propios: 7                           │
│  │   5 tbl     │   Tablas propias: 110                          │
│  │   (ext)     │   Opera de forma INDEPENDIENTE                 │
│  └─────────────┘                                                │
└─────────────────────────────────────────────────────────────────┘

PATRONES REUTILIZADOS DEL CORE

Los siguientes patrones del ERP-Core fueron adaptados e implementados en este proyecto:

Patrón del Core Adaptación en Construcción
auth.* Implementación propia de autenticación multi-tenant
core.partners Contratistas, proveedores, clientes
inventory.* Materiales de construcción, almacenes de obra
projects.* Obras, fraccionamientos, etapas
hr.* Personal de obra, cuadrillas, asistencias

Nota: Este proyecto NO depende del ERP-Core para ejecutarse. Implementa sus propios schemas basados en los patrones de referencia.


SCHEMAS ESPECÍFICOS DE CONSTRUCCIÓN

1. Schema construction (24 tablas)

Propósito: Gestión de proyectos de obra, estructura y avances

-- DDL: 01-construction-schema-ddl.sql
-- Estructura de proyecto (8 tablas):
--   fraccionamientos, etapas, manzanas, lotes, torres, niveles, departamentos, prototipos
-- Presupuestos y Conceptos (3 tablas):
--   conceptos, presupuestos, presupuesto_partidas
-- Programación y Avances (5 tablas):
--   programa_obra, programa_actividades, avances_obra, fotos_avance, bitacora_obra
-- Calidad (5 tablas):
--   checklists, checklist_items, inspecciones, inspeccion_resultados, tickets_postventa
-- Contratos (3 tablas):
--   subcontratistas, contratos, contrato_partidas

2. Schema hr extendido (8 tablas)

Propósito: Gestión de personal de obra, asistencias, destajo

-- DDL: 02-hr-schema-ddl.sql
-- Extiende: hr schema del core

hr.employee_construction    -- Extensión empleados construcción
hr.asistencias             -- Registro con GPS/biométrico
hr.asistencia_biometrico   -- Datos biométricos
hr.geocercas               -- Validación GPS (PostGIS)
hr.destajo                 -- Trabajo a destajo
hr.destajo_detalle         -- Mediciones destajo
hr.cuadrillas              -- Equipos de trabajo
hr.cuadrilla_miembros      -- Miembros cuadrillas

3. Schema hse (58 tablas)

Propósito: Health, Safety & Environment

-- DDL: 03-hse-schema-ddl.sql
-- Implementa 8 requerimientos funcionales (RF-MAA017-001 a 008)

Grupos de tablas:
- Gestión de Incidentes (5 tablas)
- Control de Capacitaciones (6 tablas)
- Inspecciones de Seguridad (7 tablas)
- Control de EPP (7 tablas)
- Cumplimiento STPS (11 tablas)
- Gestión Ambiental (9 tablas)
- Permisos de Trabajo (8 tablas)
- Indicadores HSE (7 tablas)

4. Schema estimates (8 tablas)

Propósito: Estimaciones, anticipos, retenciones

-- DDL: 04-estimates-schema-ddl.sql
-- Módulo: MAI-008 (Estimaciones y Facturación)

estimates.estimaciones         -- Estimaciones de obra
estimates.estimacion_conceptos -- Conceptos estimados
estimates.generadores          -- Números generadores
estimates.anticipos            -- Anticipos de obra
estimates.amortizaciones       -- Amortización de anticipos
estimates.retenciones          -- Retenciones (garantía, IMSS, ISR)
estimates.fondo_garantia       -- Fondo de garantía
estimates.estimacion_workflow  -- Workflow de aprobación

5. Schema infonavit (8 tablas)

Propósito: Integración INFONAVIT, RUV, derechohabientes

-- DDL: 05-infonavit-schema-ddl.sql
-- Módulos: MAI-010/011 (CRM Derechohabientes, Integración INFONAVIT)

infonavit.registro_infonavit   -- Registro RUV
infonavit.oferta_vivienda      -- Oferta registrada
infonavit.derechohabientes     -- Derechohabientes
infonavit.asignacion_vivienda  -- Asignaciones
infonavit.actas                -- Actas de entrega
infonavit.acta_viviendas       -- Viviendas en acta
infonavit.reportes_infonavit   -- Reportes RUV
infonavit.historico_puntos     -- Histórico puntos ecológicos

6. Schema inventory extensión (4 tablas)

Propósito: Almacenes de proyecto, requisiciones de obra

-- DDL: 06-inventory-ext-schema-ddl.sql
-- Extiende: inventory schema del core

inventory.almacenes_proyecto   -- Almacenes por obra
inventory.requisiciones_obra   -- Requisiciones desde obra
inventory.requisicion_lineas   -- Líneas de requisición
inventory.consumos_obra        -- Consumos por lote/concepto

7. Schema purchase extensión (5 tablas)

Propósito: Órdenes de compra construcción, comparativos

-- DDL: 07-purchase-ext-schema-ddl.sql
-- Extiende: purchase schema del core

purchase.purchase_order_construction  -- Extensión OC
purchase.supplier_construction        -- Extensión proveedores
purchase.comparativo_cotizaciones     -- Cuadro comparativo
purchase.comparativo_proveedores      -- Proveedores en comparativo
purchase.comparativo_productos        -- Productos cotizados

ORDEN DE EJECUCIÓN DDL

Para recrear la base de datos completa:

# PASO 1: Cargar ERP Core (base)
cd apps/erp-core/database
./scripts/reset-database.sh --force

# PASO 2: Cargar extensiones de Construcción (orden importante)
cd apps/verticales/construccion/database
psql $DATABASE_URL -f schemas/01-construction-schema-ddl.sql  # 24 tablas
psql $DATABASE_URL -f schemas/02-hr-schema-ddl.sql            # 8 tablas
psql $DATABASE_URL -f schemas/03-hse-schema-ddl.sql           # 58 tablas
psql $DATABASE_URL -f schemas/04-estimates-schema-ddl.sql     # 8 tablas
psql $DATABASE_URL -f schemas/05-infonavit-schema-ddl.sql     # 8 tablas
psql $DATABASE_URL -f schemas/06-inventory-ext-schema-ddl.sql # 4 tablas
psql $DATABASE_URL -f schemas/07-purchase-ext-schema-ddl.sql  # 5 tablas

Nota: Los archivos 06 y 07 dependen de que 01-construction esté instalado.


DEPENDENCIAS CRUZADAS

Tablas de Construcción que dependen del Core

Tabla Construcción Depende de (Core)
construccion.proyectos core.partners (cliente)
construccion.proyectos auth.users (created_by)
construccion.fraccionamientos construccion.proyectos
hr.employees auth.users
hr.employee_fraccionamientos construccion.fraccionamientos
hse.incidentes construccion.fraccionamientos
hse.incidente_involucrados hr.employees
hse.* auth.users (auditoria)

SPECS DEL CORE IMPLEMENTADAS

Spec Core Aplicación en Construcción Estado
SPEC-VALORACION-INVENTARIO Materiales de construcción DDL LISTO
SPEC-TRAZABILIDAD-LOTES-SERIES Lotes de concreto, acero DDL LISTO
SPEC-PROYECTOS-DEPENDENCIAS-BURNDOWN Partidas de obra PENDIENTE
SPEC-MAIL-THREAD-TRACKING Historial de presupuestos PENDIENTE
SPEC-WIZARD-TRANSIENT-MODEL Asistentes de estimaciones PENDIENTE

Correcciones de DDL Core (2025-12-08)

El DDL del ERP-Core fue corregido para resolver FK inválidas:

  1. stock_valuation_layers: Campos journal_entry_id y journal_entry_line_id (antes account_move_*)
  2. stock_move_consume_rel: Nueva tabla de trazabilidad (antes move_line_consume_rel)
  3. category_stock_accounts: FK corregida a core.product_categories
  4. product_categories: ALTERs ahora apuntan a schema core

Estas correcciones permiten que el DDL de inventory se ejecute correctamente.

Correcciones de DDL Construcción (2025-12-08)

El DDL de la vertical Construcción fue corregido para alinearse con ERP-Core:

Archivo Correcciones Detalle
01-construction-schema-ddl.sql 4 FK core.tenantsauth.tenants, core.usersauth.users
02-hr-schema-ddl.sql 4 FK Referencias corregidas a auth.*
03-hse-schema-ddl.sql 42 FK Todas las referencias corregidas
Total 50 FK Ahora usa auth.tenants y auth.users correctamente

Verificaciones de prerequisitos actualizadas:

  • Los DDL ahora validan que auth.tenants y auth.users existan antes de crear tablas
  • ERP-Core debe estar instalado antes de ejecutar DDL de Construcción

MAPEO DE NOMENCLATURA

Core Construcción
core.partners Contratistas, proveedores
inventory.products Materiales de construcción
inventory.locations Almacenes de obra
projects.projects Base para construccion.proyectos
hr.employees Personal de obra
purchase.orders Órdenes de compra de materiales

VALIDACIÓN DE HERENCIA

Verificar schemas heredados

-- Verificar que existen los schemas del core
SELECT schema_name
FROM information_schema.schemata
WHERE schema_name IN ('auth', 'core', 'financial', 'inventory',
                      'purchase', 'projects', 'hr', 'analytics', 'system');

Verificar extensiones de construcción

-- Verificar schemas específicos
SELECT schema_name
FROM information_schema.schemata
WHERE schema_name IN ('construccion', 'hse');

-- Contar tablas por schema
SELECT schemaname, COUNT(*) as tables
FROM pg_tables
WHERE schemaname IN ('construccion', 'hr', 'hse')
GROUP BY schemaname;

SPECS DEL CORE APLICABLES

Según el MAPEO-SPECS-VERTICALES.md:

Categoría Total Obligatorias Opcionales No Aplican
Construcción 30 22 4 4

SPECS Críticas para Construcción

SPEC Aplicación Estado DDL
SPEC-VALORACION-INVENTARIO Costeo de materiales DDL LISTO
SPEC-TRAZABILIDAD-LOTES-SERIES Lotes de concreto, acero DDL LISTO
SPEC-PROYECTOS-DEPENDENCIAS-BURNDOWN Partidas de obra PENDIENTE
SPEC-PRESUPUESTOS-REVISIONES Control presupuestal PENDIENTE
SPEC-RRHH-EVALUACIONES-SKILLS Personal de obra PENDIENTE

SPECS No Aplicables

  • SPEC-INTEGRACION-CALENDAR - Sin necesidad de calendario externo
  • SPEC-OAUTH2-SOCIAL-LOGIN - Opcional, no crítico
  • SPEC-INVENTARIOS-CICLICOS - Opcional para construcción
  • SPEC-CONSOLIDACION-FINANCIERA - Opcional para construcción

REFERENCIAS

  • ERP Core DDL: apps/erp-core/database/ddl/
  • ERP Core README: apps/erp-core/database/README.md
  • MAPEO-SPECS-VERTICALES: apps/erp-core/docs/04-modelado/MAPEO-SPECS-VERTICALES.md
  • DATABASE_INVENTORY.yml: orchestration/inventarios/

Documento de herencia oficial Última actualización: 2025-12-09 Total schemas: 7 | Total tablas: 110