Correção Dash board e implantação Relaório de ADM

This commit is contained in:
2026-06-22 17:11:53 -03:00
parent e23ca0f10d
commit 94d8420bbd
16 changed files with 453 additions and 39 deletions

View File

@@ -39,7 +39,8 @@ class ConsolidacaoEntregasController < ApplicationController
entrega_normal: Configuracao.preco_entrega,
retirada: Configuracao.preco_retirada,
bonus: Configuracao.preco_bonus,
desconto: Configuracao.preco_desconto
desconto: Configuracao.preco_desconto,
extraordinaria: Configuracao.preco_extraordinaria
}
end
@@ -62,7 +63,7 @@ class ConsolidacaoEntregasController < ApplicationController
tracking_id: params[:tracking_id],
motorista_nome: params[:motorista],
tipo: params[:tipo],
valor_aplicado: valor_para_tipo(params[:tipo]),
valor_aplicado: valor_classificacao(params[:tipo]),
created_by: current_user.id
)
ativo = true
@@ -106,7 +107,7 @@ class ConsolidacaoEntregasController < ApplicationController
.destroy_all
else
# ADICIONA o pilar às entregas (não remove os demais já marcados).
valor = valor_para_tipo(tipo)
valor = valor_classificacao(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,
@@ -296,6 +297,18 @@ class ConsolidacaoEntregasController < ApplicationController
ConsolidacaoEntrega.valor_para(tipo)
end
# Valor a aplicar na classificação. Para o pilar "extraordinária" o admin pode
# informar um valor customizado (params[:valor]) por ser uma exceção; se vier
# ausente/inválido, cai no preço padrão de Configurações. Demais pilares usam
# sempre o preço configurado.
def valor_classificacao(tipo)
return valor_para_tipo(tipo) unless tipo.to_s == 'extraordinaria'
valor = params[:valor].to_s.strip.tr(',', '.')
valor = BigDecimal(valor) rescue nil
valor.present? && valor >= 0 ? valor : Configuracao.preco_extraordinaria
end
def recalcular_motorista(nome)
@consolidacao.recalcular_motorista!(nome)
end