Bloqueio de inscrição por função SQL

Utilizado quando se deseja fazer validações específicas durante uma inscrição logo após a pessoa informar o CPF ou passaporte, impedindo a inscrição e exibindo alguma mensagem para a pessoa.

Essa configuração só pode ser realizada por alguém com acesso ao banco de dados do sistema e com noção de banco de dados SQL.

Ao realizar o bloqueio será gravado um log desse bloqueio na tabela TB_INSC_VALSQL_BLOQ, que pode ser consultado a partir da tela de Consulta de log de bloqueio da inscrição (Veja aqui os procedimentos para dar acesso a um recurso.)

Para utilizar essa funcionalidade, deve-se criar uma função de banco dentro do banco de dados “ICO” do sistema com um nome de no máximo 30 caracteres.

Para o módulo de Inscrição, a função deve conter obrigatoriamente 4 parâmetros, são eles:

Para o módulo de “Processo Seletivo”, a função deve conter obrigatoriamente 3 parâmetros, são eles:

Os parâmetros devem estar com os tipos “inteiro, inteiro e varchar” respectivamente, portanto os tipos dos parâmetros da função devem ser os mesmos e nessa ordem, além disso o seu retorno deve ser do tipo “varchar”, pois será esse retorno que será exibido em tela para o usuário. Caso alguma dessas regras não seja cumprida, não será possível utilizá-la.

Os parâmetros devem estar com os tipos “inteiro, inteiro e varchar” respectivamente, portanto os tipos dos parâmetros da função devem ser os mesmos e nessa ordem, além disso o seu retorno deve ser do tipo “varchar”, pois será esse retorno que será exibido em tela para o usuário. Caso alguma dessas regras não seja cumprida, não será possível utilizá-la.

Exemplo de sintaxe para a função para a Configuração no módulo de Inscrição, para o Processo seletivo basta retirar o id da turma/disciplina conforme informado na regras acima.

Microsoft SQL Server

mssql.sql
CREATE FUNCTION FUNC_PARCELAS_ABERTO(@ID_PESSOA INT, @ID_CONCURSO_INSC INT, @TIPO_MODULO VARCHAR(255), @DISCIPLINAS_SELEC_ID VARCHAR(255)) RETURNS VARCHAR(255) AS
    BEGIN
    DECLARE @QTD_PARCELAS INT
    	SELECT @QTD_PARCELAS = COUNT(PAR_ID) FROM TB_PARCELA
    	WHERE PAR_RESPESID = @ID_PESSOA
    	AND PAR_SITPAG = 1
 
    	IF @QTD_PARCELAS > 0
    		RETURN CONCAT('Você possui ',@QTD_PARCELAS,' parcelas em aberto, não é possível se inscrever');
    	RETURN NULL
    END


Oracle

oracle.sql
CREATE OR REPLACE FUNCTION FUNC_PARCELAS_ABERTO(V_ID_PESSOA INT, V_CONCURSO_INSC INT, V_TIPO_MODULO VARCHAR2, vDISCIPLINAS_SELEC_ID VARCHAR2) 
RETURN VARCHAR AS
V_QTD_PARCELAS INT;
BEGIN 
 
	SELECT COUNT(PAR_ID) INTO V_QTD_PARCELAS FROM TB_PARCELA
	WHERE PAR_RESPESID = V_ID_PESSOA
	AND PAR_SITPAG = 1;
 
	IF V_QTD_PARCELAS > 0 THEN
		RETURN 'Você possui ' || V_QTD_PARCELAS || ' parcelas em aberto, não é possível se inscrever';
	END IF;
  RETURN NULL;
END;

Nesse exemplo a função vai buscar as parcelas em aberto da pessoa que estiver se inscrevendo (caso já exista uma pessoa cadastrada com o CPF informado), caso exista alguma parcela em aberto, vai retornar a mensagem informando a quantidade de parcelas impedindo a inscrição e emitindo a mensagem em tela, caso contrário retorna NULL, não emite mensagem e permite a inscrição.

Após criar a função, para passar a utilizá-la é necessário informá-la nas configurações de inscrição ou processo seletivo, na aba “Geral”, campo “Função de validação específica”. Deve-se informar apenas o nome da função, conforme imagens abaixo.

Configuração de inscrição no processo seletivo
Configuração de inscrição para inscrição em turma

Ao inserir o CPF ou passaporte, o sistema buscará uma pessoa cadastrada no sistema com esse CPF ou passaporte, caso encontre, vai executar a função com os parâmetros supracitados, caso a função retorne algum texto esse texto será exibido em tela para o usuário e não permitirá a inscrição (anexo), caso contrário o usuário poderá prosseguir com o processo normalmente.

Valores para o parâmetro Tipo do módulo:
ACADEMICO - Acadêmico (Graduação, Pós, Escola, etc…)
CENTRALALU - Portal do aluno
CENTRALRES - Portal do responsável
CENTRALEXA - Portal do ex-aluno
CENTRALCOL - Portal do colaborador
CENTRALCOO - Portal do coordenador
CENTRALPRO - Portal do professor


Ainda há dúvidas? Se você preferir retire suas dúvidas com o nosso suporte, clique aqui e abra um chamado para atendimento. :-)


Voltar