Correção def adicionar_motorista authorize @consolidacao, :update?e na busca na adição dos motoristas
This commit is contained in:
@@ -6,6 +6,7 @@ class ConsolidacoesController < ApplicationController
|
||||
only: %i[show edit update destroy finalizar arquivar reativar wizard
|
||||
registrar_pagamento cancelar_pagamento
|
||||
arquivar_motorista desarquivar_motorista
|
||||
excluir_motorista adicionar_motorista
|
||||
preview_extrato gerar_pdf_relatorio gerar_pdf_extrato
|
||||
gerar_pdf_financeiro]
|
||||
|
||||
@@ -165,8 +166,10 @@ class ConsolidacoesController < ApplicationController
|
||||
authorize @consolidacao, :update?
|
||||
|
||||
@arquivados = @consolidacao.consolidacao_motoristas.arquivados.order(:motorista_nome)
|
||||
# Alimenta o datalist do "Adicionar motorista" (mesma fonte da criação).
|
||||
@motoristas_disponiveis = Entrega.motoristas_ativos
|
||||
# Alimenta o datalist do "Adicionar motorista": motoristas PREVISTOS no período
|
||||
# da consolidação (atendidas, respeitando filtros de veículo/operação) e os
|
||||
# veículos que cada um usou — para o usuário escolher com contexto.
|
||||
@motoristas_periodo = motoristas_previstos_no_periodo
|
||||
@motoristas = @consolidacao.consolidacao_motoristas.ativos.order(:motorista_nome).map do |cm|
|
||||
total = @consolidacao.entregas_elegiveis_count(cm.motorista_nome)
|
||||
classificadas = @consolidacao.classificadas_count(cm.motorista_nome)
|
||||
@@ -447,6 +450,22 @@ class ConsolidacoesController < ApplicationController
|
||||
@consolidacao = Consolidacao.find(params[:id])
|
||||
end
|
||||
|
||||
# Motoristas com entregas atendidas no período da consolidação (respeitando os
|
||||
# filtros de veículo/operação dela), com os veículos que cada um usou. Alimenta
|
||||
# o datalist de "Adicionar motorista". Retorna [{ nome:, veiculos: [..] }, ...].
|
||||
def motoristas_previstos_no_periodo
|
||||
rel = Entrega.atendidas.da_conta_gade
|
||||
.no_periodo_checkout(@consolidacao.data_inicio, @consolidacao.data_fim)
|
||||
rel = rel.da_veiculo(@consolidacao.vehicle_ids) if @consolidacao.vehicle_ids.present?
|
||||
rel = rel.da_operacoes(@consolidacao.operacoes) if @consolidacao.operacoes.present?
|
||||
|
||||
rel.pluck(:driver, :vehicle)
|
||||
.group_by(&:first)
|
||||
.map { |nome, linhas| { nome: nome, veiculos: linhas.filter_map { |(_, v)| v.presence }.uniq.sort } }
|
||||
.reject { |m| m[:nome].blank? }
|
||||
.sort_by { |m| m[:nome] }
|
||||
end
|
||||
|
||||
# Um motorista específico (consolidacao_motorista_id) ou todos da consolidação.
|
||||
# "Todos" cobre apenas os ATIVOS — motorista arquivado não recebe pagamento.
|
||||
def motoristas_alvo
|
||||
|
||||
Reference in New Issue
Block a user