control/embarque/cerrar - [cerrar]
PATH: /var/www/html/qaservicesapp/app/Http/Controllers/ShalomControl/EmbarqueController.php
🧾 Descripción
Este servicio realiza el cierre de embarque para un carguero (cap_id).
Procesa todas las órdenes de servicio asociadas al carguero, registra el embarque individual de cada una, actualiza sus estados y marca el carguero como embarcado.
Además:
-
Actualiza el historial de embarque.
-
Procesa posibles transbordos.
-
Actualiza el detalle del carguero.
-
Registra un reporte de embarque.
-
Retorna confirmación del cierre.
🚀 Endpoint
📥 Request Body
Parámetros requeridos
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| cap_id | number | Sí | ID del carguero programado a cerrar. |
| terminal | string | Sí | Terminal donde se realiza el cierre. |
| usuario | string | Sí | Usuario que ejecuta el proceso. |
🔐 Seguridad
Controlada por autenticación global (middleware).
El servicio no valida tokens directamente.
🧠 Flujo del Servicio (resumen real)
1. Obtiene órdenes asociadas al cap_id
Consulta emp_ordenservicio:
-
No eliminadas
-
Asignadas al carguero (
ose_ultimo_carprog_embarque = cap_id)
Si:
-
No hay órdenes, o
-
Todas ya están cerradas (
ose_estadoembarque = '1')
→ Retorna “Carguero cerrado”.
2. Marca historial de embarque como cerrado
Actualiza emp_embarque_historial:
-
Donde status = 1
-
Y emb_estado_cierre = 0
→ Lo cambia a 1.
3. Iteración por cada orden
Para cada orden:
a) Obtiene placa del carguero
Desde emp_cargprogramado.
b) Si la orden está en estado de reparto T, registra transbordo
Actualiza emp_transbordo:
-
tra_estado = "SI"
-
registra usuario, fecha y placa del carguero
c) Registra el embarque en emp_embarque
Guarda:
-
ose_id
-
cap_id
-
terminal
-
fecha de embarque
-
usuario creador
-
observaciones temporales almacenadas en la orden
d) Actualiza estado de la orden en emp_ordenservicio:
4. Actualiza detalle del carguero (emp_cargprogramado_detalle)
Si existe registro:
-
Agrega el terminal a la lista
id_terminal -
Cambia
cap_estado_embarquea 1
Si no existe:
-
Inserta nuevo registro con ese terminal y estado de embarque = 1.
5. Calcula monto total embarcado
Suma ose_montofinal de todas las OS:
-
No eliminadas
-
De ese terminal
-
Con estado embarque E o 1
-
Y asignadas al carguero
6. Registra un reporte de embarque
Inserta en emp_cargprogramado_reporte:
-
cap_id
-
terminal
-
usuario
-
fecha
-
tipo_estado = “Embarque”
-
flete = monto total
7. Retorna respuesta
Devuelve:
📤 Response 200 – Ejemplo
❗ Posibles Errores
1. No hay órdenes para embarcar o ya están cerradas
Es el único error explícito que retorna el servicio.
📚 Schemas (estructuras usadas)
(Basado exclusivamente en los campos usados en el código)
emp_ordenservicio
emp_embarque_historial
emp_transbordo
emp_embarque
Campos insertados:
No hay comentarios para mostrar
No hay comentarios para mostrar