correção de bugs na area de Dashbord
This commit is contained in:
@@ -227,6 +227,22 @@ class DashboardController < ApplicationController
|
||||
# Custo por motorista (todos)
|
||||
@fin_por_motorista = cms.group(:motorista_nome).sum(:valor_total)
|
||||
.sort_by { |_, v| -v }
|
||||
|
||||
# Ranking CONSOLIDADO (aba "Consolidado" do card Motoristas): o valor REAL
|
||||
# fechado por motorista + quantas entregas entraram nesse fechamento.
|
||||
#
|
||||
# ⚠️ A quantidade é DISTINCT tracking_id, NÃO a contagem de linhas: a mesma
|
||||
# entrega pode ter vários pilares (Normal + Bônus + Retirada = 3 linhas em
|
||||
# consolidacao_entregas), e contar linhas inflaria o número de entregas.
|
||||
#
|
||||
# Partimos de @fin_por_motorista (que vem de `cms`, já .ativos) e só buscamos
|
||||
# a quantidade: assim a aba lista exatamente os motoristas do fechamento —
|
||||
# arquivado não aparece — e a soma bate com o KPI "Custo total" do topo.
|
||||
qtd_por_motorista = ces.group(:motorista_nome).distinct.count(:tracking_id)
|
||||
|
||||
@ranking_consolidado = @fin_por_motorista.map do |nome, valor|
|
||||
{ nome: nome, valor: valor, entregas: qtd_por_motorista[nome].to_i }
|
||||
end
|
||||
end
|
||||
|
||||
# `atendidas` já vem filtrado por checkout no período (concluídas + falhadas).
|
||||
|
||||
@@ -7,15 +7,27 @@ module Motorista
|
||||
def index
|
||||
nome = current_user.nome
|
||||
|
||||
# Card 1 — Valor ESTIMADO (mês atual): entregas pagas × preco_entrega
|
||||
# Card 1 — Valor ESTIMADO (mês atual): entregas ATENDIDAS × preco_entrega.
|
||||
#
|
||||
# Atendida = o motorista FOI ao local e fechou a visita, com sucesso
|
||||
# ('completed') OU insucesso ('failed') — no insucesso o deslocamento
|
||||
# aconteceu e teve custo, então a empresa paga os dois. É o MESMO recorte do
|
||||
# dashboard administrativo e da consolidação (ver Entrega::STATUS_ATENDIDO e
|
||||
# Entrega.contar_atendidas): usava `pagas` (só concluídas) e o motorista via
|
||||
# um valor MENOR que o do fechamento, sem entender de onde vinha a diferença.
|
||||
#
|
||||
# ⚠️ O eixo é o CHECKOUT (data real da visita), não planned_date: falhada TEM
|
||||
# checkout, e uma entrega planejada em 31/07 mas fechada em 01/08 pertence a
|
||||
# agosto — igual ao que a consolidação considera elegível.
|
||||
@estimado_inicio = Date.current.beginning_of_month
|
||||
@estimado_fim = Date.current
|
||||
entregas_mes = Entrega.pagas.da_conta_gade
|
||||
.do_motorista(nome)
|
||||
.no_periodo(@estimado_inicio, @estimado_fim)
|
||||
.count
|
||||
@valor_estimado = entregas_mes * Configuracao.preco_entrega
|
||||
@entregas_mes = entregas_mes
|
||||
atendidas = Entrega.atendidas.da_conta_gade
|
||||
.do_motorista(nome)
|
||||
.no_periodo_checkout(@estimado_inicio, @estimado_fim)
|
||||
@entregas_concluidas = atendidas.concluidas.count
|
||||
@entregas_falhadas = atendidas.falhadas.count
|
||||
@entregas_mes = @entregas_concluidas + @entregas_falhadas
|
||||
@valor_estimado = @entregas_mes * Configuracao.preco_entrega
|
||||
|
||||
# Card 2 — Valor CONSOLIDADO: soma das consolidações finalizadas
|
||||
@minhas_consolidacoes = Consolidacao.ativas
|
||||
|
||||
Reference in New Issue
Block a user