# VALIDACION DDL vs INVENTARIOS - ERP CONSTRUCCION **Fecha:** 2025-12-06 **Version:** 1.0.0 **Generado por:** Requirements-Analyst --- ## RESUMEN EJECUTIVO | Metrica | Inventarios | DDL Real | Estado | |---------|-------------|----------|--------| | **Schemas** | 6 (+ 3 pendientes) | 7 implementados | DISCREPANCIA | | **Tablas declaradas** | 57 | 65 | DISCREPANCIA | | **HSE Schema** | "pendiente" | 58 tablas implementadas | DESACTUALIZADO | | **ENUMs** | 22 | 89 (22 base + 67 HSE) | DESACTUALIZADO | ### Conclusion General Los inventarios MASTER_INVENTORY.yml y DATABASE_INVENTORY.yml estan **DESACTUALIZADOS** respecto al DDL implementado. El schema HSE con 58 tablas y 67 ENUMs ya fue implementado pero los inventarios lo marcan como "pendiente". --- ## 1. ANALISIS DE OBJETOS DDL IMPLEMENTADOS ### 1.1 Schemas Creados (7 schemas de negocio) | Schema | Origen | Tablas | ENUMs | Estado | |--------|--------|--------|-------|--------| | core | construccion | 2 | 0 | Implementado | | core_shared | construccion | 0 | 0 | Implementado (funciones) | | construction | construccion | 2 | 0 | Implementado | | hr | construccion | 3 | 0 | Implementado | | hse | construccion | 58 | 67 | **IMPLEMENTADO** | | estimates | construccion | 0 | 0 | Schema vacio | | infonavit | construccion | 0 | 0 | Schema vacio | ### 1.2 Tablas por Schema (Conteo Real del DDL) #### core (2 tablas) - `core.tenants` - Multi-tenancy base - `core.users` - Usuarios base #### construction (2 tablas) - `construction.proyectos` - Proyectos de desarrollo - `construction.fraccionamientos` - Obras/fraccionamientos #### hr (3 tablas) - `hr.employees` - Empleados - `hr.puestos` - Catalogo de puestos - `hr.employee_fraccionamientos` - Asignacion empleados a obras #### hse (58 tablas) - RF-MAA017-001 a RF-MAA017-008 **RF-MAA017-001 Gestion de Incidentes (5 tablas):** - `hse.incidentes` - `hse.incidente_involucrados` - `hse.incidente_investigacion` - `hse.incidente_acciones` - `hse.incidente_evidencias` **RF-MAA017-002 Control de Capacitaciones (6 tablas):** - `hse.capacitaciones` - `hse.capacitacion_matriz` - `hse.instructores` - `hse.capacitacion_sesiones` - `hse.capacitacion_asistentes` - `hse.constancias_dc3` **RF-MAA017-003 Inspecciones de Seguridad (7 tablas):** - `hse.tipos_inspeccion` - `hse.checklist_items` - `hse.programa_inspecciones` - `hse.inspecciones` - `hse.inspeccion_evaluaciones` - `hse.hallazgos` - `hse.hallazgo_evidencias` **RF-MAA017-004 Control de EPP (7 tablas):** - `hse.epp_catalogo` - `hse.epp_matriz_puesto` - `hse.epp_asignaciones` - `hse.epp_inspecciones` - `hse.epp_bajas` - `hse.epp_inventario` - `hse.epp_movimientos` **RF-MAA017-005 Cumplimiento STPS (11 tablas):** - `hse.normas_stps` - `hse.norma_requisitos` - `hse.cumplimiento_obra` - `hse.comision_seguridad` - `hse.comision_integrantes` - `hse.comision_recorridos` - `hse.programa_seguridad` - `hse.programa_actividades` - `hse.documentos_stps` - `hse.auditorias` **RF-MAA017-006 Gestion Ambiental (9 tablas):** - `hse.residuos_catalogo` - `hse.residuos_generacion` - `hse.almacen_temporal` - `hse.proveedores_ambientales` - `hse.manifiestos_residuos` - `hse.manifiesto_detalle` - `hse.impacto_ambiental` - `hse.quejas_ambientales` **RF-MAA017-007 Permisos de Trabajo (8 tablas):** - `hse.tipos_permiso_trabajo` - `hse.permisos_trabajo` - `hse.permiso_personal` - `hse.permiso_autorizaciones` - `hse.permiso_checklist` - `hse.permiso_monitoreos` - `hse.permiso_eventos` - `hse.permiso_documentos` **RF-MAA017-008 Indicadores HSE (6 tablas):** - `hse.indicadores_config` - `hse.indicadores_meta_obra` - `hse.indicadores_valores` - `hse.horas_trabajadas` - `hse.dias_sin_accidente` - `hse.reportes_programados` - `hse.alertas_indicadores` ### 1.3 ENUMs Implementados (89 total) **ENUMs HSE (67):** - Incidentes: `tipo_incidente`, `gravedad_incidente`, `estado_incidente`, `rol_involucrado`, `factor_causa` - Capacitaciones: `tipo_capacitacion`, `estado_sesion` - Inspecciones: `frecuencia`, `estado_inspeccion`, `resultado_evaluacion`, `gravedad_hallazgo`, `estado_hallazgo`, `tipo_evidencia` - EPP: `categoria_epp`, `estado_epp`, `estado_inspeccion_epp`, `motivo_baja_epp`, `tipo_movimiento_epp` - STPS: `estado_comision`, `rol_comision`, `representacion`, `estado_recorrido`, `estado_programa`, `tipo_actividad_programa`, `estado_actividad`, `tipo_documento_stps`, `tipo_auditoria`, `resultado_auditoria`, `estado_cumplimiento` - Ambiental: `categoria_residuo`, `unidad_residuo`, `estado_residuo`, `estado_almacen`, `tipo_proveedor_ambiental`, `estado_manifiesto`, `tipo_impacto`, `severidad`, `probabilidad`, `nivel_riesgo`, `estado_impacto`, `origen_queja`, `tipo_queja`, `estado_queja` - Permisos: `estado_permiso`, `rol_permiso`, `decision_autorizacion`, `momento_checklist`, `tipo_evento_permiso` - Indicadores: `tipo_indicador`, `frecuencia_calculo`, `periodo_tipo`, `estado_semaforo`, `fuente_horas`, `tipo_reporte_hse`, `formato_reporte`, `tipo_alerta_indicador` --- ## 2. DISCREPANCIAS DETECTADAS ### 2.1 MASTER_INVENTORY.yml | Campo | Valor Actual | Valor Correcto | Accion | |-------|--------------|----------------|--------| | `metricas.database.schemas` | 6 | 7 | Actualizar a 7 | | `metricas.database.tablas` | 57 | 65 | Actualizar a 65 | | `metricas.database.enums` | 22 | 89 | Actualizar a 89 | | `schemas.hse.estado` | "pendiente" | "implementado" | Actualizar | | `schemas.hse.tablas` | 0 | 58 | Actualizar a 58 | | `schemas.hse.ddl` | "pendiente" | "03-hse-schema-ddl.sql" | Actualizar | | `modulos_fase_3.MAA-017.tablas` | 11 items | 58 items | Actualizar lista completa | ### 2.2 DATABASE_INVENTORY.yml | Campo | Valor Actual | Valor Correcto | Accion | |-------|--------------|----------------|--------| | `resumen.schemas` | 6 | 7 | Actualizar | | `resumen.tablas` | 57 | 65 | Actualizar | | `resumen.enums` | 22 | 89 | Actualizar | | Schema `hse` | No existe | Agregar seccion completa | FALTA | | Tablas HSE | 0 | 58 | Agregar todas | ### 2.3 Tablas Faltantes en Inventarios Las siguientes 58 tablas HSE + 2 core + 2 construction + 3 hr = 65 tablas existen en DDL pero el inventario solo declara 57: **FALTANTES:** - Todas las 58 tablas del schema `hse` - Las 2 tablas minimas de `core` (tenants, users) - La tabla `hr.puestos` - La tabla `hr.employee_fraccionamientos` - Las tablas de `construction` tienen nombres distintos en inventario vs DDL: - Inventario: `fraccionamientos` (sin proyecto_id directo) - DDL: `proyectos` + `fraccionamientos` (con proyecto_id) --- ## 3. TRAZABILIDAD RF -> DDL ### 3.1 Modulo MAA-017 Seguridad HSE | RF | Nombre | Tablas DDL | Trazabilidad | |----|--------|------------|--------------| | RF-MAA017-001 | Gestion de Incidentes | 5 tablas | COMPLETA | | RF-MAA017-002 | Control de Capacitaciones | 6 tablas | COMPLETA | | RF-MAA017-003 | Inspecciones de Seguridad | 7 tablas | COMPLETA | | RF-MAA017-004 | Control de EPP | 7 tablas | COMPLETA | | RF-MAA017-005 | Cumplimiento STPS | 11 tablas | COMPLETA | | RF-MAA017-006 | Gestion Ambiental | 9 tablas | COMPLETA | | RF-MAA017-007 | Permisos de Trabajo | 8 tablas | COMPLETA | | RF-MAA017-008 | Indicadores HSE | 7 tablas | COMPLETA | **Total:** 8 RFs -> 58 tablas + 67 ENUMs ### 3.2 Otros Modulos (Inventariados pero NO implementados en DDL) | Modulo | Tablas Inventario | Tablas DDL | Estado | |--------|-------------------|------------|--------| | MAI-002 | 8 | 2 (proyectos, fraccionamientos) | PARCIAL | | MAI-003 | 3 | 0 | SIN DDL | | MAI-004 | 9 | 0 | SIN DDL | | MAI-005 | 5 | 0 | SIN DDL | | MAI-007 | 8 | 3 (employees, puestos, employee_fracc) | PARCIAL | | MAI-008 | 8 | 0 | SIN DDL | | MAI-009 | 5 | 0 | SIN DDL | | MAI-010 | 1 | 0 | SIN DDL | | MAI-011 | 7 | 0 | SIN DDL | | MAI-012 | 3 | 0 | SIN DDL | --- ## 4. POLITICA DE CARGA LIMPIA ### 4.1 Cumplimiento | Check | Estado | Detalle | |-------|--------|---------| | No carpeta migrations/ | OK | No existe | | No archivos fix-*.sql | OK | No existen | | No archivos migration-*.sql | OK | No existen | | Existe drop-and-recreate-database.sh | OK | Existe y es ejecutable | | DDL en schemas/ | OK | 3 archivos SQL | | Archivo init existe | OK | init-scripts/01-init-database.sql | **Resultado:** POLITICA CUMPLIDA (6/6 checks) ### 4.2 Archivos DDL Actuales ``` database/ ├── init-scripts/ │ └── 01-init-database.sql # Extensiones, schemas base, funciones core ├── schemas/ │ ├── 01-construction-schema-ddl.sql # proyectos, fraccionamientos │ ├── 02-hr-schema-ddl.sql # employees, puestos, employee_fracc │ └── 03-hse-schema-ddl.sql # 58 tablas HSE ├── drop-and-recreate-database.sh # Script carga limpia └── validate-clean-load-policy.sh # Validador de politica ``` --- ## 5. ACCIONES REQUERIDAS ### 5.1 Prioridad ALTA (Inventarios Desactualizados) 1. **Actualizar MASTER_INVENTORY.yml:** - Cambiar `schemas.hse.estado` de "pendiente" a "implementado" - Cambiar `schemas.hse.tablas` de 0 a 58 - Agregar `schemas.hse.ddl: 03-hse-schema-ddl.sql` - Actualizar conteos globales 2. **Actualizar DATABASE_INVENTORY.yml:** - Agregar seccion completa para schema `hse` con 58 tablas - Agregar 67 ENUMs de HSE - Actualizar conteos en resumen ### 5.2 Prioridad MEDIA (Completar DDL Faltante) Los siguientes schemas tienen tablas inventariadas pero NO implementadas: | Schema | Tablas Faltantes | DDL Requerido | |--------|------------------|---------------| | construction | 22 tablas | construction-schema-ddl.sql (expandir) | | estimates | 8 tablas | estimates-schema-ddl.sql (crear) | | infonavit | 8 tablas | infonavit-schema-ddl.sql (crear) | | hr | 5 tablas | hr-schema-ddl.sql (expandir) | | inventory | 4 tablas | inventory-ext-schema-ddl.sql (crear) | | purchase | 5 tablas | purchase-ext-schema-ddl.sql (crear) | ### 5.3 Prioridad BAJA (Documentacion) - Crear TRACEABILITY.yml por modulo cuando se implemente - Actualizar README de database/ con estructura actual --- ## 6. RESUMEN FINAL ### Estado Actual ``` DDL Implementado: ├── core: 2 tablas (tenants, users) ├── construction: 2 tablas ├── hr: 3 tablas ├── hse: 58 tablas + 67 ENUMs ← IMPLEMENTADO (inventario dice "pendiente") ├── estimates: schema vacio ├── infonavit: schema vacio ├── inventory: schema vacio └── purchase: schema vacio Total: 65 tablas, 89 ENUMs ``` ### Inventarios Declaran ``` MASTER + DATABASE_INVENTORY: ├── construction: 24 tablas (22 sin DDL) ├── estimates: 8 tablas (sin DDL) ├── infonavit: 8 tablas (sin DDL) ├── hr: 8 tablas (5 sin DDL) ├── inventory: 4 tablas (sin DDL) ├── purchase: 5 tablas (sin DDL) └── hse: "pendiente" (INCORRECTO - tiene 58 tablas) Total declarado: 57 tablas, 22 ENUMs ``` ### Gap Analysis | Categoria | Inventario | DDL Real | Diferencia | |-----------|------------|----------|------------| | Tablas | 57 | 65 | +8 (HSE +58, otros -50) | | ENUMs | 22 | 89 | +67 (todos HSE) | | Schemas implementados | 6 | 7 | +1 (hse) | --- **Documento generado automaticamente como parte de la validacion de Sprint 0.**