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