Validação de Inscrição Estadual
Moderador: Moderadores
Validação de Inscrição Estadual
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.
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
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
Validação de Inscrição Estadual
Já deu uma olhada aqui?
Mario
Especializado em projetos de TI, suporte técnico, consultoria, freelancer, gestão de tráfego web.
Especializado em projetos de TI, suporte técnico, consultoria, freelancer, gestão de tráfego web.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Validação de Inscrição Estadual
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.
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/
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/
Validação de Inscrição Estadual
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.
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
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Validação de Inscrição Estadual
Da página do sintegra, já não bate.
Não é exatamente que está desatualizada.
É que não existe informação mesmo.
Código: Selecionar todos
SET cInscricao = ze_SoNumero( cInscricao );
IF LENGTH( cInscricao ) <> 13 THEN
RETURN 0;
END IF;
É 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/
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
Validação de Inscrição Estadual
Com esta alteração deu certo.
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.
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;
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/
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
Validação de Inscrição Estadual
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.
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/
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/
Validação de Inscrição Estadual
Agradeço ao Mestre Quintas,
Fiz a alteração e está funcionando corretamente.
Agradeço pela ajuda.
Saudações,
Júlio.
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
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
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Validação de Inscrição Estadual
Alterei de novo.
Falo pra não fazerem IF grande eu mesmo tinha feito isso.
Maior que 13 é inválida e assunto encerrado.
Depois segue normal.
Evita ficar IF pendente no fonte por várias linhas.
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
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/
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/
