Ir al contenido principal

REPORTE DOCUMENTO CHOFERES

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

1) Nombre del reporte

  • Nombre: Reporte Documentos Choferes

  • Código / Alias: report_documentos_Conductores

  • Responsable:  Equipo de Reportes Cloud

  • Propósito (1 línea):


2) Alcance temporal

  • Campo(s) de fecha utilizados:

    • first_date

    • second_date

  • Tipo de rango (diario / mensual / personalizado):

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

  • Zona horaria: la del servidor


3) Origen de datos (tablas/APIs)

  • Conexión / Base: TRANSPORTES

  • Tabla / Recurso: tabDocumentos de Conductores

  • Alias (si aplica): No aplica

  • Campos utilizados (clave → descripción):

    • name → Identificador de registro

    • docstatus → Estado del documento en ERPNext

    • id_conductor → Identificador del conductor

    • nombre_completo → Nombre completo del conductor

    • dni → Documento nacional de identidad del conductor

    • puesto → Puesto del conductor

    • estado → Estado general del documento del conductor

    • fecha_emision_documento → Fecha de emisión del documento

    • fecha_vencimiento_documento → Fecha de vencimiento del documento

    • fecha_emision_licencia → Fecha de emisión de la licencia

    • fecha_vencimiento_licencia → Fecha de vencimiento de la licencia

    • creation → Fecha y hora de creación del registro (campo del sistema ERPNext)

  • Condiciones (WHERE) aplicadas: (creation <= fecha_end AND creation >= fecha_inicio) → Filtra registros cuya fecha de creación esté entre la fecha de inicio y la fecha fin.

  • Tipo de unión con otras fuentes (JOIN y llave):  No aplica

  • Observaciones (ej. particiones, índices): 

    • En las tablas dinámicas creadas (report_documentos_Conductores_YYYY_MM) se agregan índices:

      • status

      • created_date



4) Filtros globales del reporte

  • Inclusiones (must-have): Documentos con creation dentro del rango mensual

  • Exclusiones (reglas de descarte): Implícito: fuera de rango temporal

  • Reglas por estado / habilitado: Se insertan con status = 1 por defecto

  • Parámetros externos (si el usuario puede filtrarlo): Si aplica first_date, second_date (rango de fechas)


5) Transformaciones y Reglas de negocio

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

    • Nombre de tabla destino dinámico: "report_documentos_Conductores_" . date("Y_m", …)

  • Mapeos de estado:

    • status = 1 = exitoso

    • status = 0 = error

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

    • Verifica existencia de tabla con verifyExistTable

    • Si no existe → se crea + índices

    • Si existe → se trunca

  • Reglas condicionales (si X entonces Y): Si creación de tabla falla → registro en error_reports


 

6) Estructura de salida

  • Tabla/archivo destino: report_documentos_Conductores_YYYY_MM (dinámica por mes)

  • Particionado / sufijo: Particionado por Año_Mes

  • Clave(s) primaria(s) o únicas: id (AUTO_INCREMENT PRIMARY KEY)

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

    • id → INT → PK autoincremental

    • name → VARCHAR(250) → ID del documento

    • docstatus → VARCHAR(250) → Estado ERPNext

    • id_conductor → VARCHAR(250) → ID chofer

    • nombre_completo → VARCHAR(250) → Nombre chofer

    • dni → VARCHAR(250) → DNI chofer

    • puesto → VARCHAR(250) → Puesto del chofer

    • estado → VARCHAR(250) → Estado del documento/licencia

    • fecha_emision_documento → VARCHAR(250) → Fecha emisión documento

    • fecha_vencimiento_documento → VARCHAR(250) → Fecha vencimiento documento

    • fecha_emision_licencia → VARCHAR(250) → Fecha emisión licencia

    • fecha_vencimiento_licencia → VARCHAR(250) → Fecha vencimiento licencia

    • created_date → DATETIME → Fecha de inserción

    • status → tinyint(4) → Estado lógico (1 válido, 0 error)

  • Ordenamiento por defecto: No explícito (depende de inserción, se recomienda created_date DESC)


7) Frecuencia y operación 

  • Frecuencia de actualización: PENDIENTE (Esperando info de Eduardo)

  • Ventana que recalcula (días/meses): hasta 3 meses previos

  • Tamaño de lote / paginado (chunking): Inserciones en chunks de 900 registros

  • Tolerancia a fallos / reintentos: Manejo con try/catch, rollback si falla, inserta en error_reports

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


8) Calidad y controles

  • Validaciones previas/post:

    • verifyExistTable asegura estructura

    • Validación de creación/alteración exitosa

  • Controles de duplicados: No explícitos (solo truncado previo asegura no duplicar mes)

  • Métricas de completitud (qué se monitorea): Validación en emp_reportes_validation con campo status

9) Dependencias externas

  • APIs / servicios y endpoints:

    • API: APITRANSPORTES 

    • Servicio: Servicio DocumentoChoferes

    • Endpoint:  "method/send-query-database"

  • Autenticación / headers: No aplica

  • Mapeos y contratos de datos:

    • Entrada: filtros fecha_inicio, fecha_end

    • Salida: JSON con lista de documentos de conductores


10) Historial de cambios

2025-09-30 11:03 - Elian Franco Arroyo Rodas - Documentación inicial