<%# Barra de progresso (reflete o veículo selecionado, se houver) %>
<% if @veiculos_sel.any? %>🚚 <%= @veiculos_sel.join(', ') %> — <% end %>
<%= @classificadas %>
de <%= @total_entregas %> entregas classificadas
·
+<%= @manuais %> manuais
<%# Barra com 2 segmentos: laranja/verde = elegíveis classificadas · azul = lançamentos manuais %>
<%# Fechar por veículo — filtra a tela por carro, mostra o estado (pronto/
consolidado/arquivado) e permite CONSOLIDAR o veículo selecionado.
Só aparece quando o motorista usou mais de um veículo no período. %>
<% pode_fechar_veiculo = !(@consolidacao.finalizada? && current_user.operador?) %>
<% if @veiculos_status.size > 1 %>
🚗 Fechar por veículo:clique no nome para filtrar; consolide o carro quando estiver 100% (🔒)
<%# Chip "Todos" — limpa a seleção (mostra todos os carros) %>
<%= link_to validar_consolidacao_consolidacao_entregas_path(@consolidacao, motorista: @motorista),
class: "px-3 py-2 rounded-lg text-sm font-semibold border min-h-[40px] flex items-center
#{@veiculos_sel.empty? ? 'border-orange-500 text-orange-400 bg-orange-500/10' : 'border-[#2a2a2a] text-gray-300 hover:border-orange-500'}" do %>
Todos
<% end %>
<% @veiculos_status.each do |v| %>
<% selecionado = @veiculos_sel.include?(v[:vehicle]) %>
<%# Alterna este veículo dentro da seleção atual (multi-seleção) %>
<% nova_sel = selecionado ? (@veiculos_sel - [v[:vehicle]]) : (@veiculos_sel + [v[:vehicle]]) %>
<%# Cor determinística: selecionado(laranja) > consolidado(verde+🔒) >
pronto(verde) > arquivado(cinza tracejado) > neutro. %>
<% cor = if selecionado then 'border-orange-500 text-orange-400 bg-orange-500/10'
elsif v[:fechado] then 'border-green-500 text-green-400 bg-green-500/10'
elsif v[:completo] then 'border-green-600/50 text-green-400'
elsif v[:arquivado] then 'border-dashed border-[#3a3a3a] text-gray-500'
else 'border-[#2a2a2a] text-gray-300 hover:border-orange-500' end %>
<%= link_to validar_consolidacao_consolidacao_entregas_path(@consolidacao, motorista: @motorista, vehicle: nova_sel.presence),
data: { 'validacao-target': 'chipVeiculo', vehicle: v[:vehicle], eligible: v[:eligible] },
class: "px-3 py-2 rounded-lg text-sm font-semibold border min-h-[40px] flex items-center gap-2 transition-colors #{cor}" do %>
🔒<%= v[:vehicle] %><%= v[:classificadas] %>/<%= v[:eligible] %><%= '✓' if v[:completo] %>
<% end %>
<% end %>
<%# Ação de consolidação — opera sobre o veículo único selecionado. %>
<% if pode_fechar_veiculo %>
<% sel_unico = @veiculos_sel.size == 1 ? @veiculos_sel.first : nil %>
<% status_unico = sel_unico && @veiculos_status.find { |v| v[:vehicle] == sel_unico } %>
<% if status_unico.nil? %>
Selecione um veículo (clique no nome) para consolidá-lo separadamente.
<%# Caixa de ferramentas — concentra os lançamentos avulsos (registro manual de
entrega e entrega de termo) num único botão com menu suspenso. Os modais e
controllers existentes são reaproveitados; só o gatilho mudou. %>
<% unless @consolidacao.finalizada? && current_user.operador? %>
<%# Botão único + menu suspenso %>
<%# Modal — registro manual de entrega %>
Registro manual de entrega
Lançe uma entrega à mão, sem buscar na base de rastreio. Use quando o motorista foi ao local mas a nota ficou registrada com outro motorista.
<%# Motorista (default = o motorista da tela; pode trocar) %>
<%# Veículo (Q3) — a qual carro este lançamento pertence (soma no balde dele) %>
<%# NF + observação (texto livre) %>