Erro ao checar IE PE

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Laudelino Scarmagnani
Usuário Nível 3
Usuário Nível 3
Mensagens: 303
Registrado em: 07 Fev 2007 10:54

Erro ao checar IE PE

Mensagem por Laudelino Scarmagnani »

Pessoal,
tenho o seguinte codigo para checar IE de Pernambuco:

Código: Selecionar todos

if puf=="PE"
      mascara:="99,9,999,9999999-9"
      base   :=padr(origem,14,"0")
      vsom   :=0
      vmul   :={5,4,3,2,1,9,8,7,6,5,4,3,2}
      for vpos:=1 to 13
          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,13)+str(vdig1,1,0)
      ok    :=(vbase2==origem)
Está dizendo que a inscricao está em formato errado. As inscrições que vem na nota são com 9 digitos. Mudou algo?
Abraços.
Laudelino.
Editado pela última vez por Toledo em 15 Jun 2010 01:00, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Erro ao checar IE PE

Mensagem por Maligno »

Sim, mudou. Veja na página do SINTEGRA, clicando aqui.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Laudelino Scarmagnani
Usuário Nível 3
Usuário Nível 3
Mensagens: 303
Registrado em: 07 Fev 2007 10:54

Re: Erro ao checar IE PE

Mensagem por Laudelino Scarmagnani »

Obrigado, Maligno.
Ajustei e testei. Está Ok.
laudelino
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Erro ao checar IE PE

Mensagem por Maligno »

Caso queira, tenho um utilitário que testa (e gera DVs de) IEs e outros documentos. Está disponível para download aqui.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
lucimauro
Usuário Nível 3
Usuário Nível 3
Mensagens: 465
Registrado em: 21 Set 2004 21:02
Localização: Sobral-CE

Re: Erro ao checar IE PE

Mensagem por lucimauro »

Laudelino voce poderia compartilhar a alteracao que voce fez para este estado
Desde ja agradeço.
Laudelino Scarmagnani
Usuário Nível 3
Usuário Nível 3
Mensagens: 303
Registrado em: 07 Fev 2007 10:54

Re: Erro ao checar IE PE

Mensagem por Laudelino Scarmagnani »

Ajustei para
elseif puf=="PE"
//mascara:="99,9,999,9999999-9"
mascara:="99,999,999-9"
//base :=padr(origem,14,"0")
base :=padr(origem,9,"0")
vsom :=0
//vmul :={5,4,3,2,1,9,8,7,6,5,4,3,2}
vmul :={9,8,7,6,5,4,3,2}
//for vpos:=1 to 13
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,13)+str(vdig1,1,0)
vbase2:=left(base,8)+str(vdig1,1,0)
ok :=(vbase2==origem)

As linhas marcadas com // é o que havia antes.
Posso postar a rotina toda, se alguém me orientar como anexar um arquivo.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Erro ao checar IE PE

Mensagem por sygecom »

Laudelino Scarmagnani escreveu: Posso postar a rotina toda, se alguém me orientar como anexar um arquivo.
viewtopic.php?f=40&t=8000
E para quem usa Harbour ou xHarbour pode usar a rotina abaixo para validar I.E.:
http://dicasprog.codigolivre.org.br/hmg/0001.php
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder