Compare commits

...

2 Commits

Author SHA256 Message Date
a40cb29b96 Atualiza README: correções 16/06, checkout, veículo, filtro de conta 2026-06-16 02:54:57 -03:00
aecd7d1427 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>
2026-06-16 02:53:35 -03:00
7 changed files with 5458 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

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

View File

@@ -370,6 +370,7 @@ docker-compose exec app bundle exec rspec
- **Dashboard com filtro de faixa de datas** (Flatpickr, modo range) no lugar da navegação por mês; o controller passou a consultar por período e a respeitar `.da_conta_gade`. - **Dashboard com filtro de faixa de datas** (Flatpickr, modo range) no lugar da navegação por mês; o controller passou a consultar por período e a respeitar `.da_conta_gade`.
- **Regra de pagamento por checkout:** `Entrega.pagas` agora é `status='completed' AND checkout IS NOT NULL` (antes era `checkin`). Vale para dashboard, painel do motorista, job de 1h e elegibilidade das consolidações. - **Regra de pagamento por checkout:** `Entrega.pagas` agora é `status='completed' AND checkout IS NOT NULL` (antes era `checkin`). Vale para dashboard, painel do motorista, job de 1h e elegibilidade das consolidações.
- **Consolidação por veículo:** o filtro/identificação passou de rota (`route_id`, UUID) para **veículo** (`vehicle`). Migration troca `consolidacoes.route_ids` por `vehicle_ids`. - **Consolidação por veículo:** o filtro/identificação passou de rota (`route_id`, UUID) para **veículo** (`vehicle`). Migration troca `consolidacoes.route_ids` por `vehicle_ids`.
- **Filtro de conta configurável:** `account_id` na tabela externa é texto e vinha vazio nos registros recentes (o dado de junho estava 100% em conta vazia, e o filtro fixo em `95907` zerava o dashboard). `DB_EXISTING_ACCOUNT_ID` agora aceita lista de contas ou `all`/vazio (sem filtro). Comparação feita como texto.
### ⚙️ Automação / diagnóstico ### ⚙️ Automação / diagnóstico
- `docker-compose.yml`: o boot roda `rails db:prepare` antes do servidor — **não precisa mais rodar `db:migrate` na mão** após o `up`. - `docker-compose.yml`: o boot roda `rails db:prepare` antes do servidor — **não precisa mais rodar `db:migrate` na mão** após o `up`.

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 ────────────────────────────────────────