control/grupo/listar - [index]
Path: /var/www/html/qaservicesapp/app/Http/Controllers/ShalomControl/GrupoController.php
🧾 Descripción
Retorna una lista paginada de grupos de cargueros de desembarque, filtrados por terminal, nombre y fecha.
Cada grupo incluye sus placas asociadas y el nombre legible de la terminal.
Realiza consultas en la base empresarial, transforma datos y enriquece la respuesta con nombres de terminales y placas de cargueros programados.
🚀 Endpoint
📥 Request Body
Parámetros
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| terminal | int | ✔️ Sí | ID de la terminal. |
| pagina | int | ✔️ Sí | Número de página (paginación de 15 registros). |
| nombre | string | ✖️ Opcional | Filtra por nombre del grupo (activa rango de fecha extendido). |
🔐 Seguridad
Requiere token o autenticación definida en middleware general (no se valida dentro del método).
🧠 Flujo del Servicio (resumen real)
1. Validaciones iniciales
-
Si no envían
terminal→ error obligatorio. -
Se toma
paginapara paginar. -
Se define
limit = 15. -
Fecha mínima:
-
Por defecto: ayer
-
Si se envía
nombre: se amplía rango –10 días a +10 días y se agrega filtro LIKE al nombre.
-
2. Construcción del filtro para la consulta
Filtros aplicados:
-
terminal = enviado
-
status = 1
-
fecha_creacion > fechaDesde
-
si existe nombre → LIKE %nombre% y fecha_creacion < fechaHasta
3. Consulta de grupos de desembarque
Tabla: emp_grupo_cargueros_desembarque
Campos retornados:
-
id
-
grupo (array JSON de cap_id)
-
nombre
-
terminal
-
cerrar_grupo
-
fecha_creacion
-
placas = null (placeholder)
Si no hay resultados → “No se encontraron grupos”.
4. Obtención del catálogo de terminales
Consulta emp_terminal y crea un arreglo tipo diccionario:
5. Enriquecimiento de la data
Para cada grupo:
-
Decodifica
grupo(lista de cap_id). -
Consulta placas desde:
-
emp_cargprogramado (cap)
-
emp_carguero_new (carg)
Campos:
-
placa1
-
codigo1
-
placa2
-
-
Construye lista de placas:
"placa1 codigo1" -
Reemplaza el id de terminal por su nombre real.