Correção de alguns valores no dash principal
This commit is contained in:
@@ -102,6 +102,13 @@ class DashboardController < ApplicationController
|
||||
@entregas_pendentes = pendentes.count
|
||||
@total_entregas = @entregas_atendidas + @entregas_pendentes
|
||||
|
||||
# Quantas NOTAS FISCAIS distintas estão por trás das visitas atendidas. É o
|
||||
# número que o dashboard de Operações mostra (e que o cliente paga/confere
|
||||
# nos documentos); aqui contamos VISITAS, porque é por ida ao local que o
|
||||
# motorista recebe. Exibir os dois lado a lado evita a leitura de que uma das
|
||||
# telas está errada quando elas divergem — a diferença são retentativas.
|
||||
@notas_atendidas = atendidas.distinct.count(:reference_id)
|
||||
|
||||
# Configurações de preço
|
||||
config = Configuracao.mapa_de_precos
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ class OperacoesDashboardController < ApplicationController
|
||||
authorize :dashboard, :operacoes?
|
||||
|
||||
@periodo_inicio, @periodo_fim = periodo_selecionado
|
||||
@periodo_explicito = periodo_explicito?
|
||||
@modo = MODOS.include?(params[:modo]) ? params[:modo] : 'operacao'
|
||||
@operacoes_agrupadas = Operacao.agrupadas_por_mes
|
||||
@tabelas_validas = Operacao.nomes_validos
|
||||
@@ -26,6 +27,7 @@ class OperacoesDashboardController < ApplicationController
|
||||
when 'global'
|
||||
# Global: agrega TODAS as operações dentro da faixa de datas escolhida.
|
||||
@metricas = montar(@tabelas_validas, inicio: @periodo_inicio, fim: @periodo_fim, filtros: @filtros, data: @data_filtro)
|
||||
@fora_operacao = Analytics::NotasForaOperacao.new(inicio: @periodo_inicio, fim: @periodo_fim)
|
||||
when 'comparar'
|
||||
# Comparar: cada operação inteira (sem filtro de data — só vale no Global).
|
||||
@op_a = Operacao.sanitizar([params[:op_a]]).first || @tabelas_validas[0]
|
||||
@@ -33,9 +35,14 @@ class OperacoesDashboardController < ApplicationController
|
||||
@metricas_a = montar([@op_a]) if @op_a
|
||||
@metricas_b = montar([@op_b]) if @op_b
|
||||
else
|
||||
# Operação única: a operação inteira (a data vem dos próprios dados).
|
||||
# Operação única. Sem datas na URL o recorte é a operação inteira (o
|
||||
# período vem dos próprios dados) — é o que mantém utilizável abrir uma
|
||||
# operação de meses atrás. Quando o operador ESCOLHE um período, ele passa
|
||||
# a valer aqui também: sem isso, comparar esta tela com o dashboard
|
||||
# financeiro "no mesmo período" era impossível, porque a data era ignorada.
|
||||
@operacao = Operacao.sanitizar([params[:operacao]]).first || @tabelas_validas.first
|
||||
@metricas = montar([@operacao], filtros: @filtros, data: @data_filtro) if @operacao
|
||||
@metricas = montar([@operacao], filtros: @filtros, data: @data_filtro, **faixa_ativa) if @operacao
|
||||
@fora_operacao = Analytics::NotasForaOperacao.new(inicio: @periodo_inicio, fim: @periodo_fim) if @periodo_explicito
|
||||
end
|
||||
end
|
||||
|
||||
@@ -46,6 +53,7 @@ class OperacoesDashboardController < ApplicationController
|
||||
authorize :dashboard, :operacoes?
|
||||
|
||||
@periodo_inicio, @periodo_fim = periodo_selecionado
|
||||
@periodo_explicito = periodo_explicito?
|
||||
@modo = params[:modo] == 'global' ? 'global' : 'operacao'
|
||||
@operacoes_agrupadas = Operacao.agrupadas_por_mes
|
||||
@tabelas_validas = Operacao.nomes_validos
|
||||
@@ -56,7 +64,7 @@ class OperacoesDashboardController < ApplicationController
|
||||
@metricas = montar(@tabelas_validas, inicio: @periodo_inicio, fim: @periodo_fim, filtros: @filtros, data: @data_filtro)
|
||||
else
|
||||
@operacao = Operacao.sanitizar([params[:operacao]]).first || @tabelas_validas.first
|
||||
@metricas = montar([@operacao], filtros: @filtros, data: @data_filtro) if @operacao
|
||||
@metricas = montar([@operacao], filtros: @filtros, data: @data_filtro, **faixa_ativa) if @operacao
|
||||
end
|
||||
|
||||
montar_tabela_espelho if @metricas
|
||||
@@ -100,6 +108,20 @@ class OperacoesDashboardController < ApplicationController
|
||||
@espelho_linhas = linhas[(@espelho_pagina - 1) * ESPELHO_POR_PAGINA, ESPELHO_POR_PAGINA] || []
|
||||
end
|
||||
|
||||
# Período escolhido pelo operador (veio na URL) x default da tela. Só o
|
||||
# explícito é aplicado no modo Operação — ver o comentário no #index.
|
||||
def periodo_explicito?
|
||||
params[:inicio].present? || params[:fim].present?
|
||||
end
|
||||
|
||||
# Faixa a repassar para as métricas no modo Operação: vazia quando o operador
|
||||
# não escolheu período (aí o recorte é a operação inteira).
|
||||
def faixa_ativa
|
||||
return {} unless @periodo_explicito
|
||||
|
||||
{ inicio: @periodo_inicio, fim: @periodo_fim }
|
||||
end
|
||||
|
||||
def montar(tabelas, inicio: nil, fim: nil, filtros: {}, data: nil)
|
||||
Analytics::OperacaoMetricas.new(tabelas: tabelas, inicio: inicio, fim: fim, filtros: filtros, data: data)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user