Embarques
- Control/carguero/listar - (1,2) [indexCooler]
- control/carguero/obtener - [show]
- control/embarque/listar - [index]
- control/carguero/qr - [generateQrMassive]
- control/embarque/cerrar - [cerrar]
- control/embarque/validar - [validar]
- control/embarque/paquete -[storeQuantities]
- control/embarque/obtener - [show]
- control/embarque/eliminar - [destroy]
Control/carguero/listar - (1,2) [indexCooler]
🧾 Descripción
Este servicio valida un código de cooler (BINS, COOLER o PALLET) y retorna la lista de guías (OSE) que tienen paquetes dentro del cooler y aún no están embarcadas.
Realiza consultas combinadas en CentOS y Empresarial, arma las guías agrupando cantidades y devuelve un resumen estructurado.
🚀 Endpoint
📥 Request Body
Parámetros requeridos
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| cooler | string | Sí | Código escaneado del cooler (debe contener BINS, COOLER o PALLET). |
| usuario | string | Sí | Usuario que ejecuta el proceso. |
| terminal | string | No | Terminal desde donde opera. |
| cap_id | string | No | ID de capacidad. |
🔐 Seguridad
Generalmente protegido por token o cabecera de sesión (dependiendo del middleware definido). No se valida en la función directamente.
🧠 Flujo del Servicio (resumen real)
-
Validaciones iniciales
-
Verifica que
cooleryusuarioexistan. -
Valida que
coolercontenga:BINSoCOOLERoPALLET.
-
-
Verifica existencia del cooler
Busca enemp_cooler:Si no existe → “Aún no hay paquetes en el cooler”
-
Obtiene paquetes del cooler aún no embarcados
-
Agrupa paquetes por OSE
-
Extrae los primeros dígitos del campo
numero. -
Agrupa cantidades por OSE.
-
-
Obtiene datos adicionales de la OSE
Consulta empresarial: -
Construye respuesta final
Por cada OSE:-
código del cooler
-
usuario y fecha del último registro
-
cantidades únicas encontradas
-
cantidad total desde la OS
-
número de guía del cliente
-
📤 Response 200 – Ejemplo
❗ Posibles Errores
1. Cooler no enviado
2. Usuario no enviado
3. Código de cooler inválido
(Tu código acepta PALLET también, pero el mensaje no lo menciona.)
4. Cooler no tiene registros activos
5. No hay paquetes no embarcados
📚 Schemas (estructuras usadas)
emp_cooler
emp_cooler_guias
emp_os_detalle + emp_ordenservicio
🗃 Lógica en pseudo-código
control/carguero/obtener - [show]
PATH: /var/www/html/qaservicesapp/app/Http/Controllers/ShalomControl/CargueroController.php
🧾 Descripción
Obtiene la información detallada de un carguero programado (cap_id) incluyendo:
-
Datos del carguero (fecha, placas, choferes, ruta)
-
Listado de terminales (para reemplazar IDs por nombres)
-
Orígenes, destinos y escalas (transformados a formato legible)
-
Cantidad de guías embarcadas asociadas al carguero
-
Suma total del monto final de dichas guías
Este servicio consolida datos provenientes de varias tablas del sistema Empresarial.
🚀 Endpoint
📥 Request Body
Parámetros requeridos
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| cap_id | number | Sí | ID del carguero programado. |
| terminal | string | No | Terminal origen (no se usa en la lógica actual). |
| usuario | string | No | Usuario que consulta (no se usa en la lógica actual). |
🔐 Seguridad
El servicio depende del middleware configurado (token, sesión, etc).
No valida autenticación dentro del método.
🧠 Flujo del Servicio (resumen real)
-
Validación inicial
-
Si no se envía
cap_id→ retorna error.
-
-
Obtiene datos del carguero
-
Obtiene lista de terminales
-
Se genera un mapa
ter_id → nombre.
-
-
Convierte origen/destino (JSON) a texto descriptivo
-
Decodifica arrays JSON.
-
Reemplaza cada ID por:
ID + nombre_terminal -
Calcula campos:
-
origenes -
destinos -
escalas(unión única de ambos)
-
-
-
Obtiene guías relacionadas al carguero
-
Calcula:
-
cantidad: número de guías -
suma: suma total deose_montofinal
-
-
Elimina campos originales
origenydestinodel objeto final. -
Retorna JSON con todos los datos del carguero.
📤 Response 200 – Ejemplo
❗ Posibles Errores
1. Falta cap_id
2. cap_id no existe en la BD
(La función no valida explícitamente este caso, pero retornará data = null)
Ejemplo de respuesta:
(Opcionalmente podrías corregir esto en backend.)
📚 Schemas (estructuras usadas)
emp_cargprogramado
emp_terminal
emp_ordenservicio
🗃 Lógica en pseudo-código
control/embarque/listar - [index]
🧾 Descripción
Este servicio retorna la lista de órdenes de servicio embarcadas asociadas a un cargoprogramación (cap_id).
Además, incluye:
-
Datos de origen/destino
-
Estado de embarque
-
Contenido detallado de las unidades (KG, sobres, bultos, etc.)
-
Cantidades totales
-
Nombre del remitente
-
Guía de cliente
-
Ruta generada (origen - destino)
Adicionalmente, permite filtrar por número de guía del cliente.
🚀 Endpoint
📥 Request Body
Parámetros requeridos
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| cap_id | number | Sí | ID de carga programación (embarque). |
| pagina | number | Sí | Página para paginación. |
| guia | string | No | Número de guía del cliente. |
🔐 Seguridad
Autenticación estándar del sistema (token/cabecera middleware). No validado directamente en la función.
🧠 Flujo del Servicio (resumen real)
-
Valida que
cap_idexista.
Si no → “Es obligatorio enviar un id” -
Construye filtros
-
Siempre por:
ose_ultimo_carprog_embarque = cap_id -
Opcional:
ose_nroguiacliente = guia
-
-
Obtiene las órdenes de servicio (
emp_ordenservicio), paginadas (15 registros por página).
Incluye campos como:-
fecha de preferencia de partida
-
monto final
-
remitente/destinatario
-
tipo de pago
-
origen / destino
-
usuario creador
-
estado de pago
-
etc.
-
-
Carga los terminales (
emp_terminal) para convertir IDs → nombres y alias. -
Si no existen órdenes
→ “No ha embarcado nada aun” -
Obtiene detalles de contenido (
emp_os_detalle) por OSE:-
Agrupa por tipo de precio
-
Suma cantidades
-
Genera estructura como:
"5 KG, 2 SB"
-
-
Obtiene historial de embarque (
emp_embarque_historial)-
Determina si la guía está embarcada o no
-
Paquetes embarcados
-
Total de paquetes
-
-
Obtiene abreviaturas de tipos de pago (
emp_atributos)-
Convierte código → abreviatura
-
-
Integra la información para cada OSE
-
contenido
-
cantidad total
-
estado de guía (“GUIA EMBARCADA” / “SIN GUIA”)
-
paquetes embarcados
-
origen y destino por nombre
-
ruta generada (alias-origen → alias-destino)
-
-
Obtiene nombres de remitentes (
emp_persona)
Convierte DNI → nombre completo. -
Reemplaza remitente DNI → nombre.
-
Retorna lista final con toda la información enriquecida.
📤 Response 200 – Ejemplo
❗ Posibles Errores
1. Falta cap_id
2. No hay órdenes embarcadas aún
3. No hay órdenes coincidentes con la guía filtrada
📚 Schemas (estructuras usadas)
emp_ordenservicio
emp_os_detalle
emp_embarque_historial
emp_terminal
emp_persona
🗃 Lógica en pseudo-código
control/carguero/qr - [generateQrMassive]
PATH: /var/www/html/qaservicesapp/app/Http/Controllers/ShalomControl/CargueroController.php
🧾 Descripción
Genera un registro QR asociado a un carguero programado (cap_id).
Obtiene automáticamente la placa del vehículo asignado y registra:
-
cap_id
-
placa
-
usuario
-
terminal
-
fecha de creación
El registro se almacena en la tabla emp_cargprogramado_qr en la base de datos CentOS.
Nota: El código contiene una validación de contraseña deshabilitada (comentada).
🚀 Endpoint
📥 Request Body
Reglas
-
password: opcional actualmente (validación comentada). -
usuario: requerido. -
cap_id: requerido. -
terminal: requerido. -
placa: ignorado, se obtiene desde la BD.
🔐 Seguridad
La función no fuerza autenticación ni validación de contraseña porque está comentada, pero originalmente pretendía validar:
La seguridad dependerá del middleware externo del proyecto.
🧠 Flujo del Servicio (resumen real)
-
Recibe parámetros del request:
password,usuario,cap_id,terminal,placa(pero placa será ignorada). -
Obtiene la placa real del carguero desde Empresarial:
-
Preparar datos para el QR:
-
Inserta registro en CentOS:
-
Si la inserción falla → error
Si inserta correctamente → éxito
📤 Response 200 – Ejemplo
❗ Posibles Errores
1. Error al insertar el registro
2. cap_id no encontrado (si la consulta no retorna placa)
(El código no valida este error explícitamente, pero sería un caso real posible)
3. Error inesperado (excepción del servidor)
(No manejado explícitamente, pero debe considerarse)
📚 Schemas (estructuras usadas)
emp_cargprogramado
emp_cargprogramado_qr
Campos insertados:
🗃 Lógica en pseudo-código
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:
emp_cargprogramado_detalle
emp_cargprogramado_reporte
🗃 Lógica en pseudo-código
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:
emp_code_send
emp_adicionales
🗃 Lógica en pseudo-código
control/embarque/paquete -[storeQuantities]
Path: /var/www/html/qaservicesapp/app/Http/Controllers/ShalomControl/EmbarqueController.php
🧾 Descripción
Este servicio registra el embarque de paquetes para una Orden de Servicio (OS).
Valida toda la información crítica del embarque, verifica restricciones de rutas, valida si la OS está apta para embarque (QR / clave / no anulada), confirma cantidades, registra procesos históricos, actualiza estados de embarque y permite manejar escenarios:
-
Embarque normal
-
Embarque masivo
-
Embarque aéreo
-
Embarque desde cooler
Es uno de los servicios centrales del módulo logístico.
🚀 Endpoint
📥 Request Body
Campos requeridos
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| ose_id | number | Sí | ID de la Orden de Servicio a embarcar. |
| cantidad | number | Sí | Cantidad total declarada a embarcar. |
| cantidades | string (CSV) | Sí | Paquetes escaneados para este embarque. |
| usuario | string | Sí | Usuario que está realizando el proceso. |
| terminal | number | Sí | Terminal desde donde se embarca. |
| tipo_cierre | "APP" | "PDA" | Sí | Tipo de registro del embarque. |
| cap_id | number | Sí | Carguero (ruta programada) asignado. |
Campos opcionales
| Campo | Tipo | Descripción |
|---|---|---|
| cierre_aereo | number | ID del cierre a registrar si es embarque aéreo. |
| cooler | string | Código del cooler si se embarca desde uno. |
| placa | string | Para embarque masivo (opcional). |
| traspaso | number (0/1) | Indica si permite traspaso entre terminales. |
🔐 Seguridad
Servicio protegido mediante autenticación de API interna del sistema.
Requiere usuario autenticado y terminal válida.
🧠 Flujo del Servicio (resumen real)
A continuación, el flujo real y completo basado en tu código:
🔹 1. Validación de parámetros obligatorios
-
ose_id
-
cantidades
-
cantidad
-
usuario
-
terminal
-
cap_id
-
tipo_cierre (solo APP o PDA)
🔹 2. Obtiene la Orden de Servicio
Consulta: emp_ordenservicio
Valida:
-
Existe la OS
-
No está anulada
-
Tiene QR o clave (según reglas del contacto)
-
Terminal de destino coincide para permitir embarque
🔹 3. Valida retención de embarque aéreo
Consulta: emp_retencion_embarque_aereo
Si existe → no permite embarque.
🔹 4. Valida terminales, rutas y restricciones del carguero
Consulta: emp_cargprogramado
Verifica:
-
Que el origen del carguero incluya la terminal actual (a menos que sea traspaso).
-
Restricciones de destino.
-
Que si es destino aéreo, la ruta sea aérea.
Si alguna restricción aplica → error.
🔹 5. Obtiene cantidades totales de la OS
Consulta: emp_os_detalle
Calcula unidades totales.
🔹 6. Verifica paquetes previamente desembarcados
Consulta: emp_procesos_historial_app
Si encuentra que todos los paquetes ya están en destino → bloquea embarque.
🔹 7. Verifica embarques previos
Consulta: emp_embarque_historial
Evalúa:
-
embarque actual
-
cantidades ya registradas
-
estado de guía
-
si ya está 100% embarcada
Si ya embarcó todos los paquetes → error.
🔹 8. Registra o actualiza el embarque
Dos escenarios:
a) Primer registro
Inserta en:emp_embarque_historial
b) Actualización
Actualiza registro existente.
🔹 9. Actualiza el estado de la Orden de Servicio
Actualiza en emp_ordenservicio:
-
estado de paquete
-
último carguero
-
estado de embarque general
-
fecha de embarque
-
marcas de validación
🔹 10. Registra proceso histórico
En:emp_procesos_historial_app
-
Si no existe → inserta
-
Si existe → actualiza cantidades
🔹 11. Procesos adicionales
-
Si es embarque aéreo → actualiza
emp_embarque_aereo -
Si embarca desde cooler → marca estado del registro en
emp_cooler_guias
🔹 12. Respuesta final
Devuelve éxito y número de guía.
📤 Response 200 – Ejemplo
❗ Posibles Errores
1. Campos faltantes
2. OS no encontrada
3. OS anulada
4. OS sin QR o clave válida
5. Terminal no permitida
6. Restricción de embarque aéreo
7. Restricción de ruta
8. Paquetes ya embarcados
9. Error al actualizar embarque aéreo o cooler
📚 Schemas (estructuras usadas)
emp_ordenservicio
emp_embarque_historial
emp_procesos_historial_app
emp_cooler_guias
emp_embarque_aereo
🗃 Lógica en pseudo-código
control/embarque/obtener - [show]
Path: /var/www/html/qaservicesapp/app/Http/Controllers/ShalomControl/EmbarqueController.php
🧾 Descripción
Obtiene la información completa de una Orden de Servicio (OSE), incluyendo:
-
Datos generales de la guía
-
Datos del remitente, destino y ruta
-
Contenido (tipos y cantidades de unidades)
-
Estado de embarque y paquetes embarcados
-
Atributos del tipo de pago
-
Usuario creador
-
Validaciones de estado
Es un servicio para consulta detallada de una guía antes o durante el proceso de embarque.
🚀 Endpoint
📥 Request Body
Parámetros requeridos
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| ose_id | number | Sí | ID de la orden de servicio a consultar. |
| cap_id | number | Sí | ID de carga (embarque) asociado. |
| terminal | string | No | Terminal desde donde se consulta. |
🔐 Seguridad
El servicio depende del middleware global (token/sesión del sistema).
No hace validación explícita dentro de la función.
🧠 Flujo del Servicio (resumen real)
1. Validación inicial
-
Verifica obligatorio
ose_id. -
Verifica obligatorio
cap_id.
2. Obtiene datos de la orden
Consulta principal:
Si no existe → "Orden de servicio no encontrada"
Si está anulada (estado_pago = 'AN') → error.
3. Obtiene nombres de terminales
Se reemplazan los IDs de origen/destino por su nombre y alias:
Crea la ruta: ruta = origen_alias + ' - ' + destino_alias
4. Obtiene contenido de la OSE
Consulta:
Construye:
-
contenido →
"5 CAJA / 2 SOBRE / ..." -
cant_total → sumatoria de cantidades
5. Obtiene estado de embarque
Consulta:
Calcula:
-
emb_guia →
GUIA EMBARCADAsi existe algún registro con valor > 0 -
cant_paq → cantidad de paquetes registrados
-
embarcados → array de los paquetes embarcados
6. Traduce tipo de pago
Consulta atributos:
Aplica la conversión: orden.tipo_pago = abreviatura del valor recibido
7. Obtiene nombre del remitente
8. Obtiene usuario creador
9. Devuelve respuesta final
Incluye:
-
datos completos de la OSE
-
contenido
-
tipo de pago traducido
-
cantidades
-
ruta
-
paquetes embarcados
📤 Response 200 – Ejemplo
❗ Posibles Errores
1. Falta ose_id
2. Falta cap_id
3. OSE no encontrada
4. Guía anulada
📚 Schemas (estructuras usadas)
Orden de Servicio (emp_ordenservicio)
Detalle OSE (emp_os_detalle)
Terminal (emp_terminal)
Embarque Historial
🗃 Lógica en pseudo-código
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"
}