Consolidação — multi-pilar: - Uma entrega pode ter vários pilares ao mesmo tempo (Normal + Bônus + Retirada…), somando os valores. Toggles viraram multi-seleção (liga/desliga por pilar; classificar agora faz toggle, em massa só adiciona). - migration: unicidade passa de [consolidacao_id, tracking_id] para [consolidacao_id, tracking_id, tipo]. - classificadas_count/resumo contam entregas distintas (≥1 pilar). Configurações: - /admin/configuracoes lista só os pilares de PREÇO (empresa/notificações não são preço e saíram da tela). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
45 lines
1.4 KiB
Ruby
45 lines
1.4 KiB
Ruby
# app/controllers/configuracoes_controller.rb
|
|
class Admin::ConfiguracoesController < ApplicationController
|
|
before_action :set_configuracao, only: [:edit, :update]
|
|
|
|
def index
|
|
authorize Configuracao
|
|
# Só os pilares de PREÇO (empresa/notificações não são preço e não entram aqui)
|
|
@configuracoes = Configuracao.where(chave: Configuracao::CHAVES_MOEDA).order(:chave)
|
|
end
|
|
|
|
def edit
|
|
authorize @configuracao
|
|
end
|
|
|
|
def update
|
|
authorize @configuracao
|
|
|
|
valor_anterior = @configuracao.valor
|
|
|
|
if @configuracao.update(configuracao_params)
|
|
AuditoriaLog.registrar(user: current_user, acao: 'editar_preco', entidade: 'Configuracao', entidade_id: @configuracao.id, dados_novos: { detalhes: "#{@configuracao.chave}: R$ #{valor_anterior} → R$ #{@configuracao.valor}" }, request: request)
|
|
redirect_to admin_configuracoes_path, notice: "Preço de #{@configuracao.tipo_label} atualizado."
|
|
else
|
|
render :edit, status: :unprocessable_entity
|
|
end
|
|
end
|
|
|
|
# POST /configuracoes/toggle_tema
|
|
def toggle_tema
|
|
skip_authorization
|
|
session[:tema] = session[:tema] == 'light' ? 'dark' : 'light'
|
|
redirect_back(fallback_location: dashboard_path)
|
|
end
|
|
|
|
private
|
|
|
|
def set_configuracao
|
|
@configuracao = Configuracao.find(params[:id])
|
|
end
|
|
|
|
def configuracao_params
|
|
params.require(:configuracao).permit(:valor, :descricao)
|
|
end
|
|
end
|