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

	# GET /contabilidade/tentativas_de_movimentacoes_do_plano_de_contas
	def index
		@q = TentativaDeMovimentacaoDoPlanoDeContas.order(:id).search(params[:q])
		@tentativas_de_movimentacoes_do_plano_de_contas = @q.result(distinct: false).paginate(page: params[:page], per_page: 10)
		@eventos_contabeis = Contabilidade::EventoContabil.where(orcamento_id: contexto_atual.id)
	end

	# GET /contabilidade/tentativas_de_movimentacoes_do_plano_de_contas/1
	def show
	end

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

	# PATCH/PUT /contabilidade/tentativas_de_movimentacoes_do_plano_de_contas/1
	def update
		if @tentativa_de_movimentacao_do_plano_de_contas.update( tentativa_de_movimentacao_do_plano_de_contas_params )
			redirect_to @tentativa_de_movimentacao_do_plano_de_contas, notice: 'Tentativa de movimentacao do plano de contas foi atualizado(a) com sucesso.'
		else
			disponibiliza_dependencias_form
			render :edit
		end
	end

	private

	def disponibiliza_dependencias_form
		@eventos_contabeis = Contabilidade::EventoContabil.where(orcamento_id: contexto_atual.id)
	end

	def set_tentativa_de_movimentacao_do_plano_de_contas
		@tentativa_de_movimentacao_do_plano_de_contas = TentativaDeMovimentacaoDoPlanoDeContas.find( params[:id] )
	end

	# Permite apenas os parâmetros específicos
	def tentativa_de_movimentacao_do_plano_de_contas_params
		params.require(:contabilidade_tentativa_de_movimentacao_do_plano_de_contas).permit(:saldo, :atualizado_no_form,  :data_da_tentativa, :evento_contabil_id, :modulo_id, :modulo_type)
		
	end
end
end
