%# app/views/dashboard/index.html.erb %> <%# Fase 3: Dashboard com cards, gráfico Chart.js e cálculo ao vivo %> <%# Não cachear no Turbo: o snapshot congelava o gráfico/calendário (DOM já <%# alterado pelo JS, sem reexecutar scripts) e só voltava com F5. %> <% content_for :head do %> <%# Flatpickr — CSS no
(evita flash sem estilo) + tema escuro oficial %> <% end %> <%# Quick-ranges no formato YYYY-MM-DD para os atalhos do filtro %> <% hoje = Date.current %> <% atalhos = { 'Hoje' => [hoje, hoje], '7 dias' => [hoje - 6, hoje], 'Este mês' => [hoje.beginning_of_month, hoje], '30 dias' => [hoje - 29, hoje] } %><%= @periodo_inicio.strftime('%d/%m/%Y') %> – <%= @periodo_fim.strftime('%d/%m/%Y') %> · Atualizado às <%= Time.now.strftime('%H:%M') %>
💰 Valor Estimado
<%= moeda(@valor_estimado) %>
<%= @entregas_pagas %> entregas concluídas
💼 Consolidado / Pago
<%= moeda(@fin_custo_total) %>
consolidado no período
📦 Total Entregas
<%= @total_entregas %>
📋 Consolidações
<%= @consolidacoes_mes.count %>
🚗 Motoristas
<%= @motoristas.count %>
com entregas no período
💰 Custo total
<%= moeda(@fin_custo_total) %>
<%= @fin_qtd_entregas %> entregas classificadas
🎫 Ticket médio
<%= moeda(@fin_ticket_medio) %>
por entrega
✅ Pago
<%= moeda(@fin_pago) %>
já confirmado
🕗 A pagar
<%= moeda(@fin_pendente) %>
pendente
Valor estimado por dia no período<%= ' · operação filtrada' if @operacao_filtro.present? %>
Nenhuma entrega concluída neste período
Valor consolidado no período
<% if @fin_por_operacao.any? %> <% else %>Sem dados no período
Por tipo de lançamento
<% if @fin_por_tipo.any? %> <% else %>Sem dados no período
Por motorista no período
<% if @fin_por_motorista.any? %> <% else %>Sem dados no período
Pagos por data de pagamento · pendentes no período
<% if (@pag_pago_qtd + @pag_pend_qtd).zero? %>Nenhum pagamento ou pendência no período
| Pago em | Motorista | Consolidação | Forma | Valor |
|---|---|---|---|---|
| <%= l cm.pago_em.to_date, format: :short %> | <%= cm.motorista_nome %> | <%= link_to cm.consolidacao.nome, consolidacao_path(cm.consolidacao), class: 'text-gray-300 hover:text-orange-500' %> | <%= cm.forma_pagamento&.humanize || '—' %> | <%= moeda(cm.valor_total) %> |
Nenhum pagamento realizado neste período.
<% end %>| Motorista | Consolidação | Valor |
|---|---|---|
| <%= cm.motorista_nome %> | <%= link_to cm.consolidacao.nome, consolidacao_path(cm.consolidacao), class: 'text-gray-300 hover:text-orange-500' %> | <%= moeda(cm.valor_total) %> |
Nenhuma pendência no período. 🎉
<% end %><%= qtd %>
<%= local.to_s.truncate(20) %>
<%= ((qtd / total_op) * 100).round %>%