Validação de Inscrição Estadual

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

jelias
Usuário Nível 3
Usuário Nível 3
Mensagens: 260
Registrado em: 27 Ago 2008 11:32
Localização: Minas Gerais

Validação de Inscrição Estadual

Mensagem por jelias »

Olá amigos, desejo e espero encontra-los bem!

Uso a dll ie32.dll fornecida no site do sintegra para validação no sistema da inscrição estadual. Ocorre que, em várias ocasiões quando o usuário faz cadastro de novas empresas no estado de Minas Gerais, a dll retorna como inválida, entretanto a inscrição estadual é válida e conferida no sistema site da receita.

Desde já agradeço possíveis soluções,


Saudações,

Júlio.
Anexos
ie32.rar
(173.22 KiB) Baixado 52 vezes
xHarbour 1.2.1 (simplex) + BCC 5.8.2 + Hwgui + SQLRDD
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
Avatar do usuário
developer
Usuário Nível 3
Usuário Nível 3
Mensagens: 149
Registrado em: 09 Nov 2024 23:45
Localização: Londrina/PR

Validação de Inscrição Estadual

Mensagem por developer »

Já deu uma olhada aqui?
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Validação de Inscrição Estadual

Mensagem por JoséQuintas »

Quer em MySQL ou em Harbour ?

Desativada em harbour, não lembro se está atualizada:

https://github.com/JoseQuintas/sefazcla ... tadual.prg

Em MySQL, não lembro se está atualizada:

https://github.com/JoseQuintas/MySQL-fu ... ain/source

O site do sintegra tem manual de calcular todas IEs de todas as UFs, mas não está atualizado.
Provavelmente a DLL segue o site.
No site do sintegra, em serviços, inscrições estaduais, escolher a UF.

Em harbour desativei e não uso mais, e nem atualizo, por isso em rascunhos da sefazclass.
Só valido pelo MySQL mesmo.
Em MySQL até esqueço que coloquei no github.

Quando aparece algo novo em algum cliente, atualizo aqui local, pra resolver o problema.
Algumas mudanças são na base da intuição, já que não tem referência em lugar nenhum.
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/
jelias
Usuário Nível 3
Usuário Nível 3
Mensagens: 260
Registrado em: 27 Ago 2008 11:32
Localização: Minas Gerais

Validação de Inscrição Estadual

Mensagem por jelias »

Não testei o exemplo o Rochinha, ainda.

Fiz o teste com a rotina "Harbour" do Quintas e realmente não consegue validar. Como ele mesmo disse está desatualizada.


INSCRIÇÃO ESTADUAL
49673960097

Saudações,

Júlio.
xHarbour 1.2.1 (simplex) + BCC 5.8.2 + Hwgui + SQLRDD
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Validação de Inscrição Estadual

Mensagem por JoséQuintas »

ie.png
Da página do sintegra, já não bate.

Código: Selecionar todos

SET cInscricao = ze_SoNumero( cInscricao );

IF LENGTH( cInscricao ) <> 13 THEN
   RETURN 0;
END IF;
Não é exatamente que está desatualizada.
É que não existe informação mesmo.
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

Validação de Inscrição Estadual

Mensagem por JoséQuintas »

Com esta alteração deu certo.

Código: Selecionar todos

SET cInscricao = ze_SoNumero( cInscricao );

IF LENGTH( cInscricao ) > 13 THEN
   RETURN 0;
END IF;

IF LENGTH( cInscricao ) < 13 THEN
   SET cInscricao := LPAD( cInscricao, 13, '0' );
END IF;
Pois é....
Tem que ser adivinho pra resolver certas questões no Brasil kkkkk

Nem a DLL do governo entende essas coisas kkkkk

Mas neste caso achei no google esta página, que diz pra colocar zeros à esquerda, fiz o teste e deu certo.

http://community.maxmanager.com.br/2024 ... de-mg.html

Como não tem nada oficial em lugar nenhum, e a consulta mostra esse número, os zeros só entram pra validar.
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

Validação de Inscrição Estadual

Mensagem por JoséQuintas »

Como usa a DLL no seu aplicativo, pode alterar pra colocar zeros quando for MG, e continuar usando a DLL.
Fica a seu critério.
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/
jelias
Usuário Nível 3
Usuário Nível 3
Mensagens: 260
Registrado em: 27 Ago 2008 11:32
Localização: Minas Gerais

Validação de Inscrição Estadual

Mensagem por jelias »

Agradeço ao Mestre Quintas,

Fiz a alteração e está funcionando corretamente.

Código: Selecionar todos

STATIC FUNCTION ValidIE_MG( cInscricao )
LOCAL lOk := .T., nSoma, cNumero, nMultip, cChecar, nCont

IF LEN( cInscricao) < 13
   cInscricao = PADL( cInscricao, 13, "0")
ENDIF   
IF Len( cInscricao ) != 13
   lOk := .F.
ELSE
   cNumero := ""
   nMultip := 1
   cChecar := Substr( cInscricao, 1, 3 ) + "0" + Substr( cInscricao, 4, 8 )
   FOR nCont = 1 to Len(cChecar)
       cNumero := cNumero + LTrim( Str( Val( Substr( cChecar, nCont, 1 ) ) * nMultip ) )
       nMultip := iif( nMultip == 1, 2, 1 )
   NEXT
   nSoma := 0
   FOR nCont = 1 to Len( cNumero )
       nSoma += Val( Substr( cNumero, nCont, 1 ) )
   NEXT
   nSoma := Mod( nSoma, 10 )
   IF nSoma != 0
      nSoma := 10 - nSoma
   ENDIF
   IF nSoma != Val( Substr( cInscricao, 12, 1 ) )
      lOk := .F.
   ELSE
      nSoma := 0
      nMultip := 2
      FOR nCont = 12 to 1 step -1
          nSoma += ( nMultip * Val( Substr( cInscricao, nCont, 1 ) ) )
          nMultip += 1
          nMultip := iif( nMultip == 12, 2, nMultip )
       NEXT
       nSoma := 11 - Mod( nSoma, 11 )
       nSoma := iif( nSoma > 9, 0, nSoma )
       IF nSoma != Val( Substr( cInscricao, 13, 1 ) )
          lOk := .F.
       ENDIF
   ENDIF
ENDIF
IF lOk
   cInscricao := Transform( cInscricao, "@R 999.999.999/9999" )
ENDIF
RETURN lOk
Agradeço pela ajuda.

Saudações,

Júlio.
xHarbour 1.2.1 (simplex) + BCC 5.8.2 + Hwgui + SQLRDD
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Validação de Inscrição Estadual

Mensagem por JoséQuintas »

Alterei de novo.
Falo pra não fazerem IF grande eu mesmo tinha feito isso.

Código: Selecionar todos

STATIC FUNCTION ValidIE_MG( cInscricao )

   LOCAL lOk := .T., nSoma, cNumero, nMultip, cChecar, nCont

   IF Len( cInscricao ) > 13
      RETURN .F.
   ENDIF
   IF Len( cInscricao ) < 13
      cInscricao := PadL( cInscricao, 13, "0" )
   ENDIF
Maior que 13 é inválida e assunto encerrado.
Depois segue normal.

Evita ficar IF pendente no fonte por várias linhas.
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