Validador Inscrição Estadual
Validador Inscrição Estadual
(DllInscE32 – Validador Versão 3.4.3)
INFORMAÇÃO LEGAL IMPORTANTE:
A rotina ora distribuída destina-se apenas a efetuar a verificação de inscrições estaduais no que se refere ao cálculo dos dígitos verificadores.
Os resultados obtidos a partir do seu uso não valem como certidão da efetiva existência de fato e de direito do contribuinte, não são oponíveis à Fazenda e nem excluem a responsabilidade tributária derivada de operações com ele ajustadas.
1. PACOTE DLL 3 :
Destinada aos profissionais programadores em informática;
O arquivo DllInscE32.dll contém as fórmulas de verificação dos dígitos de controle da Inscrição Estadual de todos os Estados e do Distrito Federal.
Utilização: para aplicativos desenvolvidos em DELPHI ou produtos da linha Microsoft.
2. ARQUIVOS NO PACOTE DLL3
2.1 – Arquivo DllInscE32.dll: para extensão de programas na plataforma Windows de 32 bits – Windows 95 ou superior
2.2 - Arquivo Sinscdv.exe: compilado em Delphi, para testar inscrições individualmente.
2.3 – Fontes do aplicativo de teste Sinscdv.exe
2.4 – Banco de Dados do MSACCESS – Formulário Teste de Inscrição: outra alternativa ao Sinscdv.exe para teste de inscrição estadual. Atentar que antes de se efetuar o primeiro teste de inscrição neste banco, deve-se alterar na ficha "Módulos", opção estrutura, o caminho da linha de programa Declare Function ConsisteInscricaoEstadual Lib "C:......", de acordo com o diretório onde foram salvos os arquivos do pacote DLL3.
ATENÇÃO:
A rotina DllInscE32.dll limita-se a efetuar a leitura de uma Inscrição Estadual e retornar, por meio de um código de erro, se a mesma é consistente ou não. Isso significa QUE NÃO SE TRATA DE APLICATIVO PRONTO PARA UTILIZAÇÃO E SIM DE ROTINA A INCLUIR EM APLICATIVO (PROGRAMA) DESENVOLVIDO SOB RESPONSABILIDADE DA PRÓPRIA EMPRESA INTERESSADA.
Desta forma, a referida rotina deverá ser entregue à área/empresa/profissional responsável pelo desenvolvimento dos programas de informática da empresa.
Exemplo de utilização: programa de digitação dos documentos fiscais - para que a digitação correta das inscrições estaduais seja verificada no ato da digitação dos documentos, evitando assim, necessidades de correções de erros acusados posteriormente pelo Validador Sintegra.
3. INFORMAÇÕES ÚTEIS PARA PROGRAMADORES:
Sugestão de Roteiro de Utilização da DLL de Inscrição
1º Passo:
Copiar o arquivo DllInscE32.dll para o diretório c:windowsSystem;
2º Passo:
Declarar uma variável do tipo function:
Ex.:
TConsisteInscricaoEstadual = function (const Insc, UF: String): Integer; stdcall;
TVersaoDLL = function : Integer; stdcall;
3º Passo:
Declarar uma variável do tipo TconsisteInscricaoEstadual
Ex.:
LibHandle : THandle;
ConsisteInscricaoEstadual : TConsisteInscricaoEstadual;
4º Passo:
Carregar a dll;
Ex.: LibHandle := LoadLibrary (PChar (Trim ('DllInscE32.Dll')));
if LibHandle <= HINSTANCE_ERROR then
raise Exception.Create ('Dll não carregada');
@ConsisteInscricaoEstadual := GetProcAddress (LibHandle,'ConsisteInscricaoEstadual');
if @ConsisteInscricaoEstadual = nil then
raise Exception.Create('Não foi encontrada Dll');
5º Passo:
Obter uma instância do método ConsisteInscricaoEstadual e Testar o valor de retorno
Retorno = 0 -> inscrição VÁLIDA
Retorno = 1 -> inscrição INVÁLIDA
Ex.:
IRet := ConsisteInscricaoEstadual (edtInscricao.Text,edtUF.Text);
if Iret = 0 then
MessageDlg ('Inscrição válida para '+edtUf.Text,mtInformation,[mbOk],0)
else if Iret = 1 then
MessageDlg ('Inscrição inválida para '+edtUf.Text,mtError,[mbOk],0)
else
MessageDlg ('Parâmetros inválidos',mtError,[mbOk],0);
Exemplo Completo em DELPHI:
unit Finscdv;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, Buttons, StdCtrls, ExtCtrls, Gauges, DB, DBTables;
type
TConsisteInscricaoEstadual = function (const Insc, UF: String): Integer; stdcall;
TVersaoDLL = function : Integer; stdcall;
type
TfrmInscDv = class(TForm)
Panel1: TPanel;
btnCalcula: TButton;
btnFechar: TBitBtn;
pnlEdit: TPanel;
Label2: TLabel;
edtUF: TEdit;
edtInscricao: TEdit;
Label1: TLabel;
btnArquivo: TButton;
dtsInscr: TDataSource;
tblInscr: TTable;
pnlInscr: TPanel;
gauInscr: TGauge;
lblInscr: TLabel;
btnVersao: TButton;
procedure btnCalculaClick(Sender: TObject);
procedure btnFecharClick(Sender: TObject);
procedure btnArquivoClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure btnVersaoClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmInscDv: TfrmInscDv;
implementation
{//function ConsisteInscricaoEstadual (const Insc, UF: String): Integer; far;
// external 'DllInscE32' index 1;}
{$R *.DFM}
procedure TfrmInscDv.btnCalculaClick(Sender: TObject);
var
IRet, IOk, IErro, IPar : Integer;
LibHandle : THandle;
ConsisteInscricaoEstadual : TConsisteInscricaoEstadual;
begin
try
LibHandle := LoadLibrary (PChar (Trim ('DllInscE32.Dll')));
if LibHandle <= HINSTANCE_ERROR then
raise Exception.Create ('Dll não carregada');
@ConsisteInscricaoEstadual := GetProcAddress (LibHandle,
'ConsisteInscricaoEstadual');
if @ConsisteInscricaoEstadual = nil then
raise Exception.Create('Entrypoint Download não encontrado na Dll');
IRet := ConsisteInscricaoEstadual (edtInscricao.Text,edtUF.Text);
if Iret = 0 then
MessageDlg ('Inscrição válida para '+edtUf.Text,mtInformation,[mbOk],0)
else if Iret = 1 then
MessageDlg ('Inscrição inválida para '+edtUf.Text,mtError,[mbOk],0)
else
MessageDlg ('Parâmetros inválidos',mtError,[mbOk],0);
edtInscricao.SetFocus;
finally
FreeLibrary (LibHandle);
end;
end;
procedure TfrmInscDv.btnVersaoClick(Sender: TObject);
var
IRet, IOk, IErro, IPar : Integer;
LibHandle : THandle;
VersaoDLL : TVersaoDLL;
begin
try
LibHandle := LoadLibrary (PChar (Trim ('DllInscE32.Dll')));
if LibHandle <= HINSTANCE_ERROR then
raise Exception.Create ('Dll não carregada');
@VersaoDLL := GetProcAddress (LibHandle,
'VersaoDLL');
if @VersaoDLL = nil then
IRet := 1
else
IRet := VersaoDLL;
MessageDlg ('A versão da DLL é ' + IntToStr (IRet),mtInformation,[mbOk],0);
edtInscricao.SetFocus;
finally
FreeLibrary (LibHandle);
end;
end;
procedure TfrmInscDv.btnFecharClick(Sender: TObject);
begin
Close;
end;
procedure TfrmInscDv.btnArquivoClick(Sender: TObject);
var
IRet, IOk, IErro, IPar : Integer;
LibHandle : THandle;
ConsisteInscricaoEstadual : TConsisteInscricaoEstadual;
begin
try
LibHandle := LoadLibrary (PChar (Trim ('DllInscE32.Dll')));
if LibHandle <= HINSTANCE_ERROR then
raise Exception.Create ('Dll não carregada');
@ConsisteInscricaoEstadual := GetProcAddress (LibHandle,
'ConsisteInscricaoEstadual');
if @ConsisteInscricaoEstadual = nil then
raise Exception.Create('Entrypoint Download não encontrado na Dll');
{ Abre arquivo com inscrições }
tblInscr.Active := True;
gauInscr.MaxValue := tblInscr.RecordCount;
gauInscr.Progress := 0;
{ Troca o painel ativo }
pnlEdit.SendToBack;
pnlInscr.BringToFront;
{ Varre todo o arquivo }
IOk := 0;
IErro := 0;
IPar := 0;
with tblInscr do
begin
First;
while not EOF do
begin
lblInscr.Caption := 'Inscrição : ' +
FieldByName('ESTADO').AsString + ' - ' +
FieldByName ('INSCRICAO').AsString +
' ';
lblInscr.Refresh;
Edit;
try
IRet := ConsisteInscricaoEstadual (FieldByName ('INSCRICAO').AsString,
FieldByName ('ESTADO').AsString);
if IRet = 0 then
begin
FieldByName ('OK').AsBoolean := True;
Inc (IOk);
end
else if IRet = 1 then
begin
FieldByName ('OK').AsBoolean := False;
Inc (IErro);
end
else
begin
FieldByName ('OK').AsBoolean := False;
Inc (IPar);
end;
except
ShowMessage ('Erro no registro : ' + lblInscr.Caption);
end;
{ Avança }
gauInscr.Progress := gauInscr.Progress + 1;
Next;
end;
{ Fim }
ShowMessage ('Corretas : ' + IntToStr (IOk) + #13 +
'Incorretas : ' + IntToStr (IErro) + #13 +
'Parametros : ' + IntToStr (IPar) + #13 + #13 +
'Total : ' + IntToStr (IOk + IErro + IPar));
{ Retorna o painel }
pnlInscr.SendToBack;
pnlEdit.BringToFront;
end;
finally
FreeLibrary (LibHandle);
end;
end;
procedure TfrmInscDv.FormCreate(Sender: TObject);
begin
tblInscr.TableName := ExtractFilePath(Application.ExeName) + 'Inscr.DBF';
end;
end.
Autor: Thyago Henrique Pacher
Nosso pessoal é especializado em produção de sistemas para nuvem de acordo com o que for necessário para sua empresa e altamente configurável. Entre em contato conosco e podera ter seu sistema até hoje mesmo com máximo de garantia de dados salvos na nuvem e podendo recupera-los a hora que quiser. Temos em nosso portfólio o desenvolvimento de bons e grandes sistemas cujo são voltados para condominios ficando em GestCCon Sistema Concierge, JedisaMunck site para muncks, Site para advogados Ronald Arruda, empresas de consignação de créditos, sites institucionais, sites para cursos online com integração a plataformas famosas tais como moodle.
Utilizamos no nosso dia a dia as melhores ferramentas
Comentários
Postar um comentário