Correção da barra do ranking de motoristas
A barra era proporcional à QUANTIDADE de entregas, mas as duas abas do card são ordenadas por VALOR. Na aba Estimado dá no mesmo (valor = qtd × preço), mas na Consolidada bônus/retirada/termo mudam o preço unitário: com os dados do teste a barra do 3º (290 entregas, R$ 5.250) saía MAIOR que a do 2º (261 entregas, R$ 5.260), contradizendo a ordem do ranking. Invertia em três pontos da lista. Passa a escalar pelo valor, que é o número que ordena — as barras encurtam sempre de cima para baixo. Mantida a guarda de divisão por zero. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -6,11 +6,14 @@
|
|||||||
Locais: itens (array de hashes), vazio (texto do estado sem dados). %>
|
Locais: itens (array de hashes), vazio (texto do estado sem dados). %>
|
||||||
<% if itens.any? %>
|
<% if itens.any? %>
|
||||||
<div class="space-y-3">
|
<div class="space-y-3">
|
||||||
<%# Base da barra: o MAIOR nº de entregas da aba, não o primeiro item — a aba
|
<%# A barra é proporcional ao VALOR, que é o número pelo qual as duas abas são
|
||||||
consolidada é ordenada por VALOR, então o primeiro pode não ser o maior em
|
ordenadas — assim ela sempre encurta de cima para baixo.
|
||||||
quantidade e a barra passaria de 100%. Sem entregas (só bônus/desconto,
|
⚠️ Não voltar a usar :entregas aqui: na aba Estimado dá no mesmo (valor =
|
||||||
por exemplo) a barra fica vazia em vez de dividir por zero. %>
|
qtd × preço), mas na Consolidada quem tem mais entregas nem sempre tem o
|
||||||
<% max = itens.map { |x| x[:entregas].to_i }.max.to_f %>
|
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| %>
|
<% itens.each_with_index do |m, i| %>
|
||||||
<div class="flex items-center gap-3">
|
<div class="flex items-center gap-3">
|
||||||
<span class="text-xs font-bold w-5 text-center
|
<span class="text-xs font-bold w-5 text-center
|
||||||
@@ -27,7 +30,7 @@
|
|||||||
<%# Barra de progresso %>
|
<%# Barra de progresso %>
|
||||||
<div class="w-full bg-white/5 rounded-full h-1.5">
|
<div class="w-full bg-white/5 rounded-full h-1.5">
|
||||||
<div class="h-1.5 rounded-full bg-[#f97316]"
|
<div class="h-1.5 rounded-full bg-[#f97316]"
|
||||||
style="width: <%= max.zero? ? 0 : [(m[:entregas] / max * 100).round, 100].min %>%"></div>
|
style="width: <%= max.zero? ? 0 : [(m[:valor] / max * 100).round, 100].min %>%"></div>
|
||||||
</div>
|
</div>
|
||||||
<span class="text-gray-400 text-xs"><%= m[:entregas] %> entregas</span>
|
<span class="text-gray-400 text-xs"><%= m[:entregas] %> entregas</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user