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

@@ -22,8 +22,8 @@ class ConsolidacoesController < ApplicationController
@consolidacoes = @consolidacoes.where(id: ids)
end
if params[:route_id].present?
@consolidacoes = @consolidacoes.where('route_ids @> ?', [params[:route_id]].to_json)
if params[:vehicle].present?
@consolidacoes = @consolidacoes.where('vehicle_ids @> ?', [params[:vehicle]].to_json)
end
end
@@ -35,7 +35,7 @@ class ConsolidacoesController < ApplicationController
data_fim: Date.current
)
@motoristas = Entrega.motoristas_ativos
@rotas = Entrega.rotas_unicas
@veiculos = Entrega.veiculos_unicos
end
# POST /consolidacoes
@@ -160,10 +160,10 @@ class ConsolidacoesController < ApplicationController
def preparar_form_new
@motoristas = Entrega.motoristas_ativos
@rotas = Entrega.rotas_unicas
@veiculos = Entrega.veiculos_unicos
end
def consolidacao_params
params.require(:consolidacao).permit(:nome, :data_inicio, :data_fim, route_ids: [])
params.require(:consolidacao).permit(:nome, :data_inicio, :data_fim, vehicle_ids: [])
end
end