module Contabilidade
class AlocacoesDeRecursoDeRppsController < ApplicationController
	include ControllerConcern
	before_action :authenticate_usuario!
	before_action :autoriza_usuario!
	before_action :set_alocacao_de_recurso_de_rpps, only: [:show, :edit, :update, :destroy]

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

	# GET /contabilidade/alocacoes_de_recurso_de_rpps/1
	def show
	end

	# GET /contabilidade/alocacoes_de_recurso_de_rpps/new
	def new
		@alocacao_de_recurso_de_rpps = AlocacaoDeRecursoDeRpps.new

		Contabilidade::PercentualDaAlocacaoDeRecurso.tipos.each do |tipo|
			percentual_da_alocacao = @alocacao_de_recurso_de_rpps.percentuais_da_alocacao_de_recurso.find_by(tipo: tipo[1])
			@alocacao_de_recurso_de_rpps.percentuais_da_alocacao_de_recurso.build(tipo: tipo[1], alocacao_de_recurso_de_rpps_id: @alocacao_de_recurso_de_rpps.id) unless percentual_da_alocacao.present?
		end
	end

	# GET /contabilidade/alocacoes_de_recurso_de_rpps/1/edit
	def edit
	end

	# POST /contabilidade/alocacoes_de_recurso_de_rpps
	def create
		@alocacao_de_recurso_de_rpps = AlocacaoDeRecursoDeRpps.new(alocacao_de_recurso_de_rpps_params)

		@alocacao_de_recurso_de_rpps.orcamento = contexto_atual

		if @alocacao_de_recurso_de_rpps.save
			redirect_to @alocacao_de_recurso_de_rpps, notice: 'Alocação de recurso de rpps foi criado(a) com sucesso.'
		else
			render :new
		end
	end

	# PATCH/PUT /contabilidade/alocacoes_de_recurso_de_rpps/1
	def update
		if @alocacao_de_recurso_de_rpps.update( alocacao_de_recurso_de_rpps_params )
			redirect_to @alocacao_de_recurso_de_rpps, notice: 'Alocação de recurso de rpps foi atualizado(a) com sucesso.'
		else
			render :edit
		end
	end

	# DELETE /contabilidade/alocacoes_de_recurso_de_rpps/1
	def destroy
		mensagem = apaga_e_retorna_mensagem(@alocacao_de_recurso_de_rpps)
		redirect_to contabilidade_alocacoes_de_recurso_de_rpps_url, mensagem
	end

	private
	def set_alocacao_de_recurso_de_rpps
		@alocacao_de_recurso_de_rpps = AlocacaoDeRecursoDeRpps.find( params[:id] )
	end

	# Permite apenas os parâmetros específicos
	def alocacao_de_recurso_de_rpps_params
		params.require(:contabilidade_alocacao_de_recurso_de_rpps).permit(:data_da_reuniao, :percentual_da_meta_de_rentabilidade,
			:meta_de_rentabilidade,	percentuais_da_alocacao_de_recurso_attributes: [:id, :alocacao_de_recurso_de_rpps_id, :valor, :tipo, :_destroy])
	end
end
end
