module Loa
	class TiposDeDeducaoController < ApplicationController
		include LoaControllersConcern
		include ControllerConcern
		before_action :authenticate_usuario!
		before_action :autoriza_usuario!
		before_action :set_tipo_de_deducao, only: [:show, :edit, :update, :destroy]
		# before_action only: [:create, :edit, :update, :destroy] do
		# 	verifica_autorizacao_para_status_de_orcamento_helper(@unidade_gestora.status_do_orcamento)
		# end

		# GET /loa/tipos_de_deducao
		def index
			orcamento = Orcamento.find_by( exercicio: params[:exercicio] )
			@q = orcamento.tipos_de_deducao.order(:codigo).ransack(query_params)
			@tipos_de_deducao = @q.result(distinct: false).paginate(page: params[:page], per_page: 10)
		end

		# GET /loa/tipos_de_deducao/new
		def new
			orcamento = Orcamento.find_by( exercicio: params[:exercicio] )
			@tipo_de_deducao = orcamento.tipos_de_deducao.new
		end

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

		# POST /loa/tipos_de_deducao
		def create
			orcamento = Orcamento.find_by( exercicio: params[:exercicio] )
			@tipo_de_deducao = orcamento.tipos_de_deducao.new(tipo_de_deducao_params)

			if @tipo_de_deducao.save
				redirect_to loa_tipos_de_deducao_path(@tipo_de_deducao.orcamento), notice: 'Tipo de deducao foi criado(a) com sucesso.'
			else
				render :new
			end
		end

		# PATCH/PUT /loa/tipos_de_deducao/1
		def update
			if @tipo_de_deducao.update( tipo_de_deducao_params )
				redirect_to loa_tipos_de_deducao_path(@tipo_de_deducao.orcamento), notice: 'Tipo de deducao foi atualizado(a) com sucesso.'
			else
				render :edit
			end
		end

		# DELETE /loa/tipos_de_deducao/1
		def destroy
			mensagem = apaga_e_retorna_mensagem(@tipo_de_deducao)
			redirect_to loa_tipos_de_deducao_url(@tipo_de_deducao.orcamento), mensagem
		end

		private
		def set_tipo_de_deducao
			@tipo_de_deducao = TipoDeDeducao.find( params[:id] )
		end

		# Permite apenas os parâmetros específicos
		def tipo_de_deducao_params
			params.require(:loa_tipo_de_deducao).permit(:codigo, :descricao, :orcamento_id)
		end
	end
end
