correção do filtro de veiculos na area de consolidação
This commit is contained in:
@@ -464,36 +464,9 @@ class ConsolidacaoEntregasController < ApplicationController
|
||||
# { vehicle:, eligible:, classificadas:, fechado: }. Fonte única do filtro de
|
||||
# carros e do acompanhamento (chips). 2 queries: elegíveis (com a coluna do
|
||||
# veículo) e as já classificadas (não-manuais).
|
||||
# Status por veículo do motorista: { vehicle, eligible, classificadas, completo,
|
||||
# fechado, arquivado }. `completo` = 100% classificado (verde, pode consolidar);
|
||||
# `fechado` = veículo consolidado (cadeado, vem de consolidacao_veiculos);
|
||||
# `arquivado` = fora do gate. Une os veículos com entregas elegíveis (rastreio)
|
||||
# com os que só existem como linha de consolidacao_veiculos (arquivados/manuais).
|
||||
# Status por veículo do motorista (fonte única no model: Consolidacao#veiculos_do_motorista).
|
||||
def veiculos_status(motorista)
|
||||
return [] unless motorista.present?
|
||||
|
||||
rel = Entrega.atendidas.da_conta_gade
|
||||
.no_periodo_checkout(@consolidacao.data_inicio, @consolidacao.data_fim)
|
||||
.do_motorista(motorista)
|
||||
rel = rel.da_veiculo(@consolidacao.vehicle_ids) if @consolidacao.vehicle_ids.present?
|
||||
rel = rel.da_operacoes(@consolidacao.operacoes) if @consolidacao.operacoes.present?
|
||||
|
||||
por_veiculo = rel.pluck(:tracking_id, :vehicle).group_by { |(_id, v)| v.presence || SEM_VEICULO }
|
||||
classificadas = @consolidacao.consolidacao_entregas
|
||||
.where(motorista_nome: motorista, manual: false)
|
||||
.distinct.pluck(:tracking_id).to_set
|
||||
estados = @consolidacao.consolidacao_veiculos.where(motorista_nome: motorista).index_by(&:vehicle)
|
||||
|
||||
veiculos = (por_veiculo.keys + estados.keys).uniq
|
||||
veiculos.map do |veiculo|
|
||||
ids = (por_veiculo[veiculo] || []).map(&:first)
|
||||
feito = ids.count { |id| classificadas.include?(id) }
|
||||
cv = estados[veiculo]
|
||||
{ vehicle: veiculo, eligible: ids.size, classificadas: feito,
|
||||
completo: ids.size.positive? && feito >= ids.size,
|
||||
fechado: cv&.fechado? || false,
|
||||
arquivado: cv&.arquivado? || false }
|
||||
end.sort_by { |v| v[:vehicle] }
|
||||
@consolidacao.veiculos_do_motorista(motorista)
|
||||
end
|
||||
|
||||
# Valida que a entrega pertence ao motorista informado e ao período/veículo da
|
||||
|
||||
Reference in New Issue
Block a user