{{-- Seguimiento de arribo en destino y descargue del contenedor (shipsgo/ifame), con los datos de ShipsGo cruzados con shipsgo_seguimiento_maestro. Kit ui-ctc (MigracionLayout.MD L3, pantallas de L2a). El mapa es el visor embebido de ShipsGo (el dibujo propio con Leaflet no se usaba y se quitó). Abrir el detalle actualiza la fecha de descargue en la tabla local (actualizarFechaDescargue), como antes. --}} @php $estadoDe = function ($status) { $status = strtoupper((string) $status); if (in_array($status, ['SAILING', 'IN_TRANSIT', 'INPROGRESS'])) { return ['info', 'En tránsito']; } if (in_array($status, ['ARRIVED', 'WAITING_POD'])) { return ['aviso', 'En puerto']; } if ($status === 'DISCHARGED') { return ['exito', 'Entregado']; } if ($status === 'DELAYED') { return ['peligro', 'Con retraso']; } return ['neutro', $status ?: '—']; }; $filtros = ['TODOS' => 'Todos', 'EN_TRANSITO' => 'En tránsito', 'EN_PUERTO' => 'En puerto', 'ENTREGADO' => 'Entregado', 'CON_RETRASO' => 'Con retraso']; $eventos = ['EMSH' => 'Vacío al remitente', 'GTIN' => 'Entrada', 'LOAD' => 'Cargado', 'DEPA' => 'Salida', 'ARRV' => 'Llegada', 'DISC' => 'Descargado']; $fechaCorta = fn ($f) => $f ? \Carbon\Carbon::parse($f)->format('d M') : null; @endphp
@if ($busqueda) @endif
@foreach ($filtros as $clave => $etiqueta) @endforeach
{{ count($envios) }} embarques Consultando…
@forelse ($envios as $item) @php [$variante, $estado] = $estadoDe($item['status'] ?? ''); $avance = min(100, max(0, $item['route']['transit_percentage'] ?? 0)); @endphp @empty @endforelse
Pedido clienteNavieraRuta y avanceETAEstadoAcciones
{{ $item['numero_pedido'] ?? 'DO: ' . $item['numero_do'] }} @if (!empty($item['numero_pedido']))DO {{ $item['numero_do'] }} · @endif{{ $item['container_number'] ?? 'Sin contenedor' }} @if (!empty($item['razon_social_destinatario'])) {{ $item['razon_social_destinatario'] }} @endif {{ $item['carrier']['name'] ?? 'N/A' }} {{ $item['carrier']['scac'] ?? '' }}
{{ $item['route']['port_of_loading']['location']['name'] ?? 'POL' }} {{ $item['route']['port_of_discharge']['location']['name'] ?? 'POD' }}
{{ $item['route']['transit_percentage'] ?? 0 }}% · {{ $item['route']['transit_time'] ?? 0 }} días de tránsito
{{ $fechaCorta($item['route']['port_of_discharge']['date_of_discharge'] ?? null) ?? 'Pendiente' }} {{ $estado }}

No se encontraron embarques para el filtro seleccionado.

{{-- Detalle del embarque --}} @if ($modalDetalleAbierto && $embarqueSeleccionado) @php $e = $embarqueSeleccionado; [$variante, $estado] = $estadoDe($e['status'] ?? ''); $avance = min(100, max(0, $e['route']['transit_percentage'] ?? 0)); $movimientos = $e['movements'] ?? ($e['containers'][0]['movements'] ?? $e['events'] ?? []); @endphp @endif {{-- Mapa de la ruta: visor embebido de ShipsGo --}} @if ($modalMapaAbierto && $embarqueMapaSeleccionado) @php $m = $embarqueMapaSeleccionado; @endphp @endif