IE MT

Fórum sobre desenvolvimento de software para atender as exigências da legislação fiscal e tributária (NFe, NFCe, NFSe, SPEED, Projeto ACBr, TEF, ECD, EFD, etc.)

Moderador: Moderadores

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

IE MT

Mensagem por Laudelino Scarmagnani »

Olá pessoal,
tenho a seguinte rotina para calculo da IE do estado do Mato Grosso:

Código: Selecionar todos

mascara:="9999999999-9"
      base   :=padr(origem,11,"0")
      vmul   :={3,2,9,8,7,6,5,4,3,2} // PESO DOS DIGITOS
      vsom:=0
      for vpos:=1 to 10
          valg:=val(substr(base,vpos,1))
          valg:=valg*vmul[vpos]
          vsom+=valg
      next
      vres  :=vsom%11
      vdig1 :=if(vres<2,0,11-vres)
      vbase2:=left(base,10)+str(vdig1,1,0)
      ok    :=(vbase2==origem)
   SGINSCR = VBASE2
   if !ok
      if empty(vbase2)
         alert("Os D¡gitos Identificadores de Cidade e/ou Estado N„o Conferem !")
      else
         vbase2:=strtran(transform(val(vbase2),mascara)," ","0")
         vbase2:=strtran(vbase2,",",".")
         alert("Inscri‡„o Inv lida !;O Correto Seria;"+vbase2)
      endif
      sgresult=1
	else
      sginscrest:=strtran(transform(val(sginscr),mascara)," ","0")
      sginscrest:=strtran(sginscrest,",",".")
   endif
Está retornando com digito incorreto. Acontece que esta rotina para incrição com 11 digitos. O Cliente tem a inscrição 13192112-6, ou seja, 9 digitos. O Estado do Mato Grosso, quantos digitos tem a IE?
Algue teria como corrigir a rotina acima? Compilo em xHarbour.
Agradeço a ajuda.
Laudelino
Editado pela última vez por Maligno em 25 Jun 2011 17:22, 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

IE MT

Mensagem por Maligno »

Veja nesse tópico os códigos para todos os Estados e compare-os. E nesse link aqui um programa de teste e geração de IEs e outros documentos.
[]'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!
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

IE MT

Mensagem por alxsts »

Olá!

Veja este link.
[]´s
Alexandre Santos (AlxSts)
Laudelino Scarmagnani
Usuário Nível 3
Usuário Nível 3
Mensagens: 303
Registrado em: 07 Fev 2007 10:54

IE MT

Mensagem por Laudelino Scarmagnani »

Boa tarde.
No link passado por alxsts, o numero da inscrição é com onze digitos. A que eu passei e consultei no MT é com 9 dígitos. As duas estão valendo?
Laudelino
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

IE MT

Mensagem por Maligno »

MT tem 11 dígitos. É o MS que tem 9.
[]'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

IE MT

Mensagem por Laudelino Scarmagnani »

Maligno, boa tarde.
Só para constar: a inscrição 13192112-6, se consultada, passa e está ok. Então, na minha rotina, inclui 0013192112-6 e o dígito fechou. Consultei no site do MT e aceitou a consulta, só que ao mostrar os dados, vem sem os zeros à esquerda.
Laudelino
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

IE MT

Mensagem por Maligno »

Ah, sim. Muitas vezes é necessário inserir zeros à esquerda antes de passar pelo cálculo. É o seu caso. Mas a representação gráfica independe desses zeros. É só no cálculo que eles devem ser considerados obrigatoriamente. Só não coloque zeros dentro da função de cálculo, a fim de evitar erros.
Pegue o programa que mencionei na segunda mensagem. Até prova em contrário, ele está validando tudo certinho. E ainda gera DVs para criar números de teste.
[]'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!
Responder