Validar IE de Pernanbuco

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Validar IE de Pernanbuco

Mensagem por Itamar M. Lins Jr. »

Ola!
Eu uso esta função, abaixo só que está retornando erro.

Código: Selecionar todos

...
   elseif puf=="PE"
      mascara:="99,999,999-9"
      base   :=pad(origem,9,"0")
      vsom   :=0
      vmul   :=  {9,8,7,6,5,4,3,2}
      for vpos:=1 to 8
          valg:=val(substr(base,vpos,1))
          valg:=valg*vmul[vpos]
          vsom+=valg
      next
      vres  :=vsom%11
      vdig1 :=11-vres
      if(vdig1>9,vdig1-=10,)
      vbase2:=left(base,8)+str(vdig1,1,0)
      ok    :=(vbase2==origem)
...
Já vi que a mascara não é nem mais essa.
Alguém tem essa rotina atualizada ?

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Validar IE de Pernanbuco

Mensagem por janio »

Código: Selecionar todos

//************************************************************ 
function ValidIE_PE(cIE) 
local cDVs := SubStr(cIE,8,2) 
* 
cIE := Left(cIE,7) 
cIE += Modulo11(cIE,2,8) 
cIE += Modulo11(cIE,2,9) 

return cDVs = Right(cIE,2) 
Teste: 0282613-56
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
Daniel
Usuário Nível 3
Usuário Nível 3
Mensagens: 373
Registrado em: 13 Ago 2003 22:42
Localização: Apucarana - PR

Validar IE de Pernanbuco

Mensagem por Daniel »

Faltou a função modulo11

Código: Selecionar todos

/*
Função| Modulo11 | Autor | Erick Nori Barbosa      | Data |     30/05/94|
Descrição  | Calculo do modulo 11                                              
Sintaxe    | ExpL1 := Modulo11(ExpC1,ExpN1,ExpN2)
Parametros | ExpC1 = String para calcular o digito                                    
           | ExpN1 = Primeiro numero de multiplicação do modulo 11       
           | ExpN2 = Ultimo numero de multiplicação do modulo 11          
           | ExpC2 = Digito de verificação (Retornado pela função)       
Uso        | Genérico                                                                               
*/
*****************************************************
Function Modulo11(cStr,nMultIni,nMultFim)
Local i, nModulo := 0, cChar, nMult

nMultIni := Iif( nMultIni==Nil,2,nMultIni )
nMultFim := Iif( nMultFim==Nil,9,nMultFim )
nMult := nMultIni
cStr := AllTrim(cStr)

For i := Len(cStr) to 1 Step -1
     cChar := Substr(cStr,i,1)
     nModulo += Val(cChar)*nMult
     nMult:= IIf(nMult==nMultfim,2,nMult+1)
Next
nRest := nModulo % 11
nRest := IIf(nRest==0 .or. nRest==1,0,11-nRest)
Return(Str(nRest,1))
Daniel

Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Validar IE de Pernanbuco

Mensagem por JoséQuintas »

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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Validar IE de Pernanbuco

Mensagem por JoséQuintas »

esqueci que era só eu tentar cadastrar.... rs
Essa indicada não passou na da sefazclass.
iestadual.png
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Validar IE de Pernanbuco

Mensagem por JoséQuintas »

JoséQuintas escreveu:Essa indicada não passou na da sefazclass.
Mas é lógico... coloquei que era de São Paulo kkkkk

Colocando Pernambuco validou.

Código: Selecionar todos

PROCEDURE Main

   LOCAL cInsc := "028261356"

   ? ValidIE( cInsc, "PE" )

   Inkey(0)

   RETURN
hbmk2 test.prg sefazclass.hbc
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Validar IE de Pernanbuco

Mensagem por JoséQuintas »

Só a título de curiosidade....
O site do Sintegra ainda vale.
sintegra1.png
sintegra2.png
sintegra3.png
sintegra4.png
Curioso é que tem o cálculo anterior, mas a IE era muito maior.

O erro da rotina inicial é pegar os números de calcular mod11 a partir do primeiro (9,8,7,6...), mas deveria SEMPRE terminar no 2.
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/
Responder