@extends('layouts.app') @section('title','Revisão da Programação') @section('page_title','Revisão da Programação Operacional') @section('content') @php $r=$importacao->resumo??[]; $campos=['cliente'=>'Clientes','origem'=>'Origens','destino'=>'Destinos','motorista'=>'Motoristas','cavalo'=>'Cavalos','carreta'=>'Carretas/Carrocerias']; @endphp
@if(session('success'))
{{ session('success') }}
@endif @if(session('warning'))
{{ session('warning') }}
@endif @if($errors->any())
{{ $errors->first() }}
@endif

{{ $importacao->arquivo }}

Importação #{{ $importacao->id }} · {{ $importacao->abas_processadas }} abas diárias. ATENDIMENTOS_NEGADOS, ESTÁDIAS e VAZIOS serão tratados em etapa própria.

@csrf
@if(($resumoOs['prontas_nao_importadas'] ?? 0) > 0)
@csrf
@endif
@foreach([ ['Linhas',$importacao->total_linhas,''],['Prontas',$importacao->linhas_prontas,'text-green-700'],['OS importadas',$resumoOs['importadas']??0,'text-blue-700'],['Pendentes',$importacao->linhas_pendentes,'text-amber-700'],['Excluídas',$importacao->linhas_excluidas??0,'text-gray-500'], ['Clientes pend.', $r['clientes_nao_associados']??0,'text-amber-700'],['Origens pend.', $r['origens_nao_associadas']??0,''],['Destinos pend.', $r['destinos_nao_associados']??0,''] ] as $c)
{{ $c[0] }}
{{ number_format($c[1],0,',','.') }}
@endforeach

Entrada em operação

As linhas Prontas podem virar OS agora. Linhas pendentes permanecem preservadas para associação futura e podem ser importadas depois, sem duplicar as já criadas.

Prontas ainda não importadas: {{ number_format($resumoOs['prontas_nao_importadas']??0,0,',','.') }} · OS já vinculadas: {{ number_format($resumoOs['importadas']??0,0,',','.') }} · Erros: {{ number_format($resumoOs['erros']??0,0,',','.') }}.

@if(($resumoOs['prontas_nao_importadas'] ?? 0) > 0)
@csrf
@endif

Pendências agrupadas

Associe um valor uma vez; todas as linhas equivalentes são reprocessadas automaticamente. Use Excluir quando o valor não representar uma pendência real; essas linhas serão retiradas da fila e não gerarão OS.

@foreach($campos as $key=>$label){{ $label }}@endforeach
@forelse($pendencias as $p) @empty@endforelse
Valor não associadoOcorrênciasAssociar a
{{ $p['valor'] }}{{ number_format($p['total'],0,',','.') }}
@csrf
@csrf
Nenhuma pendência deste tipo entre os 100 valores mais frequentes.
@if(count($pendencias)>=100)
Exibindo os 100 valores pendentes mais frequentes. Depois de resolvê-los, os próximos aparecerão automaticamente.
@endif

Linhas da programação

Linhas prontas podem ser convertidas em OS; o vínculo com a linha original permanece para impedir duplicidade.

@forelse($linhas as $l) @empty@endforelse
DataCliente/SolicitanteOS legadoRotaCavalo / CarretaMotoristaAssociaçãoOS Sistema MD
{{ $l->data_servico?->format('d/m/Y') }}
{{ $l->hora_coleta }}
{{ $l->cliente_solicitante ?: '—' }}
{{ $l->cliente?->razao_social ?: 'não associado' }}
{{ $l->numero_os_legado ?: '—' }}
{{ $l->origem_texto ?: '—' }} → {{ $l->destino_texto ?: '—' }}
{{ $l->origem?->nome ?: '?' }} → {{ $l->destino?->nome ?: '?' }}
{{ $l->cavalo_placa ?: '—' }} / {{ $l->carreta_placa ?: '—' }}
{{ $l->cavalo?->placa ?: '?' }} / {{ $l->carreta?->placa ?: '?' }}
{{ $l->motorista_nome ?: '—' }}
{{ $l->motorista?->nome ?: '?' }}
@if($l->status_associacao==='excluido')Excluída@if($l->exclusao_contexto)
{{ $l->exclusao_contexto }}
@endif @elseif($l->status_associacao==='pronto')Pronto@elsePendente@if($l->pendencias)
{{ implode(', ',array_keys($l->pendencias)) }}
@endif @endif @if($l->status_importacao==='erro')
Erro ao importar
@endif
@if($l->ordemServico){{ $l->ordemServico->numero_os }}
{{ $l->importado_em?->format('d/m/Y H:i') }}
@else@endif
Nenhuma linha encontrada.
{{ $linhas->links() }}
@endsection