From aecd7d142768fbc4f68c8a2be04dccc93c3017c4463651ae44abbc328c2639b3 Mon Sep 17 00:00:00 2001 From: victor Date: Tue, 16 Jun 2026 02:53:35 -0300 Subject: [PATCH] =?UTF-8?q?Filtro=20de=20conta=20configur=C3=A1vel=20(acco?= =?UTF-8?q?unt=5Fid=20texto,=20conta=20vazia,=20op=C3=A7=C3=A3o=20"all")?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- .env.example | 7 ++++++- app/models/entrega.rb | 11 ++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/.env.example b/.env.example index 62f8f4d..65d7cbb 100644 --- a/.env.example +++ b/.env.example @@ -18,7 +18,12 @@ DB_PASSWORD=senha_segura # ── Tabela existente (apenas leitura — NÃO modificar) ──────── DB_EXISTING_TABLE=db_reem_simplerout_2026 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 ──────────────────────────────────────────── # Gere com: docker-compose exec app bundle exec rails secret diff --git a/app/models/entrega.rb b/app/models/entrega.rb index f384028..ce86d8a 100644 --- a/app/models/entrega.rb +++ b/app/models/entrega.rb @@ -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 ────────────────────────────────────────