Ir al contenido principal

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