Grande correção do filtro de veiculos na area de consolidação
This commit is contained in:
@@ -159,6 +159,10 @@ class ConsolidacoesController < ApplicationController
|
||||
@apontamentos = @consolidacao.consolidacao_entregas.apontamentos
|
||||
.order(:motorista_nome, :tracking_id)
|
||||
.group_by { |ce| [ce.motorista_nome, ce.tracking_id] }
|
||||
# Veículos consolidados por motorista (breakdown informativo no card).
|
||||
@veiculos_por_motorista = @consolidacao.consolidacao_veiculos.ativos
|
||||
.order(:vehicle)
|
||||
.group_by(&:motorista_nome)
|
||||
end
|
||||
|
||||
# GET /consolidacoes/:id/wizard — PASSO 1: selecionar motorista
|
||||
@@ -177,14 +181,20 @@ class ConsolidacoesController < ApplicationController
|
||||
.apontamentos
|
||||
.where(motorista_nome: cm.motorista_nome)
|
||||
.distinct.count(:tracking_id)
|
||||
# Status por veículo (para o breakdown do card) e estado de fechamento.
|
||||
veiculos = @consolidacao.consolidacao_veiculos.ativos
|
||||
.where(motorista_nome: cm.motorista_nome)
|
||||
.order(:vehicle)
|
||||
{
|
||||
registro: cm,
|
||||
total: total,
|
||||
classificadas: classificadas,
|
||||
apontamentos: apontamentos,
|
||||
# Espelha o gate do servidor (todas_entregas_classificadas?): um motorista
|
||||
# só com apontamento manual tem 0 entregas elegíveis e já está "completo".
|
||||
completo: total.zero? || classificadas >= total
|
||||
veiculos: veiculos,
|
||||
veiculos_fechados: veiculos.count(&:fechado?),
|
||||
# Espelha o gate do servidor (todas_entregas_classificadas?): exige tudo
|
||||
# classificado E todos os veículos ativos fechados (consolidados).
|
||||
completo: @consolidacao.motorista_completo?(cm.motorista_nome)
|
||||
}
|
||||
end
|
||||
end
|
||||
@@ -199,7 +209,7 @@ class ConsolidacoesController < ApplicationController
|
||||
redirect_to @consolidacao, notice: 'Consolidação finalizada! Motoristas notificados.'
|
||||
else
|
||||
redirect_to wizard_consolidacao_path(@consolidacao),
|
||||
alert: 'Não é possível finalizar: existem entregas não classificadas.'
|
||||
alert: 'Não é possível finalizar: ainda há entregas não classificadas. Classifique-as ou arquive o veículo pendente.'
|
||||
end
|
||||
end
|
||||
|
||||
@@ -320,6 +330,7 @@ class ConsolidacoesController < ApplicationController
|
||||
nome = cm.motorista_nome
|
||||
ActiveRecord::Base.transaction do
|
||||
@consolidacao.consolidacao_entregas.where(motorista_nome: nome).delete_all
|
||||
@consolidacao.consolidacao_veiculos.where(motorista_nome: nome).delete_all
|
||||
cm.destroy!
|
||||
end
|
||||
# cm já não existe — atualiza o total da consolidação direto (soma dos ativos).
|
||||
|
||||
Reference in New Issue
Block a user