%# 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 %>
📅 <%= l @consolidacao.data_inicio, format: :short %> → <%= 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.operador? %>
<%# Botão único + menu suspenso %>
➕ Adicionar / Ferramentas
▾
📝 Apontamento manual
nota que chegou por fora (busca pela NF)
🧑✈️ Adicionar motorista
incluir/restaurar um motorista nesta consolidação
<%# Modal — apontamento manual (busca NF) %>
Apontamento manual
✕
Busque a nota pela base de rastreio e adicione ao fechamento do motorista correspondente.
<%# Busca da NF %>
<%# Resultados (preenchidos via JS) %>
<%# Confirmação — pilares (múltiplos) + adicionar (oculto até a busca retornar) %>
Classificar como (pode marcar mais de uma)
<% [['entrega_normal', '🚚 Entrega Normal', Configuracao.preco_entrega],
['retirada', '📦 Retirada', Configuracao.preco_retirada],
['bonus', '⭐ Bônus', Configuracao.preco_bonus],
['desconto', '⚠️ Desconto', Configuracao.preco_desconto],
['extraordinaria', '✨ Entrega Extraordinária', Configuracao.preco_extraordinaria]].each do |tipo, label, preco| %>
class="accent-orange-500">
<%= label %><%= moeda(preco) %>
<% end %>
Adicionar apontamento ✓
<%# Modal — adicionar motorista %>
🧑✈️ Adicionar motorista
✕
Inclua um motorista nesta consolidação. Se ele estava arquivado, será restaurado.
<%= form_with url: adicionar_motorista_consolidacao_path(@consolidacao), method: :post do |f| %>
Motorista
<% Array(@motoristas_disponiveis).each do |nome| %>
<% end %>
Adicionar ✓
<% end %>
<% end %>
<%# Lista de motoristas %>
<% pode_arquivar_motorista = !(@consolidacao.finalizada? && current_user.operador?) %>
<% @motoristas.each do |m| %>
<%# Container relativo: o card é um link; o botão de arquivar fica FORA da
âncora (não se pode aninhar
<%# Motoristas arquivados — restauráveis %>
<% if @arquivados.present? %>
🗄️ Motoristas arquivados (<%= @arquivados.size %>)
<% @arquivados.each do |cm| %>
<%= cm.motorista_nome %>
Arquivado · não conta no total
<% if pode_arquivar_motorista %>
<%= button_to '♻️ Restaurar',
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]' %>
<% end %>
<% if policy(@consolidacao).destroy? %>
<%= button_to '🗑️ Excluir',
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]' %>
<% end %>
<% end %>
<% end %>
<%# Finalizar — só habilita se tudo classificado %>
<% tudo_completo = @motoristas.all? { |m| m[:completo] } && @motoristas.any? %>
Total da consolidação
<%= moeda(@consolidacao.valor_total) %>
<% if @consolidacao.rascunho? %>
<%= button_to 'Finalizar consolidação ✓', finalizar_consolidacao_path(@consolidacao),
method: :post,
disabled: !tudo_completo,
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
#{tudo_completo ? 'bg-green-600 hover:bg-green-500 text-white cursor-pointer' : 'bg-[#2a2a2a] text-gray-600 cursor-not-allowed'}" %>
<% end %>
<% unless tudo_completo %>
⚠️ Classifique todas as entregas de todos os motoristas para poder finalizar.
<% end %>