cosmobots
Search…
Validar CNPJ
Olá Cosmonauta, nesse tutorial vamos explicar sobre como retornar uma mensagem ao usuário quando ele informar o CNPJ incorreto e permitir que ele preencha novamente com o CNPJ correto.
1- Para isso, crie uma mensagem que pergunte o CNPJ do usuário e salve a resposta como context.cnpj:
Caso não tenha esse campo em sua lista de opções crie um novo campo.
3- Crie uma etapa javaScript e insira o seguinte código:
1
//
2
// Verifica se o usuario digitou um CNPJ válido
3
//
4
function cnpjValidation(value) {
5
if (!value) return false
6
7
const isString = typeof value === 'string'
8
const validTypes = isString || Number.isInteger(value) || Array.isArray(value)
9
10
11
if (!validTypes) return false
12
13
14
if (isString) {
15
16
if (value.length > 18) return false
17
18
19
const digitsOnly = /^\d{14}$/.test(value)
20
21
const validFormat = /^\d{2}.\d{3}.\d{3}\/\d{4}-\d{2}$/.test(value)
22
23
24
if (digitsOnly || validFormat) true
25
26
else return false
27
}
28
29
30
const match = value.toString().match(/\d/g)
31
const numbers = Array.isArray(match) ? match.map(Number) : []
32
33
34
if (numbers.length !== 14) return false
35
36
37
const items = [...new Set(numbers)]
38
if (items.length === 1) return false
39
40
const calc = (x) => {
41
const slice = numbers.slice(0, x)
42
let factor = x - 7
43
let sum = 0
44
45
for (let i = x; i >= 1; i--) {
46
const n = slice[x - i]
47
sum += n * factor--
48
if (factor < 2) factor = 9
49
}
50
51
const result = 11 - (sum % 11)
52
53
return result > 9 ? 0 : result
54
}
55
56
57
const digits = numbers.slice(12)
58
59
60
const digit0 = calc(12)
61
if (digit0 !== digits[0]) return false
62
63
64
const digit1 = calc(13)
65
return digit1 === digits[1]
66
}
67
var cnpj=context.cnpj
68
console.log(cnpjValidation(cnpj))
69
if(cnpjValidation(cnpj)===true){
70
context.resposta="ok"}
71
else{context.resposta="nok"
72
}
73
Copied!
4- Crie um Filtro, e no filtro coloque a seguinte condição e salve:
5- Do lado não do filtro, insira a mensagem que deve ser enviada ao usuário caso ele informe o CNPJ incorreto:
6- Depois crie uma etapa existente e direcione novamente a etapa que pergunta o CNPJ.
7- Prontinho, se o CNPJ do usuário estiver incorreto ele vai receber a mensagem informando.
Last modified 16d ago
Copy link