ACBrNFe - Componente OpenSource para Nota Fiscal Eletrônica - NFe - Parte 2
O componente ACBrNFe é um projeto para gerar, validar, transmitir, receber as respostas dos WebServices da Receita e imprimir o DANFe. Este componente faz parte do Projeto ACBr e também é gratuíto. Veja neste artigo os principais métodos do componente ACBrNFe
Você não gostou da qualidade deste conteúdo?
(opcional) Você gostaria de comentar o que não lhe agradou?
Consultar Status do Serviço
Para consultar o Status do Serviço dos WebServices da Receita, use o comando abaixo:
ShowMessage(ACBrNFe1.WebServices.StatusServico.Msg);
Criar uma Nota Fiscal Eletrônica
Para criar uma Nota Fiscal Eletrônica, utilize o comando ACBrNFe1.NotasFiscais.Add e preencha todas as informações referente a NFe.
begin
Identificacao.NaturezaOperacao := 'VENDA PRODUCAO DO ESTAB.';
Identificacao.Codigo := 1;
Identificacao.Numero := 1;
Identificacao.Serie := 1;
Identificacao.DataEmissao := Date;
Identificacao.DataSaida := Date;
Identificacao.Tipo := tSaida;
Identificacao.FormaPagamento := pgAVista;
Emitente.IE := '123456789012';
Emitente.Nome.RazaoSocial := 'Razao Social Emitente';
Emitente.Nome.Fantasia := 'Nome Fantasia Emitente';
Emitente.Endereco.Fone := '(15) 3259XXXX';
Emitente.Endereco.CEP := '18270000';
Emitente.Endereco.Logradouro := 'Rua Onze de Agosto';
Emitente.Endereco.Numero := '3202';
Emitente.Endereco.Complemento := '';
Emitente.Endereco.Bairro := 'Centro';
Emitente.Endereco.Cidade.Codigo := 3554003;
Emitente.Endereco.Cidade.Descricao := 'Tatui';
Emitente.Endereco.UF := 'SP';
Destinatario.Endereco.CEP := '18270410';
Destinatario.Endereco.Logradouro := 'Praça Anita Costa';
Destinatario.Endereco.Numero := '0034';
Destinatario.Endereco.Complemento := '';
Destinatario.Endereco.Bairro := 'Centro';
Destinatario.Endereco.Cidade.Codigo := 3554003;
Destinatario.Endereco.Cidade.Descricao := 'Tatuí';
Destinatario.Endereco.UF := 'SP';
Destinatario.Endereco.Fone := '1532599600';
Destinatario.IE := '000000000000';
Destinatario.NomeRazao := 'D.J. COM. E LOCAÇÃO DE SOFTWARES LTDA - ME';
begin
CFOP := 5101;
Codigo := '67';
Descricao := 'ALHO 400 G';
Quantidade := 100;
Unidade := 'KG';
ValorTotal := 100;
ValorUnitario := 10;
with Tributos do
begin
with ICMS do
begin
CST := '00';
ICMS00.Aliquota := 18;
ICMS00.Valor := 180;
ICMS00.ValorBase := 1000;
end;
end;
ValoresTotais.ValorICMS := 180;
ValoresTotais.ValorNota := 1000;
ValoresTotais.ValorProduto := 1000;
end;
Salvar o XML da NFe
Após incluirmos uma NFe usando o exemplo acima, podemos salvar o XML que será enviado para a Receita.
ACBrNFe1.NotasFiscais.Items[0].XML.SaveToFile(ExtractFileDir(application.ExeName)+ACBrNFe1.NotasFiscais.Items[0].XML.NFeChave+'-NFe.xml');
Enviar uma ou mais NFe
Para enviar uma NFe, temos dois métodos disponíveis. O método ACBrNFe1.Enviar(NumLote); irá gerar o(s) XML da(s) NFe(s), assiná-la(s), validá-la(s), enviá-la(s) e por fim imprimí-la(s) (se forem autorizadas) de forma automática.
ACBrNFe1.NotasFiscais.Assinar;
ACBrNFe1.NotasFiscais.Valida;
ACBrNFe1.WebServices.Envia(NumLote);
Consultar uma NFe
Para consultar uma NFe, é possível consultar baseado na Chave da NFe ou carregando o XML da NFe já autorizada.
ACBrNFe1.WebServices.Consulta.Executar;
ACBrNFe1.NotasFiscais.Add.XML.LoadFromFile(cPathArquivo);
ACBrNFe1.Consultar;
Cancelar uma NFe
Para cancelar uma NFe, e necessário informar a Chave da NFe, número do protocolo de autorização e uma justificativa para o cancelamento. O cancelamento também é possível ser realizado carregando um XML de uma NFe ou informando os campos citados acima.
Exemplo usando a Chave e Protocolo da NFe:ACBrNFe1.WebServices.Cancelamento.Protocolo := Protocolo;
ACBrNFe1.WebServices.Cancelamento.Justificativa := AJustificativa;
ACBrNFe1.NotasFiscais.Add.XML.LoadFromFile(cPathArquivo);
if not(InputQuery('WebServices Cancelamento', 'Justificativa', vAux)) then
exit;
ACBrNFe1.Cancelamento(vAux);
Imprimir uma NFe baseado no XML
Para imprimir uma NFe baseado num XML, basta usar os comandos abaixo:
ACBrNFe1.NotasFiscais.Add.XML.LoadFromFile(cPathArquivo);
ACBrNFe1.NotasFiscais.Imprimir;
Validar uma NFe
Para validar o XML de uma NFe use os comandos abaixo:
ACBrNFe1.NotasFiscais.Add.XML.LoadFromFile(cPathArquivo);
ACBrNFe1.NotasFiscais.Valida;
Inutilizar uma faixa de numeração
Para inutilizar uma faixa de numeração da NFe, use o comando abaixo:
André Ferreira De Moraes.
Formado em Sistemas de Informação Faculdade Santa Bárbara - FAESB - Tatuí; Técnico em Processamento de Dados - Instituto Adventista Paranaense - IAP; Para dúvidas sobre o Projeto ACBr utilize - http://www.djsystem.com.br/acbr/forum Blog - http://anfm.blogspot.com/
6 COMENTÁRIOS
Use o fórum oficial do componente para tirar dúvidas - http://www.djsystem.com.br/acbr/forum/
Quando faço um teste de status do serviço usando ACBrNFe1.WebServices.StatusServico.Executar, retorna a seguinte mensagem:
WebService Consulta Status Serviço:
- Inativo ou Inoperante tente novamente
- Forbiden (403) - https://homologacao.nfe.sefazvirtual.rs ... rvico.asmx
Estou deixando host, pass, port e user em branco, uf=rj, taHomologacao.
Uso Delphi 2006. O que eu poderia estar acontecendo?
Att.
Atenciosamente,
Equipe Devmedia.
Provavelmente seu certificado não é válido ou está vencido.



