module Contabilidade
	class AcompanhamentosDeParcelamentoDoRppsController < ApplicationController
		include ControllerConcern
		before_action :authenticate_usuario!
		before_action :autoriza_usuario!, except: [:new, :edit, :create, :update, :destroy]
		before_action :set_acompanhamento_de_parcelamento_do_rpps, only: [:edit, :update, :destroy]
		before_action :set_parcelamento_do_rpps, only: [:new, :create]

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

		# GET /contabilidade/acompanhamentos_de_parcelamento_do_rpps/1
		def show
		end

		# GET /contabilidade/acompanhamentos_de_parcelamento_do_rpps/new
		def new
			return if bloqueia_usuario_com_base_em 'create', 'contabilidade/parcelamentos_do_rpps'
			@acompanhamento_de_parcelamento_do_rpps = @parcelamento_do_rpps.acompanhamentos_de_parcelamento_do_rpps.new
		end

		# GET /contabilidade/acompanhamentos_de_parcelamento_do_rpps/1/edit
		def edit
			return if bloqueia_usuario_com_base_em 'edit', 'contabilidade/parcelamentos_do_rpps'
		end

		# POST /contabilidade/acompanhamentos_de_parcelamento_do_rpps
		def create
			@acompanhamento_de_parcelamento_do_rpps = @parcelamento_do_rpps.acompanhamentos_de_parcelamento_do_rpps.new(acompanhamento_de_parcelamento_do_rpps_params)
			if @acompanhamento_de_parcelamento_do_rpps.save
				redirect_to @acompanhamento_de_parcelamento_do_rpps.parcelamento_do_rpps, notice: 'Acompanhamento de parcelamento do rpps foi criado(a) com sucesso.'
			else
				render :new
			end
		end

		# PATCH/PUT /contabilidade/acompanhamentos_de_parcelamento_do_rpps/1
		def update
			if @acompanhamento_de_parcelamento_do_rpps.update( acompanhamento_de_parcelamento_do_rpps_params )
				redirect_to @acompanhamento_de_parcelamento_do_rpps.parcelamento_do_rpps, notice: 'Acompanhamento de parcelamento do rpps foi atualizado(a) com sucesso.'
			else
				render :edit
			end
		end

		# DELETE /contabilidade/acompanhamentos_de_parcelamento_do_rpps/1
		def destroy
			return if bloqueia_usuario_com_base_em 'edit', 'contabilidade/parcelamentos_do_rpps'
			mensagem = apaga_e_retorna_mensagem(@acompanhamento_de_parcelamento_do_rpps)
			redirect_to @acompanhamento_de_parcelamento_do_rpps.parcelamento_do_rpps, mensagem
		end

		private
		def set_acompanhamento_de_parcelamento_do_rpps
			@acompanhamento_de_parcelamento_do_rpps = AcompanhamentoDeParcelamentoDoRpps.find( params[:id] )
		end

		def set_parcelamento_do_rpps
			if params[:parcelamento_do_rpps].present?
				@parcelamento_do_rpps = Contabilidade::ParcelamentoDoRpps.find( params[:parcelamento_do_rpps] )
			else
				@parcelamento_do_rpps = Contabilidade::ParcelamentoDoRpps.find( params[:parcelamento_do_rpps_id] )
			end
		end

		# Permite apenas os parâmetros específicos
		def acompanhamento_de_parcelamento_do_rpps_params
			params.require(:contabilidade_acompanhamento_de_parcelamento_do_rpps).permit(:arquivo_id, :parcelamento_do_rpps_id, :numero_da_parcela, :data_do_vencimento, :data_do_pagamento, :valor_pago_do_principal, :valor_pago_de_juros_e_multa)
		end
	end
end
