Ir al contenido principal

REPORTE INSPECCIONES

Fuente:  /var/www/html/qareportes/app/Http/Controllers/Cloud/ReportController.php

1) Nombre del reporte

  • Nombre: Reporte de Inspecciones

  • Código / Alias:  report_inspecciones_

  • Responsable:  Equipo de Reportes Cloud

  • Propósito (1 línea):


2) Alcance temporal

  • Campo(s) de fecha utilizados: 

    • fecha_guardar (ejecución de inspección)

    • creation (fecha de registro en ERP)

  • Tipo de rango (diario / mensual / personalizado): mensual (primer mes hasta último mes dinámico).

  • Inclusión de horas (sí/no): Sí → [00:00:00 – 23:59:59]

  • Zona horaria: La del servidor


3) Origen de datos (tablas/APIs)

3.1 Conexión / Base: CAPACITACION

  • Tabla / Recurso: tabBranch

  • Alias (si aplica): brn

  • Campos utilizados (clave → descripción):

    • brn.name → Identificador de la sucursal

    • brn.ideentificador → Código de la sucursal

    • brn.zona_nacional → Zona nacional

  • Condiciones (WHERE) aplicadas: ins.acceso = %(acceso)s

  • Tipo de unión con otras fuentes (JOIN y llave):  LEFT JOIN tabInspeccion SSOMA ins ON brn.name = ins.parent

  • Observaciones (ej. particiones, índices): Se filtra con filters = {"acceso": 1} en la API

3.2 Conexión / Base: CAPACITACION

  • Tabla / Recurso: tabInspeccion de Primeros Auxilios

  • Alias (si aplica): dct

  • Campos utilizados (clave → descripción):

    • dct.inspeccionado_por → Responsable de la inspección

    • dct.nombre_del_responsable → Nombre del responsable

    • dct.fecha → Fecha inspección (se usa como fecha_guardar)

    • dct.agencia → Agencia vinculada

    • dct.codigo → Registro

    • min.correcto → Estado correcto/incorrecto

    • dct.name → Identificador único

    • dct.creation → Fecha de creación


  • dct.week → Semana

  • dct.realized → Estado de ejecución


  • Condiciones (WHERE) aplicadas: dct.creation >= %(fecha_ini)s and dct.creation<= %(fecha_fin)s


  • Tipo de unión con otras fuentes (JOIN y llave): LEFT JOIN tabTabla de Resumen min ON dct.name = min.parent


  • Observaciones (ej. particiones, índices): 

    • Se construye campo mes = 01-mm-YYYY.

    • Se normaliza tipo_de_inspeccion = "Inspeccion de Primeros Auxilios"


3.3 Conexión / Base: CAPACITACION

  • Tabla / Recurso: tabInspeccion Equipos de Emergencia 

  • Alias (si aplica): dct

  • Campos utilizados (clave → descripción):

    • dct.inspeccionado_por → Responsable de la inspección

    • dct.nombre_del_responsable → Nombre del responsable

    • dct.fecha → Fecha inspección (se usa como fecha_guardar)

    • dct.agencia → Agencia vinculada

    • dct.codigo → Registro

    • min.correcto → Estado correcto/incorrecto

    • dct.name → Identificador único

    • dct.creation → Fecha de creación

    • dct.week → Semana

    • dct.realized → Estado de ejecución


  • Condiciones (WHERE): dct.creation >= %(fecha_ini)s and dct.creation<= %(fecha_fin)s


  • Tipo de unión con otras fuentes (JOIN y llave): LEFT JOIN tabTabla de Resumen min ON dct.name = min.parent


  • Observaciones (ej. particiones, índices):  tipo_de_inspeccion = "Inspeccion Equipos de Emergencia".



3.4 Conexión / Base: CAPACITACION

  • Tabla / Recurso: tabInspeccion de Puerta Corrediza Electrica

  • Alias (si aplica): dct

  • Campos utilizados (clave → descripción):

    • dct.inspector → Responsable de la inspección

    • dct.nombre_del_responsable → Nombre del responsable

    • dct.fecha → Fecha inspección (se usa como fecha_guardar)

    • dct.agencia → Agencia vinculada

    • dct.codigo → Registro

    • min.correcto → Estado correcto/incorrecto



  • Condiciones (WHERE): dct.creation >= %(fecha_ini)s and dct.creation<= %(fecha_fin)s


  • Tipo de unión con otras fuentes (JOIN y llave): LEFT JOIN tabIInspeccion de Puerta Corrediza Electrica min ON dct.name = min.parent


  • Observaciones (ej. particiones, índices):  tipo_de_inspeccion = "Inspeccion de Puerta Corrediza Electrica".



3.5 Conexión / Base: CAPACITACION

  • Tabla / Recurso: tabInspeccion de Apilador Electrico

  • Alias (si aplica): dct

  • Campos utilizados (clave → descripción):

    • dct.inspector → Responsable de la inspección

    • dct.nombre_del_responsable → Nombre del responsable

    • dct.fecha → Fecha inspección (se usa como fecha_guardar)

    • dct.agencia → Agencia vinculada

    • dct.codigo → Registro

    • min.correcto → Estado correcto/incorrecto

  • Condiciones (WHERE): dct.creation >= %(fecha_ini)s and dct.creation<= %(fecha_fin)s


  • Tipo de unión con otras fuentes (JOIN y llave): LEFT JOIN tabInspeccion de Apilador Electrico min ON dct.name = min.parent


  • Observaciones (ej. particiones, índices):  tipo_de_inspeccion = "Inspeccion de Apilador Electrico".



3.6 Conexión / Base: CAPACITACION

  • Tabla / Recurso: tabInspeccion de Apilador Hidraulico Manual

  • Alias (si aplica): dct

  • Campos utilizados (clave → descripción):

    • dct.inspeccionado  → Responsable

    • dct.nombre_del_responsable → Responsable asignado

    • dct.fecha_guardar → Fecha de inspección

    • dct.agencia → Agencia

    • dct.codigo  → Registro

    • min.correcto → Estado correcto/incorrecto

  • Condiciones (WHERE): dct.creation >= %(fecha_ini)s and dct.creation<= %(fecha_fin)s


  • Tipo de unión con otras fuentes (JOIN y llave): LEFT JOIN tabInspeccion de Apilador Hidraulico Manual min ON dct.name = min.parent


  • Observaciones (ej. particiones, índices):  tipo_de_inspeccion = "tabInspeccion de Apilador Hidraulico Manual".


3.7 Conexión / Base: CAPACITACION

  • Tabla / Recurso: tabInspecciones de Extintores

  • Alias (si aplica): dct

  • Campos utilizados (clave → descripción):

    • dct.inspeccionado  → Responsable

    • dct.nombre_del_responsable → Responsable asignado

    • dct.fecha_guardar → Fecha de inspección

    • dct.agencia → Agencia

    • dct.codigo  → Registro

    • min.correcto → Estado correcto/incorrecto

  • Condiciones (WHERE): dct.creation >= %(fecha_ini)s and dct.creation<= %(fecha_fin)s


  • Tipo de unión con otras fuentes (JOIN y llave): LEFT JOIN tabInspecciones de Extintores min ON dct.name = min.parent


  • Observaciones (ej. particiones, índices):  tipo_de_inspeccion = "tabInspecciones de Extintores".


3.8 Conexión / Base: CAPACITACION

  • Tabla / Recurso: tabInspeccion  de Orden y Limpieza

  • Alias (si aplica): dct

  • Campos utilizados (clave → descripción):

    • dct.nombre_del_inspector  → Responsable

    • dct.data_72 → Responsable asignado

    • dct.guardar_fecha → Fecha de inspección

    • dct.agencia → Agencia

    • dct.codigo  → Registro

    • min.correcto → Estado correcto/incorrecto

  • Condiciones (WHERE): dct.creation >= %(fecha_ini)s and dct.creation<= %(fecha_fin)s


  • Tipo de unión con otras fuentes (JOIN y llave): LEFT JOIN tabInspeccion  de Orden y Limpieza min ON dct.name = min.parent


  • Observaciones (ej. particiones, índices):  tipo_de_inspeccion = "tabInspeccion  de Orden y Limpieza".




3.9 Conexión / Base: CAPACITACION

  • Tabla / Recurso: tabInspeccion del Grupo Electrogeno

  • Alias (si aplica): dct

  • Campos utilizados (clave → descripción):

    • dct.inspector  → Responsable

    • dct.nombre_del_responsable → Responsable asignado

    • dct.fecha → Fecha de inspección

    • dct.agencia → Agencia

    • dct.codigo  → Registro

    • min.correcto → Estado correcto/incorrecto

  • Condiciones (WHERE): dct.creation >= %(fecha_ini)s and dct.creation<= %(fecha_fin)s


  • Tipo de unión con otras fuentes (JOIN y llave): LEFT JOIN tabInspeccion del Grupo Electrogeno min ON dct.name = min.parent


  • Observaciones (ej. particiones, índices):  tipo_de_inspeccion = "tabInspeccion del Grupo Electrogeno".


3.10 Conexión / Base: CAPACITACION

  • Tabla / Recurso: tabUniformes y Epp

  • Alias (si aplica): dct

  • Campos utilizados (clave → descripción):

    • dct.inspeccionado_por → Responsable

    • dct.data_12 → Responsable asignado

    • dct.fecha → Fecha de inspección

    • dct.agencia → Agencia

    • dct.codigo  → Registro

    • min.correcto → Estado correcto/incorrecto

  • Condiciones (WHERE): dct.creation >= %(fecha_ini)s and dct.creation<= %(fecha_fin)s


  • Tipo de unión con otras fuentes (JOIN y llave): LEFT JOIN tabUniformes y Epp min ON dct.name = min.parent


  • Observaciones (ej. particiones, índices):  tipo_de_inspeccion = "tabUniformes y Epp".

 

3.11 Conexión / Base: CAPACITACION

  • Tabla / Recurso: tabInspeccion Carritos

  • Alias (si aplica): dct

  • Campos utilizados (clave → descripción):

    • dct.inspector → Responsable

    • dct.nombre_responsable → Responsable asignado

    • dct.fecha → Fecha de inspección

    • dct.agencia → Agencia

    • dct.codigo  → Registro

    • min.correcto → Estado correcto/incorrecto

  • Condiciones (WHERE): dct.creation >= %(fecha_ini)s and dct.creation<= %(fecha_fin)s


  • Tipo de unión con otras fuentes (JOIN y llave): LEFT JOIN tabInspeccion Carritos min ON dct.name = min.parent


  • Observaciones (ej. particiones, índices):  tipo_de_inspeccion = "tabInspeccion Carritos”


3.12 Conexión / Base: CAPACITACION

  • Tabla / Recurso: tabInspeccion de Estocas

  • Alias (si aplica): dct

  • Campos utilizados (clave → descripción):

    • dct.inspector → Responsable

    • dct.nombre_responsable → Responsable asignado

    • dct.fecha → Fecha de inspección

    • dct.agencia → Agencia

    • dct.codigo  → Registro

    • min.correcto → Estado correcto/incorrecto

  • Condiciones (WHERE): dct.creation >= %(fecha_ini)s and dct.creation<= %(fecha_fin)s


  • Tipo de unión con otras fuentes (JOIN y llave): LEFT JOIN tabInspeccion de Estocas  min ON dct.name = min.parent


  • Observaciones (ej. particiones, índices):  tipo_de_inspeccion = "tabInspeccion de Estocas”


 

3.13 Conexión / Base: CAPACITACION

  • Tabla / Recurso: tabInspeccion de Montacargas

  • Alias (si aplica): dct

  • Campos utilizados (clave → descripción):

    • dct.inspector → Responsable

    • dct.nombre_responsable → Responsable asignado

    • dct.fecha → Fecha de inspección

    • dct.agencia → Agencia

    • dct.codigo  → Registro

    • min.correcto → Estado correcto/incorrecto

  • Condiciones (WHERE): dct.creation >= %(fecha_ini)s and dct.creation<= %(fecha_fin)s


  • Tipo de unión con otras fuentes (JOIN y llave): LEFT JOIN tabInspeccion de Montacargas  min ON dct.name = min.parent


  • Observaciones (ej. particiones, índices):  tipo_de_inspeccion = "tabInspeccion de Montacargas”



3.14 Conexión / Base: CAPACITACION

  • Tabla / Recurso: tabInspeccion de Gabinete Contra Incendio

  • Alias (si aplica): dct

  • Campos utilizados (clave → descripción):

    • dct.inspector → Responsable

    • dct.nombre_responsable → Responsable asignado

    • dct.fecha → Fecha de inspección

    • dct.agencia → Agencia

    • dct.codigo  → Registro

    • min.correcto → Estado correcto/incorrecto

  • Condiciones (WHERE): dct.creation >= %(fecha_ini)s and dct.creation<= %(fecha_fin)s


  • Tipo de unión con otras fuentes (JOIN y llave): LEFT JOIN tabInspeccion de Gabinete Contra Incendio  min ON dct.name = min.parent


  • Observaciones (ej. particiones, índices):  tipo_de_inspeccion = "tabInspeccion de Gabinete Contra Incendio”


4) Filtros globales del reporte

  • Inclusiones (must-have): 

    • acceso = 1 (Branch).

    • Fechas por rango.

  • Exclusiones (reglas de descarte):  registros sin realizado → marcados como VENCIDO o POR VENCER.

  • Reglas por estado / habilitado: 

    • status = 1 para válidos.

    • status = 0 en validación de errores.

  • Parámetros externos (si el usuario puede filtrarlo): 

    • Fechas (fecha_inicio, fecha_fin).

    • Doctype y tabla resumen (dinámicos).

  • IMPORTANTE: Si en el reporte aparecen columnas vacías y en la columna de inspecciones indica “NO” no significa que está fallando el reporte sino que para esa fecha no existe registro de inspección.

    Linea de codigo: 8539
    RUTA: /var/www/html/horario_salida/app/Http/Controllers/ERPNextController.php


5) Transformaciones y Reglas de negocio

  • Derivaciones de campos (cómo se calculan):

    • mes = 01-MM-YYYY desde creation.

    • tipo_de_inspeccion = nombre de doctype.

    • inspeccion_realizada = SI/NO según existencia.

    • cumplimiento_inspeccion = 100% o 0%.

    • semana_ejecutada = calculada desde fecha_guardar.

    • porcentaje_levantamiento_observacion_anterior = observaciones_levantas / levantamiento_observacion_anterior


  • Mapeos de estado: realizado = null/"" → POR VENCER o VENCIDO según semana vs día actual.

  • Reglas de validación (p.ej., sólo registros validados):

    • Creación de tabla mensual con índices status, created_date.

    • Inserción en emp_reportes_validation (control de ejecución).

  • Reglas condicionales (si X entonces Y):

    • Si no existe tabla → crear.

    • Si existe → truncar y reinsertar.

    • Si error → insertar en error_reports.


6) Estructura de salida

  • Tabla/archivo destino: report_inspecciones_YYYY_MM

  • Particionado / sufijo: por mes (sufijo YYYY_MM)

  • Clave(s) primaria(s) o únicas: id (auto_increment).

  • Columnas del reporte (nombre → tipo → descripción):

    • id → INT AUTO_INCREMENT PRIMARY KEY → Identificador único de la fila

    • agencia → VARCHAR(255) → Nombre de la agencia

    • name → VARCHAR(255) → Identificador del registro

    • codigo → VARCHAR(255) → Código asociado

    • zona → VARCHAR(255) → Zona geográfica

    • responsable → VARCHAR(255) → Código o identificador del responsable

    • nombre_del_responsable → VARCHAR(255) → Nombre completo del responsable

    • fecha_guardar → VARCHAR(255) → Fecha registrada para guardar información

    • registro → VARCHAR(255) → Registro asociado

    • correcto → VARCHAR(10) → Indicador de validez o corrección

    • parentfield → VARCHAR(255) → Campo padre asociado en la estructura

    • creation → VARCHAR(255) → Fecha de creación del registro

    • week → VARCHAR(255) → Semana registrada

    • realizado → VARCHAR(255) → Indicador de ejecución realizada

    • mes → VARCHAR(255) → Mes registrado

    • tipo_de_inspeccion → VARCHAR(255) → Tipo de inspección

    • inspeccion_realizada → VARCHAR(255) → Resultado de la inspección realizada

    • cumplimiento_inspeccion → VARCHAR(255) → Nivel de cumplimiento de la inspección

    • semana_programada_inspeccion → VARCHAR(255) → Semana programada de la inspección

    • semana_ejecutada → VARCHAR(255) → Semana en la que se ejecutó la inspección

    • observaciones_levantas → VARCHAR(10) → Indicador de observaciones levantadas

    • levantamiento_observacion_anterior → VARCHAR(10) → Indicador de levantamiento de observaciones anteriores

    • fecha_de_ejecucion → VARCHAR(255) → Fecha de ejecución de la inspección

    • vencimiento → VARCHAR(255) → Fecha de vencimiento

    • porcentaje_levantamiento_observacion_anterior → VARCHAR(255) → Porcentaje de levantamiento de observaciones anteriores

    • created_date → DATETIME DEFAULT CURRENT_TIMESTAMP → Fecha de inserción en el datawarehouse

    • status → TINYINT(4) DEFAULT '1' → Estado del registro (1 = activo, 0 = inactivo)


  • Ordenamiento por defecto:  no explícito; implícito por created_date.


7) Frecuencia y operación

  • Frecuencia de actualización: mensual (últimos 2–3 meses según lógica)

  • Ventana que recalcula (días/meses): 2 meses atrás hasta mes actual.

  • Tamaño de lote / paginado (chunking): comentado (array_chunk 900).

  • Tolerancia a fallos / reintentos:  inserción en emp_reportes_validation con status=0.

  • Tiempos de ejecución esperados: PENDIENTE (Esperando info de Eduardo)



8) Calidad y controles

  • Validaciones previas/post: existencia de tabla (verifyExistTable).

    • Post: índices en tabla (status, created_date).

  • Controles de duplicados: agrupación por name (última inspección prevalece)

  • Métricas de completitud (qué se monitorea):  validación en emp_reportes_validation


9) Dependencias externas

  • APIs / servicios y endpoints:

    • Apis: 

      • RECURSOS_HUMANOS/api/getInspecciones/{fecha_ini}/{fecha_fin}.

      • APICAPACITACION/method/send-query-database (ERP)


  • Autenticación / headers: Headers fijos → Accept: application/json, Content-Type: application/json

  • Mapeos y contratos de datos: JSON con inspecciones por agencia, zona, tipo de inspección


10) Historial de cambios

2025-10-01 11:53 - Elian Franco Arroyo Rodas - Documentación inicial