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 ferramentasimagem autor

Comentários

Postagens mais visitadas deste blog

Api para correspondente bancário - Analise Info