Script Validador de CPF/CNPJ

Modificado em Ter, 19 Set, 2023 na (o) 9:35 AM

ADICIONAR O COMPONENTE NO FLUXO

Entre na edição do Fluxo e adicione o componente de SCRIPT conforme a figura abaixo:


Observem que o componente de SCRIPT deve ficar posicionado após o componente de entrada de dados.


O COMPONENTE DE SCRIPT

Clique sobre o componente de SCRIPT e edite o mesmo. Irá abrir a tela a seguir:



  • Horários: você pode utilizar o horário que o SCRIPT vai estar ativo no fluxo. Não é necessário pois sempre que acontecer a entrada de dados queremos que ele execute então é pressuposto;
  • Nome: coloque um nome apropriado para o componente. Ex. Teste de CPF/CNPJ;
  • Parâmetros: colocar a variável "val" em minúsculo recebendo o conteúdo da variável "{{CPF_CNPJ}}" esta variável muda de acordo com a utilizada na entrada de dados. Aqui estamos dizendo que "val" vai receber o que estiver sido digitado em {{CPF_CNPJ}} para ser utilizado no script;
  • Tipo de função: escolha "customizável";
  • Retorno da função: crie uma nova variável para ser utilizada na condição do fluxo. No exemplo valos criar a {{IS_CPF_CNPJ}} mas pode ser qualquer uma a escolha desde que identifique para ser utilizado depois. Este retorno da função vai receber "0" quando um CPF/CNPJ for inválido, e "1" quando o CPF/CNPJ for válido. 
  • Customizável: roque a linha 2 toda pelo script abaixo:
     val = val.replace(/\D/g, ''); 
     if (val.length == 11) {

        var v1 = 0;
        var v2 = 0;
        var aux = false;

        for (var i = 1; val.length > i; i++) {
            if (val[i - 1] != val[i]) {
                aux = true;   
            }
        } 

        if (aux == false) {
            return 0; 
        } 

        for (var i = 0, p = 10; (val.length - 2) > i; i++, p--) {
            v1 += val[i] * p; 
        } 

        v1 = ((v1 * 10) % 11);
        if (v1 == 10) {
            v1 = 0; 
        }

        if (v1 != val[9]) {
            return 0; 
        } 
        for (var i = 0, p = 11; (val.length - 1) > i; i++, p--) {
            v2 += val[i] * p; 
        } 
        v2 = ((v2 * 10) % 11);
        if (v2 == 10) {
            v2 = 0; 
        }
        if (v2 != val[10]) {
            return 0; 
        } else {   
            return 1; 
        }
    } else if (val.length == 14) {
        var v1 = 0;
        var v2 = 0;
        var aux = false;
        for (var i = 1; val.length > i; i++) { 
            if (val[i - 1] != val[i]) {  
                aux = true;   
            } 
        } 
        if (aux == false) {  
            return 0; 
        }
        for (var i = 0, p1 = 5, p2 = 13; (val.length - 2) > i; i++, p1--, p2--) {
            if (p1 >= 2) {  
               v1 += val[i] * p1;  
            } else {  
                v1 += val[i] * p2;  
            } 
        } 
        v1 = (v1 % 11);
        if (v1 < 2) { 
            v1 = 0; 
        } else { 
            v1 = (11 - v1); 
        } 
        if (v1 != val[12]) {  
            return 0; 
        } 
        for (var i = 0, p1 = 6, p2 = 14; (val.length - 1) > i; i++, p1--, p2--) { 
            if (p1 >= 2) {  
                v2 += val[i] * p1;  
            } else {   
                v2 += val[i] * p2; 
            } 
        }
        v2 = (v2 % 11); 
        if (v2 < 2) {  
            v2 = 0;
        } else { 
            v2 = (11 - v2); 
        } 
        if (v2 != val[13]) {   
            return 0; 
        } else {  
            return 1; 
        }
    } else {
        return 0;
    }



Pronto o Script ficará conforme as imagens abaixo:


Basta clicar em "Salvar" para armazenar a inclusão.


ADICIONE UM COMPONENTE DE CONDIÇÃO NO FLUXO

 

Agora que o SCRIPT está criado podemos adicionar um componente de condição para testarmos o valor retornado na variável "{{IS_CPF}}" que criamos no SCRIPT. Lembrando que a variável retorna "0" e "1". Também pode-se utilizar a variável em qualquer outro componente.


Veja a imagem:



Neste exemplo teremos dois comportamentos do Fluxo, o primeiro se o valor retornado for "0" de CPF/CNPJ inválido poderemos informar o cliente e seguir um fluxo.


O segundo que seria a Exceção "1" poderíamos colocar para prosseguir o fluxo sendo que recebemos "1" de CPF/CNPJ válido.





Clique Aqui e deixe seu Feedback!





Este artigo foi útil?

Que bom!

Obrigado pelo seu feedback

Desculpe! Não conseguimos ajudar você

Obrigado pelo seu feedback

Deixe-nos saber como podemos melhorar este artigo!

Selecione pelo menos um dos motivos
A verificação do CAPTCHA é obrigatória.

Feedback enviado

Agradecemos seu esforço e tentaremos corrigir o artigo