module Contabilidade
class BloqueiosMensaisDoPcaspController < ApplicationController
	include ControllerConcern
	before_action :authenticate_usuario!
	before_action :autoriza_usuario!
	before_action :set_bloqueio_mensal_do_pcasp, only: [:show, :edit, :update, :destroy, :bloquear, :desbloquear]

	# GET /contabilidade/bloqueios_mensais_do_pcasp
	def index
		@bloqueios_mensais_do_pcasp = contexto_atual.bloqueios_mensais_do_pcasp.order(:id).paginate(page: params[:page], per_page: 12)
	end

	# GET /contabilidade/bloqueios_mensais_do_pcasp/1
	def show
	end

	# GET /contabilidade/bloqueios_mensais_do_pcasp/new
	def new
		@bloqueio_mensal_do_pcasp = BloqueioMensalDoPcasp.new
	end

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

	# POST /contabilidade/bloqueios_mensais_do_pcasp
	def create
		@bloqueio_mensal_do_pcasp = BloqueioMensalDoPcasp.new(bloqueio_mensal_do_pcasp_params)

		if @bloqueio_mensal_do_pcasp.save
			redirect_to @bloqueio_mensal_do_pcasp, notice: 'Bloqueio mensal do pcasp foi criado(a) com sucesso.'
		else
			render :new
		end
	end

	# PATCH/PUT /contabilidade/bloqueios_mensais_do_pcasp/1
	def update
		if @bloqueio_mensal_do_pcasp.update( bloqueio_mensal_do_pcasp_params )
			redirect_to @bloqueio_mensal_do_pcasp, notice: 'Bloqueio mensal do pcasp foi atualizado(a) com sucesso.'
		else
			render :edit
		end
	end

	# DELETE /contabilidade/bloqueios_mensais_do_pcasp/1
	def destroy
		mensagem = apaga_e_retorna_mensagem(@bloqueio_mensal_do_pcasp)
		redirect_to contabilidade_bloqueios_mensais_do_pcasp_url, mensagem
	end

	def bloquear
		return if bloqueia_usuario_com_base_em :update
		@bloqueio_mensal_do_pcasp.bloqueado = true
		if @bloqueio_mensal_do_pcasp.update({bloqueado: true})
			redirect_to contabilidade_bloqueios_mensais_do_pcasp_path, notice: 'Bloqueio mensal do pcasp foi atualizado(a) com sucesso.'
		else
			redirect_to contabilidade_bloqueios_mensais_do_pcasp_path, alert: "Bloqueio mensal do pcasp não foi atualizado(a): #{@bloqueio_mensal_do_pcasp.errors.messages.values.join(', ')}"
		end
	end

	def desbloquear
		return if bloqueia_usuario_com_base_em :update
		@bloqueio_mensal_do_pcasp.bloqueado = false
		if @bloqueio_mensal_do_pcasp.update({bloqueado: false})
			redirect_to contabilidade_bloqueios_mensais_do_pcasp_path, notice: 'Bloqueio mensal do pcasp foi atualizado(a) com sucesso.'
		else
			redirect_to contabilidade_bloqueios_mensais_do_pcasp_path, alert: "Bloqueio mensal do pcasp não foi atualizado(a): #{@bloqueio_mensal_do_pcasp.errors.messages.values.join(', ')}"
		end
	end

	private
	def set_bloqueio_mensal_do_pcasp
		@bloqueio_mensal_do_pcasp = BloqueioMensalDoPcasp.find( params[:id] )
	end

	# Permite apenas os parâmetros específicos
	def bloqueio_mensal_do_pcasp_params
		params.require(:contabilidade_bloqueio_mensal_do_pcasp).permit(:mes_referencia, :orcamento_id, :bloqueado)
		
	end
end
end
