Olá pessoal!
Recentemente algumas pessoas me questionaram num assunto referente ao PAF-ECF, que se trata no Bloco VII do roteiro de homologação em sua versão 1.5 de abril de 2011, aplicável à versão 01.07, onde regulamenta os “Dados Técnicos para Geração da Assinatura Digital EAD”. Anexo VIII do Ato Cotepe 06/08.
Na realidade, a assinatura EAD já é um assunto bastante comentado na internet, dentre diversos fóruns, porém analisando os testes do bloco, percebemos que os mesmos, é uma forma encontrada para garantir a integridade da assinatura EAD, pois as mesmas são adicionadas em arquivos do tipo texto, que são montados seguindo layouts estipulados neste mesmo ato Cotepe 06/08, através de dados extraídos em geral do banco de dados, e uma vez gerado, se o usuário alterar estes dados no banco, esta assinatura EAD ficaria inválida.
Observe a descrição do Requisito:
b) “A alteração de dados no arquivo eletrônico assinado digitalmente deverá ser evidenciada, apenas nos registros alterados, mediante a substituição de brancos pelo caractere “?” no campo:
b.1) “Modelo do ECF” no caso do registro tipo D2 constante no Anexo III;
b.2) “Unidade” no caso do registro tipo E2 constante no Anexo IV;
b.3) “Unidade” no caso do registro tipo P2 constante no Anexo V;
b.4) “Modelo do ECF” no caso dos registros tipo R01, R02, R03, R04, R05, R06 e R07 constantes no Anexo VI;
b.5) “Tipo de documento” no caso do registro tipo T2 constante no Anexo VII.
Vendo a descrição, podemos notar que os principais arquivos textos, contendo os dados gerados pelo sistema, e montados a partir do “Menu Fiscal” do aplicativo PAF-ECF, deverão ser evidenciadas as possíveis alterações.
Para realizar estes procedimentos, precisaremos ter uma unit MD5.pas, que é disponibilizada na internet, e estarei postando junto com o artigo, pois criaremos uma função que irá calcular o MD5 de um determinado registro de uma tabela do banco de dados, no caso as tabelas que estarão consequentemente, arquivando os dados solicitados no roteiro.
Resumindo. Neste pequeno tutorial irei mostrar uma opção para se atender a este requisito, opção esta que me foi sugerida por outros desenvolvedores parceiros, ao qual credito todo o mérito pela indicação.
Até a próxima!