<%# app/views/consolidacoes/wizard.html.erb — PASSO 1: Selecionar motorista %> <% content_for :title, "Wizard — #{@consolidacao.nome}" %>
<%# Header do wizard %>
<%= link_to '← Voltar para o resumo', consolidacao_path(@consolidacao), class: 'text-gray-500 hover:text-orange-500 text-sm' %>

<%= @consolidacao.nome %>

<%= icone :calendario %> <%= l @consolidacao.data_inicio, format: :short %> <%= icone :avancar, tamanho: 'w-3.5 h-3.5' %> <%= l @consolidacao.data_fim, format: :short %> · <%= badge_status(@consolidacao.status) %>

<%# Indicador de passos %>
1 Selecionar motorista
2 Validar entregas
3 Revisar
<%# Caixa de ferramentas do Passo 1 — concentra "Apontamento manual" (busca pela NF) e "Adicionar motorista" num único botão com menu suspenso. %> <% unless @consolidacao.finalizada? && !current_user.pode?('consolidacao.editar_finalizada') %>
<%# Botão único + menu suspenso %> <%# Modal — apontamento manual (busca NF) %> <%# Modal — adicionar motorista %>
<% end %> <%# Lista de motoristas %> <% pode_arquivar_motorista = !(@consolidacao.finalizada? && !current_user.pode?('consolidacao.editar_finalizada')) %>
<% @motoristas.each do |m| %> <%# Container relativo: o card é um link; o botão de arquivar fica FORA da âncora (não se pode aninhar
/ dentro de ). %>
<%= link_to validar_consolidacao_consolidacao_entregas_path(@consolidacao, motorista: m[:registro].motorista_nome), class: "block bg-[#1a1a1a] border rounded-xl p-5 transition-colors #{m[:completo] ? 'border-green-600 hover:border-green-500' : 'border-[#2a2a2a] hover:border-orange-500'}" do %>
<%= m[:completo] ? icone(:confirmar, cor: nil, tamanho: 'w-7 h-7') : m[:registro].motorista_nome.first.upcase %>

<%= m[:registro].motorista_nome %>

<%= m[:total] %> entregas pagas no período · <%= m[:classificadas] %>/<%= m[:total] %> classificadas <% if m[:apontamentos].positive? %> · <%= icone :adicionar, cor: nil, tamanho: 'w-3.5 h-3.5' %> <%= m[:apontamentos] %> apontamento<%= 's' if m[:apontamentos] > 1 %> <% end %>

<% if m[:veiculos_total] > 0 %>

<%= icone :veiculo, cor: nil %> <%= m[:veiculos_fechados] %>/<%= m[:veiculos_total] %> veículo<%= 's' if m[:veiculos_total] > 1 %> consolidado<%= 's' if m[:veiculos_fechados] != 1 %> <% if m[:veiculos_pendentes].any? %> · pendente<%= 's' if m[:veiculos_pendentes].size > 1 %>: <%= m[:veiculos_pendentes].join(', ') %> <% end %>

<% end %>

<%= moeda(m[:registro].valor_total) %>

<%= icone :avancar, cor: 'text-gray-600', tamanho: 'w-6 h-6', espaco: false %>
<% pct = m[:total].zero? ? 0 : (m[:classificadas] * 100 / m[:total]) %>
<% end %> <% if pode_arquivar_motorista %> <%= button_to arquivar_motorista_consolidacao_path(@consolidacao, consolidacao_motorista_id: m[:registro].id), method: :post, form: { data: { turbo_confirm: "Arquivar #{m[:registro].motorista_nome} desta consolidação? Você poderá restaurar depois." }, class: 'absolute top-3 right-3' }, class: 'text-gray-500 hover:text-red-400 border border-[#2a2a2a] hover:border-red-500/50 rounded-lg w-9 h-9 flex items-center justify-center', title: "Arquivar #{m[:registro].motorista_nome}" do %> <%= icone :arquivar, cor: nil, tamanho: 'w-5 h-5', espaco: false %> <% end %> <% end %>
<% end %>
<%# Motoristas arquivados — restauráveis %> <% if @arquivados.present? %>

<%= icone :arquivar, espaco: false %> Motoristas arquivados (<%= @arquivados.size %>)

<% @arquivados.each do |cm| %>

<%= cm.motorista_nome %>

Arquivado · não conta no total

<% if pode_arquivar_motorista %> <%= button_to desarquivar_motorista_consolidacao_path(@consolidacao, consolidacao_motorista_id: cm.id), method: :post, class: 'text-green-400 hover:text-green-300 border border-[#2a2a2a] hover:border-green-500/50 px-3 py-2 rounded-lg text-xs min-h-[40px] inline-flex items-center gap-1.5' do %> <%= icone :restaurar, cor: nil, tamanho: 'w-4 h-4' %> Restaurar <% end %> <% end %> <% if policy(@consolidacao).destroy? %> <%= button_to excluir_motorista_consolidacao_path(@consolidacao, consolidacao_motorista_id: cm.id), method: :delete, form: { data: { turbo_confirm: "Excluir DEFINITIVAMENTE #{cm.motorista_nome} desta consolidação? Os lançamentos dele serão apagados e isso não pode ser desfeito." } }, class: 'text-red-400 hover:text-red-300 border border-[#2a2a2a] hover:border-red-500/50 px-3 py-2 rounded-lg text-xs min-h-[40px] inline-flex items-center gap-1.5' do %> <%= icone :excluir, cor: nil, tamanho: 'w-4 h-4' %> Excluir <% end %> <% end %>
<% end %>
<% end %> <%# Finalizar — habilita quando tudo classificado. Se sobram veículos pendentes mas já há veículos consolidados, oferece "arquivar pendentes e finalizar". %> <% tudo_completo = @motoristas.all? { |m| m[:completo] } && @motoristas.any? %> <% tem_consolidados = @motoristas.any? { |m| m[:veiculos_fechados] > 0 || m[:veiculos_prontos] > 0 } %> <% tem_pendentes = @motoristas.any? { |m| m[:veiculos_pendentes].any? } %>

Total da consolidação

<%= moeda(@consolidacao.valor_total) %>

<% if @consolidacao.rascunho? %>
<% if !tudo_completo && tem_consolidados && tem_pendentes %> <%= button_to finalizar_parcial_consolidacao_path(@consolidacao), method: :post, form: { data: { turbo_confirm: 'Arquivar TODOS os veículos ainda não classificados 100% e finalizar? Eles ficam de fora desta consolidação (você resolve depois). Os veículos consolidados são pagos normalmente.' } }, class: 'bg-orange-500 hover:bg-orange-600 text-black font-bold px-5 py-3.5 rounded-lg min-h-[48px] flex items-center justify-center text-center gap-2' do %> <%= icone :travado, cor: nil, tamanho: 'w-5 h-5' %> Arquivar pendentes e finalizar <% end %> <% end %> <%= button_to finalizar_consolidacao_path(@consolidacao), method: :post, disabled: !tudo_completo, form: { data: { turbo_confirm: 'Finalizar? Após finalizada, a consolidação não poderá ser editada por operadores.' } }, class: "font-bold px-6 py-3.5 rounded-lg min-h-[48px] transition-colors inline-flex items-center justify-center gap-2 #{tudo_completo ? 'bg-green-600 hover:bg-green-500 text-white cursor-pointer' : 'bg-[#2a2a2a] text-gray-600 cursor-not-allowed'}" do %> Finalizar consolidação <%= icone :confirmar, cor: nil, espaco: false %> <% end %>
<% end %>
<% unless tudo_completo %>

<%= icone :alerta, cor: 'text-amber-400' %> Classifique todas as entregas de todos os motoristas para finalizar tudo<% if tem_consolidados && tem_pendentes %> — ou use “Arquivar pendentes e finalizar” para fechar só os veículos já consolidados.<% end %>

<% end %>