Ajustes de UX
This commit is contained in:
@@ -24,11 +24,12 @@ module Analytics
|
||||
# filtros: Hash de cross-filter (coluna => valor) aplicado em memória — clicar
|
||||
# numa célula da tabela (motorista/STS/status/observação) refiltra TODO o
|
||||
# dashboard por aquele valor. Ex.: { 'driver' => 'Carlos' }.
|
||||
def initialize(tabelas:, inicio: nil, fim: nil, filtros: {})
|
||||
def initialize(tabelas:, inicio: nil, fim: nil, filtros: {}, data: nil)
|
||||
@tabelas = Operacao.sanitizar(Array(tabelas))
|
||||
@inicio = inicio&.to_date
|
||||
@fim = fim&.to_date
|
||||
@filtros = (filtros || {}).reject { |_, v| v.to_s.strip.empty? }
|
||||
@data = data&.to_date # filtro por DIA (clique no gráfico "Entregas por Dia")
|
||||
end
|
||||
|
||||
def operacoes_label
|
||||
@@ -37,11 +38,11 @@ module Analytics
|
||||
|
||||
# Linhas após o cross-filter — base de TODAS as agregações/KPIs.
|
||||
def linhas
|
||||
@linhas ||= if @filtros.empty?
|
||||
registros
|
||||
else
|
||||
registros.select { |r| @filtros.all? { |col, val| r[col].to_s == val.to_s } }
|
||||
end
|
||||
@linhas ||= begin
|
||||
base = @filtros.empty? ? registros
|
||||
: registros.select { |r| @filtros.all? { |col, val| r[col].to_s == val.to_s } }
|
||||
@data ? base.select { |r| data_de(r['checkout']) == @data } : base
|
||||
end
|
||||
end
|
||||
|
||||
# Taxas (úteis no comparativo).
|
||||
|
||||
Reference in New Issue
Block a user