Página 1 de 2

Validar Inscrição estadual com DLL do Sintegra

Enviado: 01 Jul 2010 22:15
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

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

Enviado: 02 Jul 2010 15:52
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

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

Enviado: 02 Jul 2010 21:56
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.

Validar Inscrição estadual com DLL do Sintegra

Enviado: 12 Nov 2013 20:37
por Softwhouse
Não consegui fazer funcionar nenhum dos exemplos. No segundo exemplo falta dllcal, o que tem que linkar junto ?
Obrigado.

Validar Inscrição estadual com DLL do Sintegra

Enviado: 13 Nov 2013 23:02
por lucimauro
Comigo o primeiro exmeplo funcionou muito bem usando Harbour 3.0

Validar Inscrição estadual com DLL do Sintegra

Enviado: 14 Nov 2013 08:44
por Softwhouse
Estou usando o Harbour 3.2.0dev (r1309241459), nada funciona.

Validar Inscrição estadual com DLL do Sintegra

Enviado: 14 Nov 2013 18:05
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?

Validar Inscrição estadual com DLL do Sintegra

Enviado: 15 Nov 2013 15:31
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.

Validar Inscrição estadual com DLL do Sintegra

Enviado: 01 Ago 2025 11:02
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 ?

Validar Inscrição estadual com DLL do Sintegra

Enviado: 01 Ago 2025 11:18
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.

Validar Inscrição estadual com DLL do Sintegra

Enviado: 01 Ago 2025 11:43
por rossine
Olá José,

Ok, vou baixar este fonte e testar aqui.

Obrigado por compartilhar.

Validar Inscrição estadual com DLL do Sintegra

Enviado: 01 Ago 2025 12:24
por rossine
Olá José,

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

Obrigado.

Validar Inscrição estadual com DLL do Sintegra

Enviado: 01 Ago 2025 12:25
por rossine
Olá José,

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

Obrigado.

Validar Inscrição estadual com DLL do Sintegra

Enviado: 01 Ago 2025 12:32
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

Validar Inscrição estadual com DLL do Sintegra

Enviado: 01 Ago 2025 12:40
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