Filtro de conta configurável (account_id texto, conta vazia, opção "all")

account_id na tabela externa é texto e os registros recentes vêm com conta
vazia (junho estava 100% em conta vazia), então o filtro fixo em 95907 (.to_i)
zerava o dashboard. da_conta_gade agora lê DB_EXISTING_ACCOUNT_ID como lista de
contas (texto) ou "all"/vazio para não filtrar. .env.example documentado.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-16 02:53:35 -03:00
parent c22d1da51f
commit aecd7d1427
2 changed files with 16 additions and 2 deletions

View File

@@ -36,8 +36,17 @@ class Entrega < ApplicationRecord
where(planned_date: data.beginning_of_month..data.end_of_month)
}
# Filtra pela(s) conta(s) configurada(s) em DB_EXISTING_ACCOUNT_ID.
# A coluna account_id é TEXTO e pode vir vazia, então comparamos como string.
# Aceita: "95907" (uma) | "95907,12345" (várias) | "all" ou vazio (sem filtro).
# Use "95907," (com vírgula) para incluir também os registros de conta vazia.
scope :da_conta_gade, -> {
where(account_id: ENV.fetch('DB_EXISTING_ACCOUNT_ID', 95907).to_i)
contas = ENV.fetch('DB_EXISTING_ACCOUNT_ID', '95907').to_s.strip
if contas.empty? || contas.casecmp?('all')
all
else
where(account_id: contas.split(',', -1).map(&:strip))
end
}
# ── Métodos de classe ────────────────────────────────────────