Autor Tópico: Algum exemplo de verificação de CPF/CNPJ para webdev?  (Lida 7399 vezes)

Arlindo Reis

  • Sr. Member
  • ****
  • Mensagens: 291
  • Karma: +0/-0
Algum exemplo de verificação de CPF/CNPJ para webdev?
« Online: Agosto 12, 2013, 04:00:57 pm »
Olá pessoal,

estou a tempos pesquisando e tentando fazer uma rotina de verificação de CPF/CNPJ para webdev.

Alguém tem algum exemplo?

Grato

Davi

  • Global Moderator
  • *****
  • Mensagens: 426
  • Karma: +0/-0
Re:Algum exemplo de verificação de CPF/CNPJ para webdev?
« Responder #1 Online: Agosto 13, 2013, 08:56:18 am »
PROCEDURE Teste_CPF(tCPF is string)

x1,x2,x3,x4 is int
x0 is string
x0=Replace(tCPF,".","")
x0=Replace(x0,"/","")
x0=Replace(x0,"-","")
x0=Replace(x0," ","")

WHILE x3 < 9
   x3 = x3 + 1
   x4 = Val(Middle(x0,x3,1))
   x1 = x1 + x4 * (11-x3)
   x2 = x2 + x4 * (12-x3)
END
x1 = 11-modulo(x1,11)
x1 = IIF(x1>9,0,x1)
x2 = 11 - modulo(x2+x1*2,11)
x2 = IIF(x2>9,0,x2)
RESULT NumToString(x1) + NumToString(x2) = Right( x0 , 2 )

Davi

  • Global Moderator
  • *****
  • Mensagens: 426
  • Karma: +0/-0
Re:Algum exemplo de verificação de CPF/CNPJ para webdev?
« Responder #2 Online: Agosto 13, 2013, 08:57:06 am »
PROCEDURE Teste_CNPJ(tCNPJ is string)

x1,x2,x3,x4,x5 is int
x0 is string
x0=Replace(tCNPJ,".","")
x0=Replace(x0,"/","")
x0=Replace(x0,"-","")
x0=Replace(x0," ","")

WHILE x3 < 12
   x3 = x3 + 1
   x4 = Val(x0[[x3]])
   x5 = IIF( x3<5 , 6-x3 , 14-x3 )
   x1 = x1 + x4 * x5
   x2 = x2 + x4 * ( IIF( x3=5 , 2 , x5+1 ) )
END
x1 = 11 - modulo( x1 , 11 )
x1 = IIF( x1>9 , 0 , x1 )
x2 = 11 - modulo( x2+x1*2 , 11 )
x2 = IIF( x2>9 , 0 , x2 )
RESULT NumToString(x1) + NumToString(x2) = Right( x0 , 2 )

Davi

  • Global Moderator
  • *****
  • Mensagens: 426
  • Karma: +0/-0
Re:Algum exemplo de verificação de CPF/CNPJ para webdev?
« Responder #3 Online: Agosto 13, 2013, 09:00:20 am »
esse roda no windev, se for webdev com paginas dinamicas webdev funciona, acho que para paginas php tem que converter para php

Arlindo Reis

  • Sr. Member
  • ****
  • Mensagens: 291
  • Karma: +0/-0
Re:Algum exemplo de verificação de CPF/CNPJ para webdev?
« Responder #4 Online: Agosto 13, 2013, 10:11:47 am »
Vlw, vou testar!

Arlindo Reis

  • Sr. Member
  • ****
  • Mensagens: 291
  • Karma: +0/-0
Re:Algum exemplo de verificação de CPF/CNPJ para webdev?
« Responder #5 Online: Outubro 07, 2013, 06:28:16 pm »
O que seria esse "IIF"?

Sergio

  • Newbie
  • *
  • Mensagens: 43
  • Karma: +0/-0
Re:Algum exemplo de verificação de CPF/CNPJ para webdev?
« Responder #6 Online: Outubro 29, 2013, 10:18:29 am »
Eu estou tentando usar essa função para validar o cpf/cnpj no windev 18, só que da erro nessa duas linha

x1 = IIF(x1>9,0,x1)
x2 = IIF(x2>9,0,x2)

Alguém sabe com resolver

Paulo Moura

  • Newbie
  • *
  • Mensagens: 6
  • Karma: +0/-0
Re:Algum exemplo de verificação de CPF/CNPJ para webdev?
« Responder #7 Online: Outubro 29, 2013, 11:20:13 am »
Bom dia !

Declare esta procedure global:

PROCEDURE iif(pCondição is boolean,pThen,pElse)

IF pCondição THEN
   RESULT pThen
ELSE
   RESULT pElse
END

Sergio

  • Newbie
  • *
  • Mensagens: 43
  • Karma: +0/-0
Re:Algum exemplo de verificação de CPF/CNPJ para webdev?
« Responder #8 Online: Outubro 29, 2013, 11:53:52 am »
Ola Paulo

Grato por sua atenção

Mais uma coisa, não tenho muita experiência com windev.
Como faz para executar essa validação ao sair do edt_cpf.

Sergio

Paulo Moura

  • Newbie
  • *
  • Mensagens: 6
  • Karma: +0/-0
Re:Algum exemplo de verificação de CPF/CNPJ para webdev?
« Responder #9 Online: Outubro 29, 2013, 04:53:24 pm »
Use a área de código EXIT FROM ...

Sergio

  • Newbie
  • *
  • Mensagens: 43
  • Karma: +0/-0
Re:Algum exemplo de verificação de CPF/CNPJ para webdev?
« Responder #10 Online: Outubro 29, 2013, 05:30:07 pm »
Ola
Paulo
Grato por sua atenção mais uma vez

Se o cpf não for verdadeiro deveria aparecer uma mensagem e retornar o foco para o edt do cpf

Na rotina passada ele passa um parâmetro do tipo string

em exit_from
//assim não funciona
ValidaCPF(EDT_Cpf)

//assim tp não funciona
valida is strin
validaCPF(valida)

Como fazer para esse validação funcionar.
O amigo que fez a rotina deveria colocar começo, meio e fim, tem muito iniciante que entra nesse fórum e fica perdido.

Sergio

zazibr

  • Jr. Member
  • **
  • Mensagens: 94
  • Karma: +0/-0
Re:Algum exemplo de verificação de CPF/CNPJ para webdev?
« Responder #11 Online: Outubro 30, 2013, 04:47:48 pm »
a unica coisa que nao funcionou aqui foi
Código: [Selecionar]

x1 = IIF(x1>9,0,x1)
x2 = IIF(x2>9,0,x2)


mudei para

Código: [Selecionar]
x1 = x1>9 ? 0 ELSE x1
x2 = x2>9 ? 0 ELSE x2

vou testar no PHP essa semana ai publico aqui o resultado do teste

zazibr

  • Jr. Member
  • **
  • Mensagens: 94
  • Karma: +0/-0
Re:Algum exemplo de verificação de CPF/CNPJ para webdev?
« Responder #12 Online: Outubro 30, 2013, 08:03:38 pm »
modifiquei o codigo para nao aceitar números repetidos como 1111111111, 22222222222 ate 99999999999

Código: [Selecionar]
PROCEDURE Teste_CPF(tCPF is string)
// Criado por   : Davi Corrêa - Fullpack Software
// Alterado por : Daniel Lopes Filho - Lopes Informatica
x1,x2,x3,x4 is int
nContador is int
CpfInvalido is string
x0 is string
x0=Replace(tCPF,".","")  // Replace Funciona com PHP (server e Browser)
x0=Replace(x0,"/","")
x0=Replace(x0,"-","")
x0=Replace(x0," ","")
// testar os cpf repetidos
// 11111111111 a 999999999
FOR nContador = 1 TO 9
CpfInvalido = RepeatString(nContador , 11 ) // Funciona com PHP ( server o Browser)
IF x0 = CpfInvalido THEN
RESULT False
END
END


WHILE x3 < 9
x3 = x3 + 1
// Middle Funciona com PHP (server e Browser)
x4 = Val(Middle(x0,x3,1))
x1 = x1 + x4 * (11-x3)
x2 = x2 + x4 * (12-x3)
END

// modulo - Funciona com PHP (server e Browser)
x1 = 11-modulo(x1,11)
x1 =  x1>9 ?  0 ELSE x1
x2 = 11 - modulo(x2+x1*2,11)
x2 = x2>9 ? 0 ELSE x2
// NumToString - Funciona com PHP (server e Browser)
// Right - Funciona com PHP (server e Browser)
RESULT NumToString(x1) + NumToString(x2) = Right( x0 , 2 )

zazibr

  • Jr. Member
  • **
  • Mensagens: 94
  • Karma: +0/-0
Re:Algum exemplo de verificação de CPF/CNPJ para webdev?
« Responder #13 Online: Outubro 31, 2013, 11:09:35 am »
exemplo funcionando no php ( mesma rotina acima) vou estudar um pouco e fazer o mesmo no browser code ja que esse exemplo roda do lado servidor

www.lopesinformatica.net

Davi

  • Global Moderator
  • *****
  • Mensagens: 426
  • Karma: +0/-0
Re:Algum exemplo de verificação de CPF/CNPJ para webdev?
« Responder #14 Online: Outubro 31, 2013, 11:57:31 am »
A rotina retorna um true ou false, simples.....

no evento de exit do seu edit vc deve fazer a verficação....


IF NOT Teste_CPF(CNPJ_CPF) THEN
      Info("CPF inválido!")
      ReturnToCapture(CNPJ_CPF)
END

A função iif é uma if simples, só coloquei dentro de uma procedure como o paulo deu o exemplo

vc pode substituir o iif por    ex.:    x1 = IIF(x1>9,0,x1)    por     X1 > 9 ? "0" ELSE x1

uma coisa.... leiam o help do windev, é o melhor help que já vi, tudo o que vc precisar para fazer um sistema simples a intermediário... tem no help

Abraço a todos.