@extends('adminlte.app') {{-- Portal de Encomendas e Descargas — lista de mapas de carga. Layout: segue o design system TFDS (classes tfcv-*), o mesmo da Validação de Comissões. O tfds.css já é carregado em adminlte/app.blade.php, não é preciso incluir nada aqui. --}} @section('content')
@if ($message = Session::get('success'))
{!! $message !!}
@endif @if ($message = Session::get('error'))
{{ $message }}
@endif {{-- ====================== HEADER ====================== --}}

Portal de Encomendas e Descargas

{{ \Carbon\Carbon::parse($periodo['de'])->format('d/m/Y') }} a {{ \Carbon\Carbon::parse($periodo['ate'])->format('d/m/Y') }} · {{ $mapas->total() }} {{ $mapas->total() == 1 ? 'mapa' : 'mapas' }} @if(request('motorista')) · Motorista: {{ optional($motoristas->firstWhere('id', (int) request('motorista')))->nome }} @endif

Importar CSV Mapa de RH Parâmetros @if($ultimaImportacao) Último upload: {{ $ultimaImportacao->concluido_em ? $ultimaImportacao->concluido_em->format('d/m H:i') : '—' }} @endif
{{-- ====================== ALERTAS ====================== --}} @if($resumo['por_confirmar'] > 0)
{{ $resumo['por_confirmar'] }} {{ $resumo['por_confirmar'] == 1 ? 'mapa aguarda' : 'mapas aguardam' }} confirmação do motorista — resolver agora.
@endif @if($resumo['divergencias'] > 0)
{{ $resumo['divergencias'] }} {{ $resumo['divergencias'] == 1 ? 'mapa tem' : 'mapas têm' }} divergência entre o registado pelo motorista e o CSV — analisar.
@endif @if($resumo['sem_boletim'] > 0)
{{ $resumo['sem_boletim'] }} {{ $resumo['sem_boletim'] == 1 ? 'mapa em curso sem' : 'mapas em curso sem' }} Boletim de Enchimento anexado.
@endif {{-- ====================== FILTRO ====================== --}}
Hoje Amanhã Esta semana Este mês
Limpar filtros
{{-- ====================== KPIs ====================== --}} {{-- Agenda de amanhã = mapas com data de carga amanhã e ainda por concluir. Descargas de hoje = descargas fechadas hoje no terreno pela app. Como o CSV só entra ao fim do dia, é a app que dá o "hoje" em tempo real. --}}
Agenda de amanhã
{{ $resumo['agenda_amanha'] }}
{{ $resumo['agenda_amanha_descargas'] }} descargas · {{ number_format($resumo['agenda_amanha_litros'], 0, ',', ' ') }} L
Descargas feitas hoje
{{ $resumo['entregas_hoje'] }}
{{ number_format($resumo['litros_hoje'], 0, ',', ' ') }} L entregues
Mapas em curso
{{ $resumo['em_curso'] }}
{{ $resumo['motoristas_em_rota'] }} {{ $resumo['motoristas_em_rota'] == 1 ? 'motorista em rota' : 'motoristas em rota' }}
Por confirmar
{{ $resumo['por_confirmar'] }}
{{ $resumo['divergencias'] }} com divergência
{{-- ====================== TABELA ====================== --}}
@forelse($mapas as $mapa) @php $total = $mapa->descargas_count; $feitas = $mapa->descargas_concluidas_count; $pct = $total ? round(($feitas / $total) * 100) : 0; $corBarra = $pct >= 100 ? 'green' : ($pct > 0 ? 'amber' : ''); @endphp @empty @endforelse
Mapa Data carga Viatura Motorista Descargas Execução Litros Estado Ações
{{ $mapa->referencia }} @if($mapa->tem_divergencia) divergência @endif
criado {{ optional($mapa->data_mapa_carga)->format('d/m/Y') ?: '—' }}
{{ optional($mapa->data_carga)->format('d/m/Y') ?: '—' }} {{ $mapa->matricula ?: '—' }} @if($mapa->matricula && !$mapa->viatura_reconhecida) ? @endif @if($mapa->driver && $mapa->motorista_confirmado) {{ $mapa->driver->first_name }} @if($mapa->motorista_origem === 'externo') externo @endif @elseif($mapa->cdu_nome) {{ $mapa->cdu_nome }} por confirmar @else @endif {{ $feitas }} / {{ $total }}
{{ $pct }}% {{ $mapa->enchimento_id ? 'enchimento ok' : 'sem enchimento' }}
{{ number_format($mapa->litros_previstos, 0, ',', ' ') }} {{ $mapa->estado_label }}
Sem mapas de carga para os filtros escolhidos.
{{-- Paginação em Bootstrap 4, para acompanhar o AdminLTE. --}}
{{ $mapas->links('pagination::bootstrap-4') }}
@endsection