%# app/views/operacoes_dashboard/_espelho.html.erb %> <%# Tabela espelho da planilha da operação: uma linha por NF com resultado, ocorrência, motorista etc. Busca textual (param q) e paginação (param pg) são server-side; o restante da URL (modo/operação/período/cross-filters) é preservado nos links e no form. %> <% pg_path = ->(n) { operacoes_dashboard_path(request.query_parameters.merge('pg' => n)) } %> <% resultado_badge = ->(status) { if status == 'completed' ['Entregue', 'bg-green-500/10 text-green-400 border-green-500/30'] elsif Entrega::STATUS_FALHA.include?(status) ['Falha', 'bg-red-500/10 text-red-400 border-red-500/30'] else ['Pendente', 'bg-yellow-500/10 text-yellow-400 border-yellow-500/30'] end } %>
Espelho por NF — pesquise por nota, motorista, unidade, ocorrência, veículo...
<%= @busca.present? ? %(Nenhuma entrega encontrada para "#{@busca}".) : 'Nenhuma entrega para exibir.' %>
<% else %>| Data | NF | <% if @modo == 'global' %>Operação | <% end %>Destinatário | Unidade | Motorista | Veículo | Resultado | Ocorrência | Status |
|---|---|---|---|---|---|---|---|---|---|
| <%= data.respond_to?(:strftime) ? data.strftime('%d/%m/%y %H:%M') : data.to_s.first(16) %> | <%= r['reference_id'] %> | <% if @modo == 'global' %><%= r['operacao'] %> | <% end %><%= (r['nome_completo'].presence || '—').truncate(28) %> | <%= r['contact_name'].to_s.truncate(24).presence || '—' %> | <%= r['driver'].presence || '—' %> | <%= r['vehicle'].presence || '—' %> | <%= rotulo %> | <%= r['observation'].to_s.truncate(32).presence || '—' %> | <%= r['status_gade'].presence || '—' %> |
<%= (@espelho_pagina - 1) * OperacoesDashboardController::ESPELHO_POR_PAGINA + 1 %>–<%= [(@espelho_pagina) * OperacoesDashboardController::ESPELHO_POR_PAGINA, @espelho_total].min %> de <%= @espelho_total %> entregas
<% if @espelho_paginas > 1 %>