Correção do QR do holerite entre outras coisas

This commit is contained in:
2026-06-16 17:01:36 -03:00
parent 80c068c798
commit cf896de165
7 changed files with 106 additions and 24 deletions

View File

@@ -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