Validar Inscrição estadual com DLL do Sintegra

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

Moderador: Moderadores

Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Validar Inscrição estadual com DLL do Sintegra

Mensagem por sygecom »

O nome original da DLL é DllInscE32.dll e pode ser baixado no link abaixo, mesmo assim mandei ela renomeado como ie32.dll que é do jeito que eu uso:
http://www.sintegra.gov.br/DLL3.zip

Exemplo de uso.:

Código: Selecionar todos

   cUF:="RS" // não pode ter espaços em branco
   cIE:="00000000000000"  // sem ponto, sem barra, sem ifen, sem espaços, somente numero em formato de string
   IF ConsisteInscricaoEstadual(cIE,cUF) # 0
      Alert("Inscrição Estadual Invalida para o Estado .: " + cUF)
   ENDIF
Código para ser compilado dentro de um .PRG do sistema

Código: Selecionar todos

#pragma BeginDump
#include "windows.h"
#include "hbapi.h"

typedef INT (WINAPI * _CONSISTEINSCRICAOESTADUAL)(const char *szInscr_Est,const char *szEstado);

HB_FUNC( CONSISTEINSCRICAOESTADUAL )
{
   HINSTANCE handle = LoadLibrary( "ie32.dll" );
   if ( handle )
   {
      const char *szInscr_Est = hb_parcx(1);
      const char *szEstado = hb_parcx(2);
      _CONSISTEINSCRICAOESTADUAL pFunc;

      pFunc = ( _CONSISTEINSCRICAOESTADUAL ) GetProcAddress( handle,"ConsisteInscricaoEstadual");
      hb_retni( pFunc( szInscr_Est,szEstado ));
      FreeLibrary( handle );
   }
}
#pragma EndDump
Anexos
ie32.rar
(145.39 KiB) Baixado 415 vezes
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: Validar Inscrição estadual com DLL do Sintegra

Mensagem por alaminojunior »

Ou no "português claro" como eu uso, retornando se está correta ou não.

Código: Selecionar todos

Function IE(arg1,arg2) // arg1 = IE e arg2 = uf
local iehandle, nret
if alltrim(arg1) = "ISENTO" .or. empty(arg1)
   return .t.
endif
ieHandle:= loadlibrary("dllinsce32.dll")
if iehandle < 1
   alert("DllInscE32.DLL nao carregada")
   return .f.
endif
nret:= dllcall(iehandle,32,"ConsisteInscricaoEstadual",alltrim(arg1),arg2)
if nret = 0
   freelibrary(iehandle)
   return .t.
elseif nret = 1
   alert("Inscricao Estadual invalida para a UF " +arg2)   
   freelibrary(iehandle)   
   return .f.
else
   alert("Parametros invalidos!")   
   freelibrary(iehandle)   
   return .f.
endif
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Re: Validar Inscrição estadual com DLL do Sintegra

Mensagem por rochinha »

Amiguinhos,

Reforçando os exemplos:

Código: Selecionar todos

/////////////////////////////////////////////////////////////////////////////
//
// DllInscE32 - Funcoes Compativeis com hDllInscE32.DLL
//
//         Autor: Jose Carlos da Rocha
//          Data: 02/07/2010
//         Email: irochinha@hotmail.com.br
//           MSN: fivolution@hotmail.com
//     Linguagem: xBase / Fivewin
//   Plataformas: DOS, Windows
// Requerimentos: Harbour/xHarbour
//
/////////////////////////////////////////////////////////////////////////////
#include "fivewin.ch"
#include "dll.ch"

#define DllInscE32 "DllInscE32.dll"

function main()

   public hDllInscE32 := LoadLibrary( DllInscE32 )

   if hDllInscE32 > 0

      cInscricao := "626479717119"
	  cUF        := "SP"
      cOK := ConsisteInscricaoEstadual( cInscricao, cUF )

      if cOK = 0
         MsgStop('Incricao Estadual Valida')
      else
         MsgStop('Incricao Estadual Invalida')
      endif

      FreeLibrary( hDllInscE32 )
   else
      MsgInfo( DllInscE32+" nao foi carregada." )
   endif

return nil

// -------------------------------------------------------------------------//
DLL32 FUNCTION ConsisteInscricaoEstadual( Insc AS STRING, UF AS STRING ) AS _INT PASCAL FROM "ConsisteInscricaoEstadual" LIB hDllInscE32
Esta possibilidade será muito util para a geração dos arquivos SIntegra pois as validações de CNPJ e IE serão muito requisitadas.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Softwhouse
Usuário Nível 3
Usuário Nível 3
Mensagens: 324
Registrado em: 07 Dez 2011 18:44
Localização: Porto Alegre/RS

Validar Inscrição estadual com DLL do Sintegra

Mensagem por Softwhouse »

Não consegui fazer funcionar nenhum dos exemplos. No segundo exemplo falta dllcal, o que tem que linkar junto ?
Obrigado.
Fernando
lucimauro
Usuário Nível 3
Usuário Nível 3
Mensagens: 465
Registrado em: 21 Set 2004 21:02
Localização: Sobral-CE

Validar Inscrição estadual com DLL do Sintegra

Mensagem por lucimauro »

Comigo o primeiro exmeplo funcionou muito bem usando Harbour 3.0
Softwhouse
Usuário Nível 3
Usuário Nível 3
Mensagens: 324
Registrado em: 07 Dez 2011 18:44
Localização: Porto Alegre/RS

Validar Inscrição estadual com DLL do Sintegra

Mensagem por Softwhouse »

Estou usando o Harbour 3.2.0dev (r1309241459), nada funciona.
Fernando
lucimauro
Usuário Nível 3
Usuário Nível 3
Mensagens: 465
Registrado em: 21 Set 2004 21:02
Localização: Sobral-CE

Validar Inscrição estadual com DLL do Sintegra

Mensagem por lucimauro »

Pode mostrar o codigo que fez e nao deu certo, pra min dar uma olhada e qual foi das duas dll que voce usou em seu exemplo, e qual seu compilador?
Softwhouse
Usuário Nível 3
Usuário Nível 3
Mensagens: 324
Registrado em: 07 Dez 2011 18:44
Localização: Porto Alegre/RS

Validar Inscrição estadual com DLL do Sintegra

Mensagem por Softwhouse »

Boa tarde Lucimauro

Consegui resolver, o problema é que estava compilando com o Bat da Minigui no modo console. Muito obrigado pelo interesse em ajudar.
Fernando
rossine
Usuário Nível 3
Usuário Nível 3
Mensagens: 325
Registrado em: 06 Ago 2007 09:57
Localização: Divinópolis-MG

Validar Inscrição estadual com DLL do Sintegra

Mensagem por rossine »

Olá,

Esta DLL está retornando inválido para estado do Pará, para as incrições iniciadas em "75".

No site do sintegra não tem atualização resolvendo este problema.

Neste caso, para quem usa esta DLL como vocês fizeram ?

Ou tem algum alguma rotina de validação de Inscrições feita em harbour ?
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Validar Inscrição estadual com DLL do Sintegra

Mensagem por JoséQuintas »

rossine escreveu:Olá,
Esta DLL está retornando inválido para estado do Pará, para as incrições iniciadas em "75".
No site do sintegra não tem atualização resolvendo este problema.
Neste caso, para quem usa esta DLL como vocês fizeram ?
Ou tem algum alguma rotina de validação de Inscrições feita em harbour ?
Cada caso é um caso, já vi pra algumas IEs que pode ser tamanho diferente.

Em todo caso, não lembro se estão 100% atualizadas:

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

Em MySQL, stored function:
https://github.com/JoseQuintas/MySQL-fu ... ain/source

Só uso em MySQL, vou atualizando aqui na máquina conforme aparece alguma diferente.
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/
rossine
Usuário Nível 3
Usuário Nível 3
Mensagens: 325
Registrado em: 06 Ago 2007 09:57
Localização: Divinópolis-MG

Validar Inscrição estadual com DLL do Sintegra

Mensagem por rossine »

Olá José,

Ok, vou baixar este fonte e testar aqui.

Obrigado por compartilhar.
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
rossine
Usuário Nível 3
Usuário Nível 3
Mensagens: 325
Registrado em: 06 Ago 2007 09:57
Localização: Divinópolis-MG

Validar Inscrição estadual com DLL do Sintegra

Mensagem por rossine »

Olá José,

Neste fonte está faltando a função "CalculaDigito()"

Obrigado.
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
rossine
Usuário Nível 3
Usuário Nível 3
Mensagens: 325
Registrado em: 06 Ago 2007 09:57
Localização: Divinópolis-MG

Validar Inscrição estadual com DLL do Sintegra

Mensagem por rossine »

Olá José,

Neste fonte está faltando a função "CalculaDigito()"

Obrigado.
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
rossine
Usuário Nível 3
Usuário Nível 3
Mensagens: 325
Registrado em: 06 Ago 2007 09:57
Localização: Divinópolis-MG

Validar Inscrição estadual com DLL do Sintegra

Mensagem por rossine »

Olá José,

Baixei os fontes do github e peguei ela lá, mas esta rotina não vai atender para o que eu preciso, pois o IE é iniciado em "75" e sua rotina retorna .F. quando o IE é diferente de "15"

Até tentei tirar esta parte do código, mas retorna .F.

Código: Selecionar todos

*******************
function ValidIE_PA( cInscricao ) 
*******************

   LOCAL lOk := .T.

   IF Len( cInscricao ) != 9
      lOk := .F.
//   ELSEIF Left( cInscricao, 2 ) != "15"
//      lOk := .F.
   ELSE
      IF CalculaDigito( Substr( cInscricao, 1, 8 ), "11" ) != Substr( cInscricao, 9, 1 )
         lOk := .F.
      ENDIF
   ENDIF
   IF lOk
      cInscricao := Transform( cInscricao, "@R 99-999999-9" )
   ENDIF

RETURN lOk
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Validar Inscrição estadual com DLL do Sintegra

Mensagem por JoséQuintas »

al.png
Aqui, já aconteceu com Alagoas também.
Não era pra aceitar 1, mas apareceu.
Conferido lá em Alagoas, a IE com 1 existe.
al2.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/
Responder