REPORTE MATRIZ CONDICIONES
Fuente: /var/www/html/qareportes/app/Http/Controllers/Cloud/ReportController.php
1) Nombre del reporte
-
Nombre: Reporte Matriz Condiciones
-
Código / Alias: report_matriz_condiciones_
-
Responsable: Equipo de Reportes Cloud
-
Propósito (1 línea):
2) Alcance temporal
-
Campo(s) de fecha utilizados:
-
first_date, second_date (calculados con utils->range_days)
-
fecha_de_inspeccion (en consulta a ERP).
-
fecha_limite_entrega (normalizada y desglosada en mes/año).
-
Tipo de rango (diario / mensual / personalizado): Mensual (últimos 8 meses, retroactivos).
-
Inclusión de horas (sí/no).: Sí, en created_date (usa DATETIME). En filtros principales, no.
-
Zona horaria: La del servidor
3) Origen de datos (tablas/APIs)
3.1 Conexión / Base: CAPACITACION
-
Tabla / Recurso: tabMatriz de Condiciones
-
Alias (si aplica): cnd
-
Campos utilizados (clave → descripción):
-
cnd.agencia → Agencia
-
cnd.id_sucursal → Código
-
cnd.division_nacional → Zona
-
cnd.nombre_completo → Responsable
-
Condiciones (WHERE) aplicadas:
-
fecha_de_inspeccion >= fecha_ini
-
fecha_de_inspeccion <= fecha_fin
-
Tipo de unión con otras fuentes (JOIN y llave): LEFT JOIN tabTabla Matriz de Condiciones mtr ON cnd.name = mtr.parent
-
Observaciones (ej. particiones, índices):
-
Se calcula mes_entrega y anio_entrega a partir de la fecha límite.
-
Se marca campo calculado medidas_correctivas = "SI" cuando al menos una acción a tomar está llena, caso contrario "NO".
-
Índices añadidos en tablas dinámicas: status, created_date.
3.2 Conexión / Base: CAPACITACION
-
Tabla / Recurso: tabTabla Matriz de Condiciones
-
Alias (si aplica): mtr
-
Campos utilizados (clave → descripción):
-
mtr.tipo → Tipo de peligro
-
mtr.peligro → Tipo de riesgo
-
mtr.area → Zona de observación
-
mtr.condicion_matriz → Condición de observación
-
mtr.nivel_de_avance → Nivel de avance
-
mtr.riesgo → Riesgo
-
mtr.acciones_a_tomar_1 → Acción a tomar 1
-
mtr.acciones_a_tomar_2 → Acción a tomar 2
-
mtr.acciones_a_tomar_3 → Acción a tomar 3
-
mtr.fecha_limite → Fecha límite de entrega
-
Condiciones (WHERE) aplicadas: Se heredan del filtro general aplicado en cnd.fecha_de_inspeccion (rango de fechas).
-
Tipo de unión con otras fuentes (JOIN y llave): LEFT JOIN con cnd (llave: cnd.name = mtr.parent).
-
Observaciones (ej. particiones, índices):
-
El reporte construye tablas dinámicas mensuales report_matriz_condiciones_YYYY_MM.
-
Se agrega truncado de tabla en recreaciones (TRUNCATE).
-
Los índices aplicados en la creación de tabla: status, created_date.
4) Filtros globales del reporte
-
Inclusiones (must-have): Registros dentro del rango de fechas válidas.
-
Exclusiones (reglas de descarte): Si la tabla no se crea correctamente → va a error_reports
-
Reglas por estado / habilitado: Campo status (1 = OK, 0 = error).
-
Parámetros externos (si el usuario puede filtrarlo): fecha_inicio, fecha_fin (en getMatrizCondiciones).
5) Transformaciones y Reglas de negocio
-
Derivaciones de campos (cómo se calculan):
-
mes_entrega → mes textual desde fecha_limite_entrega.
-
anio_entrega → año de fecha_limite_entrega.
-
Mapeos de estado:
-
medidas_correctivas = 'SI' si alguna acción (acciones_a_tomar_1/2/3) no está vacía; caso contrario 'NO'.
-
Reglas de validación (p.ej., sólo registros validados):
-
Inserta en emp_reportes_validation cada corrida.
-
Verifica existencia de tabla con verifyExistTable.
-
Reglas condicionales (si X entonces Y):
-
Si tabla no existe → se crea.
-
Si ya existe → se trunca.
-
Si falla creación → registra error.
6) Estructura de salida
-
Tabla/archivo destino: report_matriz_condiciones_YYYY_MM
-
Particionado / sufijo: Por año/mes (YYYY_MM)
-
Clave(s) primaria(s) o únicas: id AUTO_INCREMENT
-
Columnas del reporte (nombre → tipo → descripción):
-
id → INT PRIMARY KEY → Identificador único del registro
-
agencia → VARCHAR → Nombre de la agencia
-
codigo → VARCHAR → Código asociado
-
zona → VARCHAR → Zona geográfica
-
responsable → VARCHAR → Responsable asignado
-
tipo_de_peligro → VARCHAR → Tipo de peligro identificado
-
tipo_de_riesgo → VARCHAR → Tipo de riesgo asociado
-
zona_observacion → VARCHAR → Zona donde se realizó la observación
-
condicion_de_observacion → VARCHAR → Condición observada
-
nivel_de_avance → VARCHAR → Nivel de avance en la corrección
-
riesgo → VARCHAR → Riesgo identificado
-
acciones_a_tomar_1 → VARCHAR → Primera acción correctiva a tomar
-
acciones_a_tomar_2 → VARCHAR → Segunda acción correctiva a tomar
-
acciones_a_tomar_3 → VARCHAR → Tercera acción correctiva a tomar
-
fecha_limite_entrega → DATE → Fecha límite de entrega de acciones
-
medidas_correctivas → VARCHAR → Medidas correctivas propuestas
-
mes_entrega → VARCHAR → Mes de la entrega
-
anio_entrega → VARCHAR → Año de la entrega
-
created_date → DATETIME → Fecha de creación del registro
-
status → TINYINT → Estado del registro (1 = activo, 0 = inactivo)
-
Ordenamiento por defecto: No definido en código.
7) Frecuencia y operación
-
Frecuencia de actualización: PENDIENTE (Esperando info de Eduardo)
-
Ventana que recalcula (días/meses): 8 meses atrás.
-
Tamaño de lote / paginado (chunking): 900 registros por bloque (array_chunk).
-
Tolerancia a fallos / reintentos: Si falla API → guarda status 0 en emp_reportes_validation.
-
Tiempos de ejecución esperados: PENDIENTE (Esperando info de Eduardo)
8) Calidad y controles
-
Validaciones previas/post: Validación de tabla creada (verifyExistTable).
-
Controles de duplicados: Truncado de tabla al recrear evita duplicados.
-
Métricas de completitud (qué se monitorea): Registro en emp_reportes_validation (incluye status y fechas).
9) Dependencias externas
-
APIs / servicios y endpoints:
-
APIS:
-
RECURSOS_HUMANOS/api/matriz_condiciones/{first_date}/{second_date}
-
APICAPACITACION/method/send-query-database
-
Autenticación / headers:
-
"Accept: application/json", "Content-Type: application/json"
-
Mapeos y contratos de datos: JSON devuelto por APIs, convertido a registros de tablas.
10) Historial de cambios
2025-10-01 13:35 - Elian Franco Arroyo Rodas - Documentación inicial
No hay comentarios para mostrar
No hay comentarios para mostrar