module Contabilidade
	class IrrfsPessoasFisicasController < ApplicationController
		include ControllerConcern
		before_action :authenticate_usuario!
		before_action do
			autoriza_usuario!(action_name, 'contabilidade/impostos_de_renda')
		end
		before_action :set_imposto_de_renda, only: [:index, :new, :create]
		before_action :set_irrf_pessoa_fisica, only: [:show, :edit, :update, :destroy]

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

		# GET /contabilidade/irrfs_pessoas_fisicas/1
		def show
		end

		# GET /contabilidade/irrfs_pessoas_fisicas/new
		def new
			@irrf_pessoa_fisica = @imposto_de_renda.irrfs_pessoas_fisicas.new
		end

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

		# POST /contabilidade/irrfs_pessoas_fisicas
		def create
			@irrf_pessoa_fisica = @imposto_de_renda.irrfs_pessoas_fisicas.new(irrf_pessoa_fisica_params)

			if @irrf_pessoa_fisica.save
				redirect_to @irrf_pessoa_fisica.imposto_de_renda, notice: 'Alíquota de IRRF para pessoa fisica foi criada com sucesso.'
			else
				render :new
			end
		end

		# PATCH/PUT /contabilidade/irrfs_pessoas_fisicas/1
		def update
			if @irrf_pessoa_fisica.update( irrf_pessoa_fisica_params )
				redirect_to @irrf_pessoa_fisica.imposto_de_renda, notice: 'Alíquota de IRRF para pessoa fisica foi atualizada com sucesso.'
			else
				render :edit
			end
		end

		# DELETE /contabilidade/irrfs_pessoas_fisicas/1
		def destroy
			mensagem = apaga_e_retorna_mensagem(@irrf_pessoa_fisica)
			redirect_to @irrf_pessoa_fisica.imposto_de_renda, mensagem
		end

		private
		def set_imposto_de_renda
			@imposto_de_renda = ImpostoDeRenda.find( params[:imposto_de_renda_id] )
		end

		def set_irrf_pessoa_fisica
			@irrf_pessoa_fisica = IrrfPessoaFisica.find( params[:id] )
		end

		# Permite apenas os parâmetros específicos
		def irrf_pessoa_fisica_params
			params.require(:contabilidade_irrf_pessoa_fisica).permit(:limite_da_faixa, :aliquota, :parcela_a_deduzir)
		end
	end
end
