Pagamento por checkout + consolidação por veículo (em vez de rota)

Regra de pagamento:
- Entrega.pagas agora exige status='completed' E checkout preenchido
  (antes era checkin). Afeta dashboard, painel do motorista, job 1h e
  elegibilidade das consolidações de forma consistente.

Veículo no lugar de rota na consolidação:
- migration troca consolidacoes.route_ids por vehicle_ids (jsonb + gin)
- Entrega: da_veiculo/veiculos_unicos; contar_pagas usa vehicle
- new.html.erb: filtro "Veículos" (multi-select por vehicle)
- validar.html.erb: mostra o veículo em vez do código da rota
- filtros/elegibilidade do controller passam a usar vehicle_ids

Docs/diagnóstico atualizados.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-16 02:17:25 -03:00
parent 13b0161dd5
commit 19b7cc838f
11 changed files with 58 additions and 35 deletions

View File

@@ -24,14 +24,14 @@ namespace :reem do
puts " status='completed': #{no_periodo.where(status: 'completed').count}"
puts " checkin preenchido: #{no_periodo.where.not(checkin: nil).count}"
puts " checkout preenchido: #{no_periodo.where.not(checkout: nil).count}"
puts " .pagas (completed + checkin): #{no_periodo.pagas.count}"
puts " .pagas (completed + checkout): #{no_periodo.pagas.count}"
puts "-------------------------------------------------"
puts "planned_date mais antiga: #{Entrega.minimum(:planned_date)}"
puts "planned_date mais recente: #{Entrega.maximum(:planned_date)}"
puts "================================================="
puts "Leitura:"
puts " • 'SEM filtro' > 0 e 'com filtro Gade' = 0 → ajuste DB_EXISTING_ACCOUNT_ID no .env"
puts " • total > 0 mas '.pagas' = 0 (checkin vazio) regra de pagamento deveria usar checkout"
puts " • total > 0 mas '.pagas' = 0 (checkout vazio) → entregas sem checkout não contam como pagas"
puts " • tudo 0 → não há dados nesse período (veja datas acima)"
rescue => e
warn "[diagnostico] Falha: #{e.class} - #{e.message}"