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

@@ -18,7 +18,12 @@ DB_PASSWORD=senha_segura
# ── Tabela existente (apenas leitura — NÃO modificar) ──────── # ── Tabela existente (apenas leitura — NÃO modificar) ────────
DB_EXISTING_TABLE=db_reem_simplerout_2026 DB_EXISTING_TABLE=db_reem_simplerout_2026
DB_EXISTING_SCHEMA=public DB_EXISTING_SCHEMA=public
DB_EXISTING_ACCOUNT_ID=95907 # Conta(s) consideradas. A coluna account_id é texto e pode vir vazia.
# 95907 → só essa conta
# 95907,12345 → várias contas
# 95907, → essa conta + os registros de conta vazia
# all (ou vazio)→ NÃO filtra por conta (conta tudo da tabela) ← recomendado aqui
DB_EXISTING_ACCOUNT_ID=all
# ── Rails Security ──────────────────────────────────────────── # ── Rails Security ────────────────────────────────────────────
# Gere com: docker-compose exec app bundle exec rails secret # Gere com: docker-compose exec app bundle exec rails secret

View File

@@ -36,8 +36,17 @@ class Entrega < ApplicationRecord
where(planned_date: data.beginning_of_month..data.end_of_month) 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, -> { 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 ──────────────────────────────────────── # ── Métodos de classe ────────────────────────────────────────