control/embarque/eliminar - [destroy]
Path: /var/www/html/qaservicesapp/app/Http/Controllers/ShalomControl/EmbarqueController.php
🧾 Descripción
Este servicio elimina el embarque asociado a una orden de servicio (OSE) y un carguero (cap_id).
Revierte todos los estados de embarque relacionados y registra el historial de eliminación del proceso.
Si aplica, también elimina el embarque en Moova (integración externa).
Es un servicio crítico dentro del flujo de desembarque / reversión de embarque.
🚀 Endpoint
📥 Request Body
Parámetros requeridos
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| ose_id | number | Sí | ID de la orden de servicio a revertir. |
| usuario | string | Sí | Usuario que ejecuta la eliminación del embarque. |
| terminal | string | Sí | Terminal desde donde se realiza el proceso. |
| cap_id | number | Sí | ID del carguero asociado al embarque. |
🔐 Seguridad
Protegido por autenticación estándar de la API (middleware Laravel).
La función asume que ya hay un usuario validado.
🧠 Flujo del Servicio (resumen real)
1. Validaciones iniciales
Verifica que existan los campos obligatorios: ose_id, usuario, terminal, cap_id.
Si falta alguno → responde con error inmediato.
2. Obtiene información del carguero
Consulta en emp_cargprogramado para asegurarse de que el carguero existe.
Si no existe → error: "No se encontró el carguero."
3. Define estructura de reversión de OSE
Se arma un arreglo con todos los campos de embarque en estado inicial:
4. Valida si la OSE tuvo desembarque anterior
Consulta:
Si existen → marca estado_os = "Desembarque"
5. Revierte el embarque en historial empresarial
Actualiza emp_embarque_historial:
6. Resetea información de embarque en la OSE
7. Revierte procesos en historial de CentOS
Busca procesos activos en:
8. Registra un nuevo historial de eliminación
Inserta un registro indicando el proceso "eliminar_embarque".
9. Integración con Moova (si aplica)
Si el carguero contiene destino "523", verifica si el terminal está habilitado para Moova:
Si existe → Ejecuta: MoovaController::destroy($ose_id)
10. Respuesta final
Devuelve mensaje de éxito: {
"success": true,
"message": "Embarque eliminado"
}