control/embarque/validar - [validar]
PATH: /var/www/html/qaservicesapp/app/Http/Controllers/ShalomControl/EmbarqueController.php
🧾 Descripción
Este servicio valida si una Orden de Servicio (OSE) puede ser procesada para embarque, verificando:
-
Que la guía exista y no esté anulada.
-
Que corresponda al terminal.
-
Que cuente con código QR o clave según el tipo de cliente.
-
Que cumpla validaciones adicionales mediante
validar_grt().
El servicio evita el embarque de guías que estén incompletas, anuladas o sin documentación obligatoria.
🚀 Endpoint
📥 Request Body
Parámetros requeridos
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| ose_id | number | Sí | ID de la Orden de Servicio. |
| cantidad | number | Sí | Cantidad escaneada. |
| numero | string | No* | Número del paquete escaneado. (Si no existe, no se valida embarque) |
| usuario | string | Sí | Usuario que realiza la validación. |
| terminal | string | Sí | Terminal donde se realiza el proceso. |
| tipo_cierre | string | Sí | Tipo de cierre: APP o PDA. |
| cap_id | string | Sí | Capacidad asociada. |
🔐 Seguridad
Depende del middleware del proyecto.
La función no valida seguridad interna, se asume que ya llega un request autenticado.
🧠 Flujo del Servicio (resumen real)
-
Validaciones básicas del Request
-
Verifica existencia de:
-
ose_id -
cantidad -
usuario -
terminal -
cap_id -
tipo_cierre∈ {APP, PDA}
-
-
Si no existe
numero, retorna:"Embarque de guías no se valida."
-
-
Consulta Orden de Servicio
Validaciones:
-
Si no existe: ❌ "Guía no encontrada."
-
Si está anulada (
ose_estadoPago = 'AN'): ❌ "La guía se encuentra anulada." -
Si no corresponde al terminal destino: ❌ "La Orden de Servicio ya se encuentra en su destino."
-
-
Validaciones por tipo de cliente
-
Si tiene información de remitente con reglas especiales:
-
Si
remitecontactomail == '0'→ ❌ “Primero debe confirmar la guía en empresarial.”
-
-
Si cliente es tipo
"CLIENTES":-
Busca clave en
emp_code_send -
Busca adicionales en
emp_adicionales -
Si no tiene clave ni adicionales → ❌ “La Orden de Servicio no tiene clave Creada.”
-
-
Si no es cliente tipo especial, verifica QR:
-
Si no tiene QR → ❌ “La Orden de Servicio no tiene código QR.”
-
-
-
Validación adicional mediante
validar_grt()
Llama:-
Si falla, retorna error directo.
-
-
Si todo es correcto
Retorna:
📤 Response 200 – Ejemplo
❗ Posibles Errores
1. Falta ose_id
2. No se valida porque no se envió número
3. Falta algún parámetro obligatorio
Ejemplo — falta terminal:
4. Guía no encontrada
5. Guía anulada
6. Terminal incorrecto
7. Guía sin confirmación
8. No tiene clave creada
9. No tiene QR
10. Error por validar GRT
Ejemplo:
📚 Schemas (estructuras usadas)
emp_ordenservicio
Campos utilizados:
No hay comentarios para mostrar
No hay comentarios para mostrar