module Loa
class OrcamentosTematicosController < ApplicationController
	include ControllerConcern
	before_action :authenticate_usuario!
	before_action :autoriza_usuario!
	before_action :set_orcamento_tematico, only: [:show, :edit, :update, :destroy]

	# GET /loa/orcamentos_tematicos
	def index
		@q = OrcamentoTematico.order(:id).search(params[:q])
		@orcamentos_tematicos = @q.result(distinct: false).paginate(page: params[:page], per_page: 10)
	end

	# GET /loa/orcamentos_tematicos/new
	def new
		@orcamento_tematico = OrcamentoTematico.new
	end

	# GET /loa/orcamentos_tematicos/1/edit
	def edit
	end

	# POST /loa/orcamentos_tematicos
	def create
		@orcamento_tematico = OrcamentoTematico.new(orcamento_tematico_params)

		if @orcamento_tematico.save
			redirect_to loa_orcamentos_tematicos_path, notice: 'Orcamento temático foi criado(a) com sucesso.'
		else
			render :new
		end
	end

	# PATCH/PUT /loa/orcamentos_tematicos/1
	def update
		if @orcamento_tematico.update( orcamento_tematico_params )
			redirect_to loa_orcamentos_tematicos_path, notice: 'Orcamento temático foi atualizado(a) com sucesso.'
		else
			render :edit
		end
	end

	# DELETE /loa/orcamentos_tematicos/1
	def destroy
		@orcamento_tematico.temas_do_orcamento.destroy_all
		mensagem = apaga_e_retorna_mensagem(@orcamento_tematico)
		redirect_to loa_orcamentos_tematicos_url, mensagem
	end

	private
	def set_orcamento_tematico
		@orcamento_tematico = OrcamentoTematico.find( params[:id] )
	end

	# Permite apenas os parâmetros específicos
	def orcamento_tematico_params
		params.require(:loa_orcamento_tematico).permit(:sigla, :descricao, :padrao)

	end
end
end
