Ajustes de UX

This commit is contained in:
2026-06-30 18:05:20 -03:00
parent 96d01aa52a
commit 8d0d262bf8
4 changed files with 63 additions and 21 deletions

View File

@@ -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).