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
No hay comentarios para mostrar
No hay comentarios para mostrar