nota fiscal eletrônica - geração, assinatura e transmissão

Upload: akerse14

Post on 15-Jul-2015

72 views

Category:

Documents


0 download

TRANSCRIPT

Nota Fiscal Eletrnica - Gerao, Assinatura e Transmisso

http://www.linhadecodigo.com.br/artigo/1814/nota-fiscal-eletronicagerac...

Pesquisar

HOME

DESENVOLVIMENTO

BANCO DE DADOS

DESIGN

GERNCIA

INFRA

PUBLIQUE

CURSOS

VDEOS

Desenvolvimento - Delphi

WHITE PAPERS Estudo comparativo entre banco de dados IBM Informix e Microsoft SQL A International Technology Group aponta as vantagens do IBM Informix sobre o Microsoft SQL Server, para organizaes de mdio porte.

Nota Fiscal Eletrnica - Gerao, Assinatura e Transmissopor Victory Fernandes21 3 0 Email 5 0

Atualmente tenho sido cobrado por todos os lados a respeito de solues para Nota Fiscal Eletrnica (NF-e). Os clientes precisam adequar seus sistemas, a empresa precisa fornecer soluo imediata, os leitores querem saber mais sobre o tema. A NF-e um documento emitido e armazenado eletronicamente, com validade jurdica garantida por processo de assinatura digital. O principal objetivo da implantao desta nova modalidade o acompanhamento em tempo real das operaes comercias pelo Fisco e a substituio do modelo atual de emisso de documentos fiscais em papel, de forma a simplificar uma srie de obrigaes do contribuinte. Maiores informaes podem ser obtidas atravs do portal nacional em www.nfe.fazenda.gov.br Neste artigo faremos um apanhado geral dos inmeros conceitos e tecnologias envolvidas no desenvolvimento e implantao de solues para NF-e, incluindo o processo de gerao, assinatura e transmisso de Notas Fiscais Eletrnicas. Ao final deste artigo o leitor ter uma viso geral de como funciona o processo e ser apresentado a alternativas simples, eficazes e flexveis para agilizar o processo de adequao do seu software nova legislao. Descrio Simplificada do Processo De maneira simplificada o modelo operacional da NF-e pode ser assim descrito:ASSINE NOSSAS REVISTASPublicidade

1. A empresa emissora da NF-e gera um arquivo eletrnico contendo as informaes fiscais da operao comercial em questo. a. O arquivo eletrnico tem extenso .XML (Extensible Markup Language) e deve ser gerado conforme padro pr-estabelecido vigente. b. Este documento eletrnico contm informaes equivalentes s informaes contidas no modelo atual de notas fiscais em papel. 2. O documento da NF-e emitido deve ser assinado digitalmente, de maneira a garantir a integridade dos dados, a autoria do emissor e a validade jurdica do documento. a. O processo de assinatura digital deve ser feito utilizando-se certificado digital tipo A1 ou A3 emitido por autoridade certificadora credenciada pela Infra-estrutura de Chaves Pblicas Brasileira ICP-Brasil (www.icpbrasil.gov.br). b. Neste artigo foram utilizados certificados emitidos pela empresa CertSign (www.certisign.com.br), devidamente credenciada no ICP-Brasil.Eliel Moizs Ezion Carlos Washington

easy .net mag 19

.net Magazine 93VER TODAS ASSINE

Linha de Cdigo no FacebookCurtir 320 pessoas curtiram Linha de Cdigo.

c. A escolha do fornecedor do certificado abordado neste artigo se deu primeiramente pela CertSign ser devidamente certificada no ICP-Brasil e tambm pelo fato de ser uma das empresas lderes deste mercado e dispor de Autoridade de Registro (AR) sediada em nossa cidade, Salvador Ba. No entanto sinta-se o leitor livre para escolher entre qualquer uma das empresas disponveis no mercado, todas elas dispem de processos semelhantes aos apresentados e toda a teoria mostrada no que tange a NF-eJos Augusto Vincius Renan Noisegun Vinicius Plug-in social do Facebook

1 de 13

01/02/2012 14:01

Nota Fiscal Eletrnica - Gerao, Assinatura e Transmisso

http://www.linhadecodigo.com.br/artigo/1814/nota-fiscal-eletronicagerac...

continua sendo vlida. 3. O arquivo deve ento ser transmitido, via Internet, para a Secretaria da Fazenda do Estado (SEFAZ) onde reside o contribuinte emissor. 4. Aps receber o arquivo, a SEFAZ realiza um processo de pr-validao e devolve uma Autorizao de Uso, permitindo com isso o trnsito da mercadoria e a continuao da transao comercial. 5. Para acompanhar o trnsito da mercadoria o sistema deve imprimir, em papel comum, geralmente em nica via, uma representao grfica simplificada da NF-e, chamada de DANFE (Documento Auxiliar da Nota Fiscal Eletrnica)

TOP 10 - ARTIGOS

TOP 10 - AUTORES

1 2 3 4

HTML Bsico HTML Avanado Comandos bsicos em SQL - insert, update, delete e select Principais Instrues em SQL Javascript: O Objeto Date() Excel: Como verificar se existe valores duplicados CorelDraw: Criao de Uniformes Esportivos Lendo e cadastrando alquotas na Impressoras Daruma Excel: Comparando Listas Tutorial: Desenhando com o Corel DrawVER TODOS

a. O DANFE deve conter impressa uma chave de acesso que possibilita a consulta da NF-e na internet, de forma que qualquer pessoa possa confirmar as informaes impressas com as informaes contidas no site da SEFAZ. b. O DANFE no uma nota fiscal, nem a substitui, servindo apenas como instrumento auxiliar para consulta da NF-e na internet. Atualmente, conforme consta no FAQ disponvel no portal da NF-e, o protocolo ICMS 30/07 alterou o Protocolo ICMS 10/07 e estabeleceu a obrigatoriedade de utilizao NF-e a partir de 1 de abril de 2008, para os seguintes tipos de contribuintes que estejam localizados nos Estados signatrios deste protocolo: fabricantes e distribuidores de cigarros distribuidores, produtores, formuladores e importadores de combustveis lquidos, assim definidos e autorizados por rgo federal competente; transportadores e revendedores retalhistas TRR - assim definidos e autorizados por rgo federal competente. Para os demais contribuintes, a estratgia de implantao nacional que estes, voluntariamente e gradualmente, independente do porte, se interessem por emitir Nota Fiscal Eletrnica. Certificados Digitais Os certificados digitais so documentos eletrnicos que identificam pessoas fsicas ou jurdicas e atravs do uso de criptografia asseguram a confiabilidade, privacidade, integridade, inviolabilidade e autenticidade de informaes de transaes realizadas via Internet. O processo de assinatura digital utilizando certificados digitais nas operaes via Internet tem validade jurdica para ser utilizado como assinatura de prprio punho, comprovando que seu proprietrio concorda com o documento assinado. Os tipos mais comuns de certificados digitais so:Linha de Cdigo

5 6 7 8 9 10

LinhaDeCodigo LinhaDeCodigo Android ser plataforma predileta dos desenvolvedores bit.ly/xCGSAR #news #web 8 days ago reply retweet favorite LinhaDeCodigo Desenvolvedor Java Jr. bit.ly/zSeBKA #oportunidade #vagas 8 days ago reply retweet favorite LinhaDeCodigo Analista Programador bit.ly/wHjVIq #oportunidade #vagas 8 days ago reply retweet favorite LinhaDeCodigo Analista de Suporte bit.ly/AlEIRt #oportunidade #vagas 8 days ago reply retweet favorite Join the conversation

Certificados tipo A3 oferecem maior segurana, j que seu certificado gerado, armazenado e processado em carto inteligente (SmartCard) ou token (espcie de hardlock para conexo na porta USB), que permanece assim inviolvel e nico. Apenas o detentor da senha de acesso, criada no momento da validao, pode utilizar a chave privada. O certificado digital tipo A3 possui validade de 3 anos. Certificados tipo A1 so gerados e armazenados no computador pessoal do usurio, no sendo necessrio o uso de cartes inteligentes ou tokens. Os dados podem ser protegidos por uma senha de acesso, criada pelo usurio. Somente com esta senha possvel acessar, mover e copiar sua chave privada. Por medida de segurana, recomenda-se que um nico computador armazene o par de chaves tipo A1 e apenas uma cpia de segurana seja criada. A validade deste tipo de certificado de 01(um) ano, contado a partir de sua data de emisso. A escolha do tipo de certificado a ser utilizado no desenvolvimento da sua aplicao depende muito das suas necessidades e possibilidades financeiras.

2 de 13

01/02/2012 14:01

Nota Fiscal Eletrnica - Gerao, Assinatura e Transmisso

http://www.linhadecodigo.com.br/artigo/1814/nota-fiscal-eletronicagerac...

Os certificados tipo A1 so mais baratos, no entanto so menos flexveis, pois esto instalados em uma nica mquina, tm prazo de validade reduzido e so considerados menos seguros. Os certificados tipo A3 do tipo SmartCard tm um custo intermedirio, mas num primeiro momento, dependem da aquisio de um leitor de carto que deve estar instalado na mquina onde o carto ser utilizado. A vantagem, no entanto que, aps o prazo de 3 anos da compra do primeiro carto, no ser necessrio adquirir novo leitor de carto, o que torna o custo a longo prazo mais interessante. Os certificados tipo A3 do tipo token USB tm maior flexibilidade quando comparados aos outros formatos pois depende apenas da disponibilidade de uma porta USB na mquina onde o mesmo ser utilizado, facilitando e muito o processo de desenvolvimento. O custo, no entanto, o mais elevado tendo em vista que o prazo de validade o mesmo quando comparado ao modelo SmartCard. Acessando o site da CertSign no link especfico de certificados digitais para emisso de NF-e, temos acesso aos seguintes custos, por tipo de certificado, conforme mostrado na Figura 01.

Figura 01: Certificados para emisso de NF-e no site da CertSign Para o desenvolvimento do projeto de NF-e, optei pelo certificado tipo A3, modelo token USB, devido sua flexibilidade e praticidade, principalmente considerando o ambiente de desenvolvimento do projeto realizado vrios desenvolvedores diferentes e o processo de atendimento na sede do cliente quando utilizamos notebooks. Gerando uma NF-e para testes de assinatura

Os arquivos de Nota Fiscal Eletrnica so arquivos XML (eXtensible Markup Language) gerados conforme padro de layout definido em arquivos de Schema disponibilizados pelo Governo como Pacotes de Liberao e disponveis para download no Portal Oficial da NFe em www.nfe.fazenda.gov.br. Para fazer testes de gerao, assinatura e transmisso de uma NF-e, utilizamos o aplicativo disponibilizado no site http://www.igara.com.br/produto.php?cod_produto=114. O aplicativo mostrado da Figura 02 um demo desenvolvido em Delphi, totalmente funcional que permite a gerao de NF-e a partir de informaes digitadas pelo usurio em campos de texto que seguem o layout especfico vigente. Aps abrir o aplicativo, clicamos no boto Nova NF-e e depois no boto Salvar NF-e. Por fim selecionamos o diretrio onde desejamos salvar o arquivo .XML gerado. O aplicativo sugere um nome para o arquivo gerado e este nome no deve ser alterado, pois segue padro de nomenclatura especfico exigido com base no contedo da NF-e em questo.

3 de 13

01/02/2012 14:01

Nota Fiscal Eletrnica - Gerao, Assinatura e Transmisso

http://www.linhadecodigo.com.br/artigo/1814/nota-fiscal-eletronicagerac...

Figura 02: Aplicativo em Delphi para gerao de NF-e O arquivo gerado pode ser visualizado no Internet Explorer ou em qualquer outro browser de internet com suporte a XML, e o resultado conforme mostrado na Figura 03. Neste artigo no entraremos em detalhes sobre o processo de gerao da NF-e, pois este ser o tema de outros artigos que viro.

Figura 03: Arquivo .xml de NF-e visualizado no Internet Explorer At o momento, o arquivo gerado no tem valor jurdico, pois ainda no foi assinado de forma que o emissor possa certificar a validade das informaes fornecidas, bem como no h nada que garanta que este documento no foi alterado por terceiros sem o conhecimento prvio do emitente. Para tanto, preciso assinar este documento. Na minha coluna online no site da Revista ActiveDelphi voc encontra um artigo que demonstra como utilizar o aplicativo de assinatura de NF-e disponibilizado para download gratuito no portal oficial da NF-e em www.nfe.fazenda.gov.br. No entanto, neste artigo o objetivo demonstrar como assinar digitalmente os arquivos a partir da sua prpria aplicao, e para isso utilizaremos a assinaturaNFe32dll.dll. Assinatura de NFe com uso da assinaturaNFe32dll.dll Para demonstrar como fcil assinar uma NFe, utilizaremos a assinaturaNFe32dll.dll e o aplicativo demo que acompanha a mesma pode ser obtido a partir do site http://www.igara.com.br/produto.php?cod_produto=114. Aps o download, executamos o aplicativo e clicamos no boto 1. Selecione o arquivo XML da NFe. Um componente da classe TOpenDialog utilizado para apresentar ao usurio uma caixa de seleo de arquivos, onde o mesmo indicar o arquivo .XML a ser assinado. O cdigo do evento OnClick do boto

4 de 13

01/02/2012 14:01

Nota Fiscal Eletrnica - Gerao, Assinatura e Transmisso

http://www.linhadecodigo.com.br/artigo/1814/nota-fiscal-eletronicagerac...

conforme mostrado a seguir. procedure TForm1.Button12Click(Sender: TObject); begin opendialog1.InitialDir := ExtractFileDir(application.ExeName); if OpenDialog1.Execute then begin nfe_filename := OpenDialog1.FileName; WebBrowser1.Navigate(nfe_filename); memo1.Lines.LoadFromFile(nfe_filename); end; end; A Figura 03 apresenta o resultado da execuo de tal procedimento, onde aps a seleo do arquivo .XML, o mesmo carregado em componentes da classe TMemo e TWebBrowser, conforme mostrado no lado esquerdo da Figura 04.

Figura 04: Aplicativo demo de assinatura de NF-e. Seleo da NF-e a ser assinada. Uma vez carregado o arquivo desejado clique no boto 2. Assinar NFe Selecionada para dar incio ao processo de assinatura. O cdigo executado no evento OnClick do boto conforme segue. O procedimento executa uma chamada funo fncAssinarXML contida na dll passando como parmetro do tipo TStrings as linhas do arquivo .XML carregado anteriormente. O resultado da chamada da funo atribudo a um segundo componente da classe TMemo. Se tudo estiver correto, o retorno da funo fncAssinarXML ser o arquivo da Nota Fiscal Eletrnica devidamente assinado. Caso contrrio, o retorno ser uma String vazia. procedure TForm1.Button1Click(Sender: TObject); var nfe_assinada: String; begin try nfe_assinada := fncAssinarXML(memo1.Lines); memo2.Lines.Text := copy(nfe_assinada, 4, length(nfe_assinada));

5 de 13

01/02/2012 14:01

Nota Fiscal Eletrnica - Gerao, Assinatura e Transmisso

http://www.linhadecodigo.com.br/artigo/1814/nota-fiscal-eletronicagerac...

except exit; end; if memo2.Lines.Count > 0 then showmessage("NFe assinada com sucesso"); end; No momento da execuo do cdigo apresentado, surgir uma tela para seleo do certificado digital a ser utilizado no processo de assinatura, conforme mostrado na Figura 05. Importante ressaltar que nesta tela possvel verificar as informaes contidas no certificado, de forma a diferenciar os certificados entre si, para os casos de mais um certificado disponvel em uma mesma mquina.

Figura 05: Seleo de certificado a ser utilizado no processo de assinatura. Aps selecionar o certificado desejado, clique no boto Ok. Surgir ento a tela apresentada na Figura 06 a seguir. Neste momento, para finalizar o processo e efetivamente assinar o documento preciso se fornecer a senha de registro do certificado digital selecionado. Conforme abordado no artigo anterior no momento da aquisio do token, uma senha de acesso deve ser fornecida, sendo pessoal e intransfervel, onde somente atravs dela possvel se utilizar das funcionalidades do certificado.

Figura 06: Confirmao de senha para uso do certificado. Aps preencher a senha e clicar no boto Ok, o arquivo .XML selecionado anteriormente ser assinado e o contedo do XML assinado ser apresentado conforme demonstrado na Figura 07 a seguir.

6 de 13

01/02/2012 14:01

Nota Fiscal Eletrnica - Gerao, Assinatura e Transmisso

http://www.linhadecodigo.com.br/artigo/1814/nota-fiscal-eletronicagerac...

Figura 07: Aplicativo demo de assinatura de NF-e. Assinatura da NF-e. Agora basta clicar no boto 3. Salvar NFe Assinada para que o procedimento de OnClick do boto execute a chamada a um componente da classe TSaveDialog, utilizado para apresentar ao usurio uma caixa de seleo de arquivos, onde o mesmo indicar o local onde o arquivo .XML assinado deve ser salvo. O cdigo do evento OnClick do boto conforme mostrado a seguir. procedure TForm1.Button2Click(Sender: TObject); begin try savedialog1.InitialDir := ExtractFileDir(application.ExeName); SaveDialog1.FileName := ExtractFileName(nfe_filename); if savedialog1.Execute then memo2.Lines.SaveToFile(savedialog1.filename); except exit; end; showmessage("Arquivo de NFe salvo com sucesso") end; Note que no foi preciso ter nenhum conhecimento aprofundado sobre como se d o processo de assinatura digital, e dessa forma abstrai-se completamente a camada relativa s funes necessrias e tecnologias utilizadas. Com a chamada de uma nica funo o arquivo desejado j est assinado! Sobre a assinaturaNFe32dll.dll

A assinaturaNFe32dll.dll um produto desenvolvido para facilitar e agilizar o processo de assinatura digital de arquivos de Nota Fiscal Eletrnica. O objetivo disponibilizar uma soluo simples e acessvel a todos os desenvolvedores onde, atravs da chamada de uma nica funo, seja possvel se indicar o contedo a ser assinado, abstraindo a complexidade desta camada, que envolve conhecimentos aprofundados acerca de funes e tecnologias de certificao. Sendo assim a dll contm um nica funo que recebe como parmetro uma varivel TStrings com o contedo a ser assinado e retorna o contedo devidamente assinada como String. Mais simples que isso, impossvel! Function fncAssinarXML(sXml: TStrings): String; StdCall; external "assinaturaNFe32dll.dll"; O uso da dll permite ao desenvolvedor abstrair completamente a camada de assinatura do arquivo magntico, dispensando o estudo e aprofundamento terico relativo s ferramentas e funes complexas aplicadas no processo. O produto uma soluo pioneira no mercado e d ao desenvolvedor total flexibilidade para implementar recursos de Nota Fiscal Eletrnica em suas aplicaes, adequando seus sistemas s obrigaes exigidas pelo Fisco. Maiores informaes, bem como o download do demo de uso do produto e da verso de avaliao 100% funcional da assinaturaNFe32dll.dll pode ser feito pelo site http://www.igara.com.br/produto.php?cod_produto=114.

Transmisso de NFe com uso da transmissaoNFe32dll.dll A transmisso dos arquivos de Nota Fiscal Eletrnica feita atravs do uso de Webservices.

7 de 13

01/02/2012 14:01

Nota Fiscal Eletrnica - Gerao, Assinatura e Transmisso

http://www.linhadecodigo.com.br/artigo/1814/nota-fiscal-eletronicagerac...

WebService uma tecnologia utilizada para facilitar a comunicao e integrao de sistemas distintos, tornando-os compatveis. O que o WebService prope uma integrao compreensvel, reutilizvel e padronizada. Para tanto, utiliza-se, como base de construo, o padro XML e, para encapsulamento, o protocolo SOAP (Simple Object Access Protocol). Seu transporte normalmente feito via protocolo HTTP. O WebService possibilita que dois aplicativos, independente de suas linguagens, utilizem uma padronizao para enviar e receber dados de forma transparente. No projeto em questo, realizamos o envio de arquivos do padro da NF-e para o sistema servidor da Secretaria da Fazenda que est preparado para responder ao receber um arquivo XML de requisio, formatado num padro especfico, detalhado na documentao disponvel no site oficial do Governo. Para demonstrar como fcil transmitir uma NFe, utilizaremos a transmissaoNFe32dll.dll e o aplicativo demo que acompanha a, que mesma pode ser obtido a partir do site http://www.igara.com.br/produto.php?cod_produto=114.

Aps o download, executamos o aplicativo e clicamos no boto 1. Selecione o arquivo XML a ser transmitido. Um componente da classe TOpenDialog utilizado para apresentar ao usurio uma caixa de seleo de arquivos, onde o mesmo indicar o arquivo .XML a ser transmitido. O cdigo do evento OnClick do boto conforme mostrado a seguir. procedure TForm1.Button12Click(Sender: TObject); begin //Diretrio inicial ser o diretrio onde a aplicao est executando opendialog1.InitialDir := ExtractFileDir(application.ExeName); //Abre caixa de seleo de arquivos if OpenDialog1.Execute then begin xml_filename := OpenDialog1.FileName; //Apresenta XML escolhido em modo browser WebBrowser1.Navigate(xml_filename); //Apresenta XML escolhido em modo texto memo1.Lines.LoadFromFile(xml_filename); end; end; A Figura 03 apresenta o resultado da execuo de tal procedimento, onde aps a seleo do arquivo .XML, o mesmo carregado em componentes da classe TMemo e TWebBrowser, conforme mostrado no lado esquerdo da Figura 08.

8 de 13

01/02/2012 14:01

Nota Fiscal Eletrnica - Gerao, Assinatura e Transmisso

http://www.linhadecodigo.com.br/artigo/1814/nota-fiscal-eletronicagerac...

Figura 08: Aplicativo demo de transmisso de NF-e. Seleo da NF-e a ser transmitida. Uma vez carregado o arquivo desejado, selecione o tipo de transao que ser executada com o servidor. Para cada tipo de transao disponvel existe uma opo no componente da classe TRadioGroup. Os Portais das Secretarias de Fazenda Estaduais disponibilizam os seguintes servios: Recepo de NF-e; o Recepo de Lote; o Consulta Processamento de Lote; Cancelamento de NF-e; Inutilizao de numerao de NF-e; Consulta da situao atual da NF-e; Consulta do status do servio. Os servios disponibilizados seguem a seguinte sistemtica, conforme descrito na documentao oficial de NF-e: Para cada servio oferecido existe um WebService especfico. O fluxo de comunicao sempre iniciado pelo aplicativo do contribuinte atravs do envio de uma mensagem ao WebService com a solicitao do servio desejado. O WebService sempre devolve uma mensagem de resposta confirmando o recebimento da solicitao de servio ao aplicativo do contribuinte na mesma conexo. A solicitao de servio poder ser atendida na mesma conexo ou ser armazenada em filas de processamento nos servios mais crticos para um melhor aproveitamento dos recursos de comunicao e de processamento das Secretarias de Fazenda Estaduais. Os servios podem ser sncronos ou assncronos em funo da forma de processamento da solicitao de servios: o Servios sncronos o processamento da solicitao de servio concludo na mesma conexo, com a devoluo de uma mensagem com o resultado do processamento do servio solicitado; o Servios assncronos o processamento da solicitao de servio no concludo na mesma conexo, havendo a devoluo de uma mensagem de resposta com um recibo que apenas confirma o recebimento da solicitao de servio. O aplicativo do contribuinte dever realizar uma nova conexo para consultar o resultado do processamento do servio solicitado anteriormente. Aps selecionar o servio desejado, basta selecionar a UF para onde o arquivo ser enviado e clicar no boto 5. Transmitir XML para dar incio ao processo de transmisso. O cdigo executado no evento OnClick do boto conforme segue.

9 de 13

01/02/2012 14:01

Nota Fiscal Eletrnica - Gerao, Assinatura e Transmisso

http://www.linhadecodigo.com.br/artigo/1814/nota-fiscal-eletronicagerac...

O procedimento executa uma chamada a uma das funes de transmisso contidas na dll, passando como parmetro do tipo PChar o contedo do arquivo .XML carregado anteriormente. O resultado da chamada da funo, contendo o retorno da transmisso, atribudo a um segundo componente da classe TMemo. procedure TForm1.Button1Click(Sender: TObject); var MyiUF, MyiTipo: Integer; MysXML: PChar; begin try //Atribue valores das variveis q sero passadas como parmetro durante a transmisso MyiUF := combobox1.ItemIndex; MyiTipo := combobox2.ItemIndex; MysXML := PChar(memo1.Lines.Text); //Realiza a chamada da funo da dll de acordo com o tipo de transao escolhida case radiogroup1.ItemIndex of 0: memo2.Lines.Text := fncNfeRecepcao (MysXML, MyiUF, MyiTipo); 1: memo2.Lines.Text := fncCadConsultaCadastro(MysXML, MyiUF, MyiTipo); 2: memo2.Lines.Text := fncNfeCancelamento (MysXML, MyiUF, MyiTipo); 3: memo2.Lines.Text := fncNfeConsulta (MysXML, MyiUF, MyiTipo); 4: memo2.Lines.Text := fncNfeInutilizacao (MysXML, MyiUF, MyiTipo); 5: memo2.Lines.Text := fncNfeRetRecepcao (MysXML, MyiUF, MyiTipo); 6: memo2.Lines.Text := fncNfeStatusServico (MysXML, MyiUF, MyiTipo); end; except showmessage("ATENAO: Erro durante a transmisso"); exit; end; MysXML := ""; showmessage("XML transmitido com sucesso. Verifique o retorno para informaes de retorno"); end; No momento da execuo do cdigo apresentado, surgir uma tela para seleo do certificado digital a ser utilizado no processo de assinatura, conforme mostrado na Figura 09. Importante ressaltar que nesta tela possvel verificar as informaes contidas no certificado, de forma a diferenciar os certificados entre si, para os casos de mais um certificado disponvel em uma mesma mquina.

10 de 13

01/02/2012 14:01

Nota Fiscal Eletrnica - Gerao, Assinatura e Transmisso

http://www.linhadecodigo.com.br/artigo/1814/nota-fiscal-eletronicagerac...

Figura 09: Seleo de certificado a ser utilizado no processo de assinatura. Aps selecionar o certificado desejado e digitar a senha de acesso ao certificado, o arquivo .XML selecionado anteriormente ser transmitido e o retorno do WebService para a transmisso do XML ser apresentado conforme demonstrado na Figura 010 a seguir.

Figura 10: Aplicativo demo de transmisso de NF-e. Retorno da transmisso da NF-e. Agora basta clicar no boto 7. Salvar XML de Retorno para que o procedimento de OnClick do boto execute a chamada a um componente da classe TSaveDialog, utilizado para apresentar ao usurio uma caixa de seleo de arquivos, onde o mesmo indicar o local em que arquivo .XML de retorno deve ser salvo. O cdigo do evento OnClick do boto conforme mostrado a seguir: procedure TForm1.Button2Click(Sender: TObject); begin try //Diretrio inicial ser o diretrio onde a aplicao est executando savedialog1.InitialDir := ExtractFileDir(application.ExeName); //Concatena nome para arquivo de retorno SaveDialog1.FileName := "retorno_" + combobox1.Text + "_" + ExtractFileName(xml_filename); //Salva arquivo de retorno if savedialog1.Execute then begin memo2.Lines.SaveToFile(savedialog1.filename); end; except

11 de 13

01/02/2012 14:01

Nota Fiscal Eletrnica - Gerao, Assinatura e Transmisso

http://www.linhadecodigo.com.br/artigo/1814/nota-fiscal-eletronicagerac...

showmessage("ATENAO: Erro durante o salvamento do retorno"); exit; end; showmessage("Arquivo de retorno salvo com sucesso"); end; Note que no foi preciso ter nenhum conhecimento aprofundado sobre como se d o processo de transmisso, e dessa forma abstrai-se completamente a camada relativa s funes necessrias e tecnologias utilizadas. Com a chamada de uma nica funo, o arquivo desejado j est transmitido! Sobre a transmissaoNFe32dll.dll A transmissaoNFe32dll.dll um produto desenvolvido para facilitar e agilizar o processo de transmisso de arquivos de Nota Fiscal Eletrnica. O objetivo disponibilizar uma soluo simples e acessvel a todos os desenvolvedores onde, atravs da chamada de uma nica funo para cada servio, seja possvel indicar o contedo a ser transmitido, abstraindo a complexidade desta camada, que envolve conhecimentos aprofundados acerca de funes e tecnologias de comunicao via WebService. Sendo assim a dll contm uma funo para cada servio que recebe como parmetro uma varivel PChar com o contedo a ser transmitido e retorna a resposta do WebService. Mais simples que isso, impossvel! O uso da dll permite ao desenvolvedor abstrair completamente a camada de transmisso do arquivo magntico, dispensando o estudo e aprofundamento terico relativo s ferramentas e funes complexas aplicadas no processo. O produto uma soluo pioneira no mercado e d ao desenvolvedor total flexibilidade para implementar recursos de Nota Fiscal Eletrnica em suas aplicaes, adequando seus sistemas s obrigaes exigidas pelo Fisco. Maiores informaes, bem como o download do demo de uso do produto e da verso de avaliao 100% funcional da transmissaoNFe32dll.dll podem ser feitos pelo site http://www.igara.com.br/produto.php?cod_produto=114.

Concluso Com este artigo abordamos os conceitos gerais sobre os processos de gerao, assinatura digital e transmisso de NF-e, e vimos como fcil emitir, assinar e transmitir tais documentos. A NF-e j uma realidade, e muito em breve todos sero obrigados a adotar este novo formato. Mesmo as empresas no obrigadas, esto interessadas em ter seus sistemas atualizados para trabalhar nesta nova modalidade de emisso de documentos fiscais. De agora em diante, gerar, assinar e transmitir uma Nota Fiscal Eletrnica no mais um mistrio!

Victory Fernandes - Professor do Departamento de Engenharia da UNIFACS, Engenheiro Mestrando em Redes de Computadores, e desenvolvedor scio da TKS Software - Solues de Automao e Softwares Dedicados. Pode ser contatado em [email protected], ou atravs

dos sites www.igara.com.br - www.igara.com.br/victory.

21

3

0

Email

5

0

Leia tambmCriao de Componente Vinculado a Lista EncadeadaDelphi

12 de 13

01/02/2012 14:01

Nota Fiscal Eletrnica - Gerao, Assinatura e Transmisso

http://www.linhadecodigo.com.br/artigo/1814/nota-fiscal-eletronicagerac...

Trabalhando com DBCtrlGridsDelphi

Passos para Homologao - Transferncia Eletrnica parte 2Delphi

Passos para Homologao - Transferncia EletrnicaDelphi

Criando uma aplicao com Delphi.NetDelphi

ComentriosCurtir Login

Adicionar novo comentrio

Showing 1 comment

ola pessoal tem as melhores explicaes da NF-e

M Notificar por e-mail S RSS

URL de Trackbackblog comments powered by DISQUS

Estamos aqui: Linha de Cdigo faz parte do grupo Web-03

Poltica de privacidade e de uso | Anuncie | Cadastre-se | Fale conosco

2012 Linha de Cdigo. Todos os direitos reservados

13 de 13

01/02/2012 14:01