Correção do QR do holerite entre outras coisas
This commit is contained in:
@@ -90,31 +90,41 @@ class ConsolidacaoEntregasController < ApplicationController
|
||||
return render_nao_elegivel unless motorista_na_consolidacao?(motorista)
|
||||
|
||||
elegiveis = tracking_ids_elegiveis(motorista)
|
||||
# "Marcar todos como Normal" → sem tracking_ids = todas as elegíveis do período.
|
||||
# Sem tracking_ids = todas as elegíveis do período (botão "todos").
|
||||
# Com tracking_ids → mantém só as que de fato são elegíveis para o motorista.
|
||||
tracking_ids = tracking_ids.empty? ? elegiveis : (tracking_ids & elegiveis)
|
||||
|
||||
valor = valor_para_tipo(tipo)
|
||||
remover = params[:acao].to_s == 'remover'
|
||||
|
||||
# Em massa, ADICIONA o pilar às entregas (não remove os demais já marcados).
|
||||
ActiveRecord::Base.transaction do
|
||||
tracking_ids.each do |tid|
|
||||
ce = @consolidacao.consolidacao_entregas.find_or_initialize_by(tracking_id: tid, tipo: tipo)
|
||||
ce.assign_attributes(motorista_nome: motorista,
|
||||
valor_aplicado: valor, created_by: current_user.id)
|
||||
ce.save!
|
||||
if remover
|
||||
# Desmarca o pilar das entregas selecionadas (mantém os demais pilares).
|
||||
@consolidacao.consolidacao_entregas
|
||||
.where(motorista_nome: motorista, tipo: tipo, tracking_id: tracking_ids)
|
||||
.destroy_all
|
||||
else
|
||||
# ADICIONA o pilar às entregas (não remove os demais já marcados).
|
||||
valor = valor_para_tipo(tipo)
|
||||
tracking_ids.each do |tid|
|
||||
ce = @consolidacao.consolidacao_entregas.find_or_initialize_by(tracking_id: tid, tipo: tipo)
|
||||
ce.assign_attributes(motorista_nome: motorista,
|
||||
valor_aplicado: valor, created_by: current_user.id)
|
||||
ce.save!
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
recalcular_motorista(motorista)
|
||||
auditar!(:editar, @consolidacao,
|
||||
dados_novos: { acao_massa: tipo, qtd: tracking_ids.size, motorista: motorista })
|
||||
dados_novos: { acao_massa: tipo, modo: (remover ? 'remover' : 'adicionar'),
|
||||
qtd: tracking_ids.size, motorista: motorista })
|
||||
|
||||
respond_to do |format|
|
||||
format.json { render json: resumo_json(motorista) }
|
||||
format.html do
|
||||
verbo = remover ? 'desmarcadas de' : 'marcadas como'
|
||||
redirect_to validar_consolidacao_consolidacao_entregas_path(@consolidacao, motorista: motorista),
|
||||
notice: "#{tracking_ids.size} entregas marcadas como #{tipo.humanize}."
|
||||
notice: "#{tracking_ids.size} entregas #{verbo} #{tipo.humanize}."
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user