REPORTE FLOTA
Fuente: /var/www/html/qareportes/app/Http/Controllers/Cloud/ReportController.php
1) Nombre del reporte
-
Nombre: Reporte de Flota
-
Código / Alias: report_flota
-
Responsable: Equipo de Reportes Cloud
-
Propósito (1 línea):
2) Alcance temporal
-
Campo(s) de fecha utilizados:
-
created_date (fecha de generación del registro)
-
first_date, second_date (fechas de validación del reporte)
-
Tipo de rango (diario / mensual / personalizado): Diario (usa date("Y-m-d") para ambos límites)
-
Inclusión de horas (sí/no).: Sí → Y-m-d H:i:s (rango implícito [00:00:00 – 23:59:59])
-
Zona horaria: La del servidor
3) Origen de datos (tablas/APIs)
3.1 Conexión / Base: Empresarial
-
Tabla / Recurso: emp_carguero_new
-
Alias (si aplica): car
-
Campos utilizados (clave → descripción):
-
car_placa → Placa del vehículo
-
car_codigo → Código interno del carguero
-
car_telefono → Teléfono asociado al carguero
-
car_tipoCarguero → Tipo de unidad (camión, camioneta, etc.)
-
car_pesobruto → Peso bruto total
-
car_cargautil → Capacidad de carga útil
-
car_modelo → Modelo del vehículo
-
car_marca → Marca del vehículo
-
car_tarjeta_circulacion → Número de tarjeta de circulación
-
car_tipo_grupo → Tipo de grupo (categoría del vehículo)
-
car_habilitado → Estado de habilitación (activo/inactivo)
-
car_terminal → Llave foránea que enlaza con emp_terminal.ter_id
-
Condiciones (WHERE) aplicadas: Se obtiene todo el registro de la tabla emp_carguero_new.
-
Tipo de unión con otras fuentes (JOIN y llave):
-
LEFT JOIN emp_terminal AS ter ON ter.ter_id = car.car_terminal
-
Llave principal: ter.ter_id
-
Llave foránea: car.car_terminal
-
Observaciones (ej. particiones, índices):
-
Índices agregados posteriormente en report_flota sobre:
-
codigo, placa, habilitado, created_date
-
No se mencionan particiones.
3.2 Conexión / Base: Empresarial
-
Tabla / Recurso: emp_terminal
-
Alias (si aplica): ter
-
Campos utilizados (clave → descripción):
-
ter_nombre → Nombre del terminal
-
ter_id → Identificador del terminal
-
Condiciones (WHERE) aplicadas: No se aplican condiciones adicionales; los registros se enlazan únicamente por la relación LEFT JOIN con emp_carguero_new.
-
Tipo de unión con otras fuentes (JOIN y llave): Unión con emp_carguero_new mediante: car.car_terminal = ter.ter_id
-
Observaciones (ej. particiones, índices): Sin observaciones adicionales.
4) Filtros globales del reporte
-
Inclusiones (must-have): Todos los vehículos registrados en emp_carguero_new
-
Exclusiones (reglas de descarte): No aplica
-
Reglas por estado / habilitado: Se conserva car_habilitado como campo; no se filtra
-
Parámetros externos (si el usuario puede filtrarlo): No aplica (ejecución interna, sin filtros dinámicos)
5) Transformaciones y Reglas de negocio
-
Derivaciones de campos (cómo se calculan):
Cada campo pasa por validación → si está vacío (!trim(...)) se asigna null o 0
-
habilitado se normaliza a 0 si está vacío
-
Se agrega created_date = date('Y-m-d H:i:s')
-
Se agrega status = 1 por defecto
-
Mapeos de estado: habilitado → 0/1
-
Reglas de validación (p.ej., sólo registros validados):
-
Solo registros con estructura válida (no se descartan por condición)
-
La tabla se recrea o trunca en cada ejecución
-
Reglas condicionales (si X entonces Y):
-
Si la tabla no existe → se crea
-
Si ya existe → se trunca antes de insertar
6) Estructura de salida
-
Tabla/archivo destino: report_flota
-
Particionado / sufijo: No aplica
-
Clave(s) primaria(s) o únicas: id INT AUTO_INCREMENT PRIMARY KEY
-
Columnas del reporte (nombre → tipo → descripción):
-
id → INT → Identificador autoincremental
-
placa → VARCHAR(100) → Placa del vehículo
-
codigo → VARCHAR(100) → Código del carguero o unidad
-
telefono → VARCHAR(100) → Teléfono asociado
-
tipounidad → VARCHAR(100) → Tipo de unidad de transporte
-
pesobruto → VARCHAR(100) → Peso bruto del vehículo
-
cargautil → VARCHAR(100) → Capacidad de carga útil
-
modelo → VARCHAR(100) → Modelo del vehículo
-
marca → VARCHAR(100) → Marca del vehículo
-
tarjetacircula → VARCHAR(100) → Número de tarjeta de circulación
-
tipogrupo → VARCHAR(100) → Tipo de grupo o categoría del vehículo
-
ternombre → VARCHAR(150) → Nombre del terminal o centro de operaciones
-
idterm → VARCHAR(100) → ID del terminal asociado
-
habilitado → VARCHAR(100) → Estado del vehículo (0 = inactivo, 1 = activo)
-
created_date → DATETIME → Fecha de creación del registro
-
status → TINYINT(4) → Estado del registro (1 = activo, 0 = inactivo)
-
Ordenamiento por defecto: No especificado (se asume orden por id ASC)
7) Frecuencia y operación
-
Frecuencia de actualización: PENDIENTE (Esperando info de Eduardo)
-
Ventana que recalcula (días/meses): Día actual (date("Y-m-d"))
-
Tamaño de lote / paginado (chunking): No aplica (procesa todo el set en memoria)
-
Tolerancia a fallos / reintentos:
-
Rollback automático ante excepción
-
Inserta log en emp_reportes_validation o error_reports
-
Tiempos de ejecución esperados: PENDIENTE (Esperando info de Eduardo)
8) Calidad y controles
-
Validaciones previas/post:
-
Verificación de existencia de tabla (verifyExistTable)
-
Commit / rollback según resultado
-
Controles de duplicados:
-
No hay control de duplicados; la tabla se vacía antes de cada carga
-
Métricas de completitud (qué se monitorea):
-
Registro de validación en emp_reportes_validation con estado y fechas
9) Dependencias externas
-
APIs / servicios y endpoints: No aplica (solo conexiones internas a BD)
-
Autenticación / headers: No aplica
-
Mapeos y contratos de datos: Internos, controlados por las conexiones $this->empresarial, $this->reportes, $this->centos
10) Historial de cambios
2025-10-15 13:15 - Elian Franco Arroyo Rodas - Documentación inicial
No hay comentarios para mostrar
No hay comentarios para mostrar