Files
Reem-Notas/app/controllers/admin/configuracoes_controller.rb
victor 19a72c066f Múltiplos pilares por entrega + tela de preços só com pilares de preço
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>
2026-06-16 03:05:15 -03:00

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