@php use Carbon\Carbon; $groupedHistories = []; if(isset($tracking)){ // Agrupar por fase e cidade foreach ($tracking->trackinghist->sortByDesc('datahist') as $hist) { $groupedHistories[$hist->fase][$hist->UnidadeMunicipio][] = $hist; } } // Função para determinar a fase atual do tracking function getCurrentPhase($trackingHist) { $phaseMap = [ 'cte_emitido' => 1, 'unidade_origem' => 2, 'transito' => 3, 'unidade_destino' => 4, 'rota_entrega' => 5, 'aguardando_retirada' => 6, 'entrega_realizada' => 7, 'cancelado' => 8, 'pendente' => 9, 'finalizado' => 10 ]; foreach ($trackingHist as $hist) { if (isset($phaseMap[$hist->fase])) { return $phaseMap[$hist->fase]; } } return 0; // Fase desconhecida ou não encontrada } // Obter a fase atual do tracking $currentPhase = isset($tracking->trackinghist) ? getCurrentPhase($tracking->trackinghist) : 0; $faseDescriptions = [ 'desconhecido' => '', 'cte_emitido' => 'Em separação', 'unidade_origem' => 'Em unidade de origem', 'transito' => 'Em transito', 'unidade_destino' => 'Em unidade de destino', 'rota_entrega' => 'Rota de entrega', 'aguardando_retirada' => 'Aguardando Retirada', 'entrega_realizada' => 'Mercadoria Entregue', 'cancelado' => 'Cancelado', 'em_separacao' => 'Em separação', 'pendente' => 'Pendente', 'finalizado' => 'Entrega Finalizada' ]; @endphp {{-- Messagens da session --}} @include('partials.session-message')
Tracking

@if(isset($tracking)) @switch($tracking->status) @case('pendente') {{ $tracking->status }} @break @case('concluído') {{ $tracking->status }} @break @case('cancelado') {{ $tracking->status }} @break @default {{ $tracking->status }} @endswitch @endif

Tracking #{{isset($tracking) ? $tracking->idtracking: ''}}

DADOS CADASTRAIS

@if ($errors->has('idempresa')) {{ $errors->first('idempresa') }} @endif
@if ($errors->has('idtransportadora')) {{ $errors->first('idtransportadora') }} @endif
@if ($errors->has('idtransportadora')) {{ $errors->first('idtransportadora') }} @endif
@if ($errors->has('codigo_rastreio')) {{ $errors->first('codigo_rastreio') }} @endif
@if ($errors->has('idcotacao')) {{ $errors->first('idcotacao') }} @endif
@if ($errors->has('awbminuta')) {{ $errors->first('awbminuta') }} @endif
@if(isset($trackingNfe) && !empty($trackingNfe->nfexml)) Visualizar Arquivo @endif
@if ($errors->has('nro_nf')) {{ $errors->first('Nº Nf') }} @endif
@if ($errors->has('serie_nf')) {{ $errors->first('Serie Nf') }} @endif
@if ($errors->has('nro_pedido')) {{ $errors->first('Nº Nf') }} @endif
@if ($errors->has('nfe')) {{ $errors->first('nfe') }} @endif
@if ($errors->has('observacao')) {{ $errors->first('observacao') }} @endif

Acompanhe o envio

@isset($tracking) @endisset
@isset($fases)

Em separação

Em unidade
de origem

Mercadoria
em trânsito

Em unidade
de destino

@if (in_array('aguardando_retirada', $fases))

Aguardando
Retirada

@else

Rota de
entrega

@endif
@if (in_array('entrega_realizada', $fases))

Mercadoria
entregue

@elseif (in_array('cancelado', $fases))

Cancelado

@elseif (in_array('finalizado', $fases))

Finalizado

@elseif (in_array('pendente', $fases))

Pendente

@else

Mercadoria
entregue

@endif
@endisset

@isset($tracking)
@php $lastHistory = $tracking->trackinghist->last(); $i = 0; @endphp @foreach($groupedHistories as $fase => $cities) @if($fase != 'erro' && $fase != 'desconhecido') @foreach($cities as $cidade => $histories) @php $filteredHistories = collect($histories) ->reverse() ->unique(function ($item) { return $item->fase . '|' . $item->unidademunicipio; }) ->reverse(); // opcional: mantém ordem do mais antigo para o mais recente @endphp @foreach($filteredHistories as $hist) @php $i++; @endphp
{{ Carbon::parse($hist->datahist)->format('d/m/y - H:i') }}h
@isset($hist->fase) @if($hist->fase != 'pendente') {{ $faseDescriptions[$hist->fase] }} @else {{ $hist->descricao }} @endif {{ $hist->descricao }} @if(!in_array($hist->fase, ['rota_entrega', 'entrega_realizada', 'cancelado','finalizado']) && $hist->unidademunicipio && $hist->unidadeuf) {{ $hist->unidademunicipio }}/{{ $hist->unidadeuf }} @endif @endisset
@endforeach @endforeach @endif @endforeach

DETALHES DO ENVIO

@if( isset($trackingCte) && isset($trackingCte->cte_remetente_municipio) )

{{ $trackingCte->cte_remetente_municipio }}/{{ $trackingCte->cte_remetente_uf }}

@endif @if( isset($trackingCte) && isset($trackingCte->cte_remetente_municipio) && isset($trackingCte->cte_destinatario_uf))

{{ $trackingCte->cte_destinatario_nome }}

{{ $trackingCte->cte_destinatario_endereco }}, {{ $trackingCte->cte_destinatario_numero }} - {{ $trackingCte->cte_destinatario_bairro }} - {{ $trackingCte->cte_destinatario_municipio }}/{{ $trackingCte->cte_destinatario_uf }}

@else

{{ isset($tracking) && isset($tracking->destinocidade) ? $tracking->destinocidade : '-' }}

@endif

{{ isset($tracking) && isset($tracking->destinounidade) ? $tracking->destinounidade : '-' }}

{{ isset($tracking) && isset($tracking->awbminuta) ? $tracking->awbminuta : '-' }}

{{ isset($tracking) && isset($tracking->peso) ? $tracking->peso : '-' }}

{{ isset($tracking) && isset($tracking->quantidade) ? $tracking->quantidade : '-' }}

{{ isset($tracking) && isset($tracking->dataemissao) ? Carbon::parse($tracking->dataemissao)->format('d/m/y h:i') : '-' }}

{{ isset($tracking) && isset($tracking->dataprevisao) ? Carbon::parse($tracking->dataprevisao)->format('d/m/y h:i') : '-' }}

{{ isset($tracking) && isset($tracking->dataentrega) ? Carbon::parse($tracking->dataentrega)->format('d/m/y h:i') : '-' }}

@endisset
@if(isset($tracking)) @include('partials.upload', ['model' => $tracking]) @endif
@include('partials.upload-js') @include('layouts.footers.auth.footer')