@php $rastreamentos = $rastreamentos ?? collect(); $rastreamento = $rastreamento ?? null; $linkRastreamento = $linkRastreamento ?? null; $dataPrevistaColetaAtual = data_get($rastreamento, 'data_prevista_coleta_formatada'); if (empty($dataPrevistaColetaAtual)) { $dataPrevistaColetaRaw = data_get($rastreamento, 'data_prevista_coleta'); $dataPrevistaColetaAtual = !empty($dataPrevistaColetaRaw) ? \Carbon\Carbon::parse($dataPrevistaColetaRaw)->format('d/m/Y') : null; } $dataPrevistaEntregaAtual = data_get($rastreamento, 'data_prevista_entrega_formatada'); if (empty($dataPrevistaEntregaAtual)) { $dataPrevistaEntregaRaw = data_get($rastreamento, 'data_prevista_entrega'); $dataPrevistaEntregaAtual = !empty($dataPrevistaEntregaRaw) ? \Carbon\Carbon::parse($dataPrevistaEntregaRaw)->format('d/m/Y') : null; } if (!function_exists('getStatusInfoRastreamentoCard')) { function getStatusInfoRastreamentoCard($status) { $statusNormalizado = mb_strtolower(trim((string) $status), 'UTF-8'); $m = [ 'coleta agendada' => ['title' => 'Coleta Agendada', 'icon' => 'fas fa-calendar-check', 'statusClass' => 'rastreamento-status-agendada', 'timelineClass' => 'ativo'], 'coleta realizada' => ['title' => 'Coleta Realizada', 'icon' => 'fas fa-box-open', 'statusClass' => 'rastreamento-status-coletada', 'timelineClass' => 'completo'], 'em trânsito' => ['title' => 'Em Trânsito', 'icon' => 'fas fa-route', 'statusClass' => 'rastreamento-status-transito', 'timelineClass' => 'pendente'], 'em entrega' => ['title' => 'Em Entrega', 'icon' => 'fas fa-truck', 'statusClass' => 'rastreamento-status-entrega', 'timelineClass' => 'pendente'], 'entregue' => ['title' => 'Entrega Realizada', 'icon' => 'fas fa-handshake', 'statusClass' => 'rastreamento-status-entregue', 'timelineClass' => 'completo'], 'atrasado' => ['title' => 'Entrega Atrasada', 'icon' => 'fas fa-clock', 'statusClass' => 'rastreamento-status-atrasado', 'timelineClass' => 'pendente'], 'problema na entrega' => ['title' => 'Problema na Entrega', 'icon' => 'fas fa-exclamation-triangle', 'statusClass' => 'rastreamento-status-problema', 'timelineClass' => 'pendente'], 'frete cancelado' => ['title' => 'Frete cancelado', 'icon' => 'fas fa-ban', 'statusClass' => 'rastreamento-status-cancelado', 'timelineClass' => 'pendente'], 'frete cancelado pelo cliente' => ['title' => 'Frete cancelado pelo cliente', 'icon' => 'fas fa-user-slash', 'statusClass' => 'rastreamento-status-cancelado-cliente', 'timelineClass' => 'pendente'] ]; return $m[$statusNormalizado] ?? ['title' => $status ?? 'Status Desconhecido', 'icon' => 'fas fa-question-circle', 'statusClass' => 'rastreamento-status-desconhecido', 'timelineClass' => 'pendente']; } } @endphp
@if($rastreamento) @if(!empty($linkRastreamento)) @endif @else @endif
@if($rastreamento)

Datas previstas do último lançamento por data/hora de atualização.

Data prevista de coleta
{{ $dataPrevistaColetaAtual ?? 'Não informada' }}
Data prevista de entrega
{{ $dataPrevistaEntregaAtual ?? 'Não informada' }}
@endif
@if($rastreamentos->count() === 0)
Nenhum rastreamento ainda

O histórico da entrega aparecerá aqui após você criar o rastreamento e adicionar atualizações.

@if(empty($rastreamento))

Use o botão Criar Rastreamento acima para começar.

@endif
@else @foreach($rastreamentos as $index => $item) @php $statusInfo = getStatusInfoRastreamentoCard($item->status_atual); $dataRef = $item->data_hora_atualizacao ?? $item->created_at ?? $item->updated_at; $dataAtualizacao = $dataRef ? \Carbon\Carbon::parse($dataRef)->format('d/m/Y - H:i') : '--'; $dataHoraInput = $item->data_hora_atualizacao ? \Carbon\Carbon::parse($item->data_hora_atualizacao)->format('Y-m-d\TH:i') : ($item->created_at ? \Carbon\Carbon::parse($item->created_at)->format('Y-m-d\TH:i') : ''); $dataPrevistaColetaInput = data_get($item, 'data_prevista_coleta_input'); if ($dataPrevistaColetaInput === null || $dataPrevistaColetaInput === '') { $dataPrevistaColetaRaw = data_get($item, 'data_prevista_coleta'); $dataPrevistaColetaInput = !empty($dataPrevistaColetaRaw) ? \Carbon\Carbon::parse($dataPrevistaColetaRaw)->format('Y-m-d') : ''; } $dataPrevistaEntregaInput = data_get($item, 'data_prevista_entrega_input'); if ($dataPrevistaEntregaInput === null || $dataPrevistaEntregaInput === '') { $dataPrevistaEntregaRaw = data_get($item, 'data_prevista_entrega'); $dataPrevistaEntregaInput = !empty($dataPrevistaEntregaRaw) ? \Carbon\Carbon::parse($dataPrevistaEntregaRaw)->format('Y-m-d') : ''; } @endphp
{{ $statusInfo['title'] }}

{{ $item->observacao ?? '' }}

@if(!empty($item->localizacao_atual))

{{ $item->localizacao_atual }}

@endif Atualizado em: {{ $dataAtualizacao }}
Atualizado por: {{ $item->nome_colaborador ?? 'N/A' }}
{{ $item->status_atual }}
@endforeach @endif