Cálculo do dígito verificador do caepf – cadastro de ativida
Moderador: Moderadores
Cálculo do dígito verificador do caepf – cadastro de ativida
Bom dia alguém tem rotina ou como calcular o dígito verificador do caepf – cadastro de atividade econômica da pessoa física.
obg
Att.
Marcelo A. L. Carli
Marília/SP
Capital Nacional do Alimento ®
https://malc-informatica.ueniweb.com
http://marcelo.lx.com.br
Email / Skype: malcarli@life.com.br
obg
Att.
Marcelo A. L. Carli
Marília/SP
Capital Nacional do Alimento ®
https://malc-informatica.ueniweb.com
http://marcelo.lx.com.br
Email / Skype: malcarli@life.com.br
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Cálculo do dígito verificador do caepf – cadastro de ativida
Olá!
Uma pesquisa simples no Google trouxe várias fórmulas, incluindo a que procura:DÍGITOS DE VERIFICAÇÃO
Uma pesquisa simples no Google trouxe várias fórmulas, incluindo a que procura:DÍGITOS DE VERIFICAÇÃO
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Cálculo do dígito verificador do caepf – cadastro de ativida
Até fiz a mesma, mas não entendi a excessão.
É porque não existe exceção, existe apenas a regra geral de somar 12.Portanto, o CAEPF+DV seria 293.118.610/001-72.
Mas há um senão: estaria sendo somado 12 ao DV encontrado.
E se o resultado da soma for maior do que 99, diminui-se 100.
No exemplo, o DV será 72+12=84.
Código: Selecionar todos
nDigito1 := 7
nDigito2 := 2
nResultado := nDigito1 * 10 + nDigito2
nDigitoGeral := Mod( nResultado + 12, 100 )
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Cálculo do dígito verificador do caepf – cadastro de ativida
Com ajuda de colegas, posto a solução final.
Chamar a função assim:
fVercaepf([99990999999912]) ou
fVercaepf([999909999999]) sem os dígitos.
A função fVercaepf retorno string calculado com 14 dígitos.
Ai é só fazer um teste se os digitos da função são iguais aos dígitos do valor enviado
Chamar a função assim:
fVercaepf([99990999999912]) ou
fVercaepf([999909999999]) sem os dígitos.
A função fVercaepf retorno string calculado com 14 dígitos.
Ai é só fazer um teste se os digitos da função são iguais aos dígitos do valor enviado
Código: Selecionar todos
Static Function fVercaepf(cString)
Local i:= nSoma:= nDv:= 0, nFator:= 9
cString:= SubStr(cString, 1, 12)
For i:= Len(cString) To 1 Step -1
nSoma += Val(SubStr(cString, i, 1)) * nFator
nFator:= If(nFator == 2, 9, nFator - 1)
Next
cString:= cString + If(Mod(nSoma, 11) < 2 .or. Mod(nSoma, 11) > 9 , [0], Str(Mod(nSoma, 11), 1))
nSoma := 0
nFator:= 9
For i:= Len(cString) To 1 Step -1
nSoma += Val(SubStr(cString, i, 1)) * nFator
nFator:= If(nFator == 2, 9, nFator - 1)
Next
cString:= cString + If(Mod(nSoma, 11) < 2 .or. Mod(nSoma, 11) > 9 , [0], Str(Mod(nSoma, 11), 1))
cString:= SubStr(cString, 1, 12) + Iif(Val(SubStr(cString, 13, 2)) + 12 > 100, Strzero((Val(SubStr(cString, 13,2)) + 12) - 100, 2, 0), Strzero(Val(SubStr(cString, 13, 2)) + 12, 2, 0))
Return (cString)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Cálculo do dígito verificador do caepf – cadastro de ativida
Tá certo isso?
Não bate com o que colocou lá no fórum.
Não bate com o que colocou lá no fórum.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Cálculo do dígito verificador do caepf – cadastro de ativida
está funcionando e testado com testador online
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Cálculo do dígito verificador do caepf – cadastro de ativida
Testou o código do exemplo?
Essa bate, a sua não.
Essa bate, a sua não.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Cálculo do dígito verificador do caepf – cadastro de ativida
Não sei de onde tirou isto:
Código: Selecionar todos
cString:= cString + If(Mod(nSoma, 11) < 2 .or. Mod(nSoma, 11) > 9 , [0], Str(Mod(nSoma, 11), 1))
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
