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