module Contabilidade
class DemonstrativosDeInformacoesPrevidenciariasController < ApplicationController
	include ControllerConcern
	before_action :authenticate_usuario!
	before_action :autoriza_usuario!
	before_action :set_demonstrativo_de_informacao_previdenciaria, only: [:show, :edit, :update, :destroy]
	before_action :disponibiliza_dependencias, only: [:create, :new, :update, :edit, :index]

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

	# GET /contabilidade/demonstrativos_de_informacoes_previdenciarias/1
	def show
	end

	# GET /contabilidade/demonstrativos_de_informacoes_previdenciarias/new
	def new
		@demonstrativo_de_informacao_previdenciaria = Contabilidade::DemonstrativoDeInformacaoPrevidenciaria.new
	end

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

	# POST /contabilidade/demonstrativos_de_informacoes_previdenciarias
	def create
		@demonstrativo_de_informacao_previdenciaria = Contabilidade::DemonstrativoDeInformacaoPrevidenciaria.new(demonstrativo_de_informacao_previdenciaria_params)
		@demonstrativo_de_informacao_previdenciaria.orcamento = contexto_atual

		if @demonstrativo_de_informacao_previdenciaria.save
			redirect_to @demonstrativo_de_informacao_previdenciaria, notice: 'Demonstrativo de informação previdenciário e repasse foi criado(a) com sucesso.'
		else
			render :new
		end
	end

	# PATCH/PUT /contabilidade/demonstrativos_de_informacoes_previdenciarias/1
	def update
		if @demonstrativo_de_informacao_previdenciaria.update( demonstrativo_de_informacao_previdenciaria_params )
			redirect_to @demonstrativo_de_informacao_previdenciaria, notice: 'Demonstrativo de informação previdenciário e repasse foi atualizado(a) com sucesso.'
		else
			render :edit
		end
	end

	# DELETE /contabilidade/demonstrativos_de_informacoes_previdenciarias/1
	def destroy
		mensagem = apaga_e_retorna_mensagem(@demonstrativo_de_informacao_previdenciaria)
		redirect_to contabilidade_demonstrativos_de_informacoes_previdenciarias_url, mensagem
	end

	private
	def set_demonstrativo_de_informacao_previdenciaria
		@demonstrativo_de_informacao_previdenciaria = Contabilidade::DemonstrativoDeInformacaoPrevidenciaria.find( params[:id] )
	end

	def disponibiliza_dependencias
		@meses_de_competencia = Contabilidade::DemonstrativoDeInformacaoPrevidenciaria.meses_de_competencia
		@tipos_de_folha = Contabilidade::DemonstrativoDeInformacaoPrevidenciaria.tipos_de_folha
		@tipos_de_plano = Contabilidade::DemonstrativoDeInformacaoPrevidenciaria.tipos_de_plano
	end

	# Permite apenas os parâmetros específicos
	def demonstrativo_de_informacao_previdenciaria_params
		params.require(:contabilidade_demonstrativo_de_informacao_previdenciaria).permit(:orcamento_id, :arquivo_id, :mes_de_competencia, :ano_de_competencia, :dado_patronal, :tipo_de_plano, :tipo_de_folha, :valor_base_de_calculo, :valor_das_contribuicoes, :valor_das_deducoes_direto, :valor_das_deducoes_indereto)
	end
end
end
