module Patrimonio
class ProgramasDeRecursosController < ApplicationController
	include ControllerConcern
	before_action :authenticate_usuario!
	before_action :autoriza_usuario!
	before_action :set_programa_de_recursos, only: [:show, :edit, :update, :destroy]

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

	# GET /patrimonio/programas_de_recursos/1
	def show
	end

	# GET /patrimonio/programas_de_recursos/new
	def new
		@programa_de_recursos = ProgramaDeRecursos.new
	end

	# GET /patrimonio/programas_de_recursos/1/edit
	def edit
	end

	# POST /patrimonio/programas_de_recursos
	def create
		@programa_de_recursos = ProgramaDeRecursos.new(programa_de_recursos_params)

		if @programa_de_recursos.save
			redirect_to @programa_de_recursos, notice: 'Programa de recursos foi criado(a) com sucesso.'
		else
			render :new
		end
	end

	# PATCH/PUT /patrimonio/programas_de_recursos/1
	def update
		if @programa_de_recursos.update( programa_de_recursos_params )
			redirect_to @programa_de_recursos, notice: 'Programa de recursos foi atualizado(a) com sucesso.'
		else
			render :edit
		end
	end

	# DELETE /patrimonio/programas_de_recursos/1
	def destroy
		mensagem = apaga_e_retorna_mensagem(@programa_de_recursos)
		redirect_to patrimonio_programas_de_recursos_url, mensagem
	end

	private
	def set_programa_de_recursos
		@programa_de_recursos = ProgramaDeRecursos.find( params[:id] )
	end

	# Permite apenas os parâmetros específicos
	def programa_de_recursos_params
		params.require(:patrimonio_programa_de_recursos).permit(:codigo, :descricao, :origem_do_recurso)
		
	end
end
end
