diff --git a/app/views/dashboard/_ranking_motoristas.html.erb b/app/views/dashboard/_ranking_motoristas.html.erb index f673ab0..fdb5bb8 100644 --- a/app/views/dashboard/_ranking_motoristas.html.erb +++ b/app/views/dashboard/_ranking_motoristas.html.erb @@ -6,11 +6,14 @@ Locais: itens (array de hashes), vazio (texto do estado sem dados). %> <% if itens.any? %>
- <%# Base da barra: o MAIOR nº de entregas da aba, não o primeiro item — a aba - consolidada é ordenada por VALOR, então o primeiro pode não ser o maior em - quantidade e a barra passaria de 100%. Sem entregas (só bônus/desconto, - por exemplo) a barra fica vazia em vez de dividir por zero. %> - <% max = itens.map { |x| x[:entregas].to_i }.max.to_f %> + <%# A barra é proporcional ao VALOR, que é o número pelo qual as duas abas são + ordenadas — assim ela sempre encurta de cima para baixo. + ⚠️ Não voltar a usar :entregas aqui: na aba Estimado dá no mesmo (valor = + qtd × preço), mas na Consolidada quem tem mais entregas nem sempre tem o + maior valor (bônus/retirada/termo mudam o preço unitário) e a barra do 3º + ficava MAIOR que a do 2º, contradizendo a ordem do ranking. + Zero vira barra vazia em vez de divisão por zero. %> + <% max = itens.map { |x| x[:valor].to_f }.max.to_f %> <% itens.each_with_index do |m, i| %>
+ style="width: <%= max.zero? ? 0 : [(m[:valor] / max * 100).round, 100].min %>%">
<%= m[:entregas] %> entregas