Ir para conteúdo
  • Cadastre-se

Salvar protocolo e chave da NF após emissão


Ver Solução Respondido por potew,
  • Este tópico foi criado há 921 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado (editado)

Olá, galera, dúvida bem simples aqui... primeiramente queria agradecer a vcs por dedicar a disponibilizar este componente excelente para o Delphi. Após 1 mês e meio vendo tutoriais, quebrando a cabeça e fuçando nos exemplos da ACBr, consegui emitir uma nota em produção usando o componente ACBrNFe. Sempre usei um emissor gratuito da Treeunfe e, infelizmente, descontinuaram o software (migraram para o site). Como não suporto usar emissores web, decidi pegar pra valer e decidi adicionar essa funcionalidade a meu programa de controle de estoque.

Após emitir a nota, gostaria de salvar o XML com a assinatura, o protocolo e a chave da nota (nProt e chNFe) na minha tabela de NFes. Faço assim, mas acredito que não seja o correto:

[...]
ACBrNFe1.NotasFiscais.GerarNFe;
ACBrNFe1.NotasFiscais.Assinar;
ACBrNFe1.NotasFiscais.Validar;
ACBrNFe1.Enviar(1);
LoadXML(ACBrNFe1.WebServices.Retorno.RetornoWS, WBResposta);

FDQueryNFE.Edit;
FDQueryNFE.FieldByName('NFE_XML').AsWideString := ACBrNFe1.NotasFiscais.Items[0].GerarXML;	// Salva o XML, mas sem a assinatura
FDQueryNFE.FieldByName('NFE_PROTOCOLO').AsString := ACBrNFe1.WebServices.Retorno.Protocolo; 	// Acredito que estas
FDQueryNFE.FieldByName('NFE_CHAVE').AsString := ACBrNFe1.WebServices.Retorno.ChaveNFe;		// estejam erradas
FDQueryNFE.FieldByName('IDE_CNF').AsString := ACBrNFe1.WebServices.Retorno.Recibo; 
[...]
FDQueryNFE.Post;

ACBrNFe1.NotasFiscais.Items[0].GravarXML();	// Isso está ok, e ele gera o arquivo
ShowMessage('Arquivo gerado em: ' + ACBrNFe1.NotasFiscais.Items[0].NomeArq);

Obrigado,

Editado por potew
Acrescentando comentário no código
  • 1 mês depois ...
  • Solution
Postado

A minha pergunta era tão idiota que o povo leu e deve ter pensado - não acredito que esse cara está pensando isso -.

Para alguém que tenha essa mesma dúvida, segue como fiz:

FDQueryNFE.Edit;
FDQueryNFE.FieldByName('NFE_XML').AsWideString := FormListaNotas.ACBrNFe1.NotasFiscais.Items[0].XMLAssinado;
FDQueryNFE.FieldByName('NFE_PROTOCOLO').AsString := FormListaNotas.ACBrNFe1.WebServices.Retorno.Protocolo;
FDQueryNFE.FieldByName('NFE_CHAVE').AsString := FormListaNotas.ACBrNFe1.WebServices.Retorno.ChaveNFe;
FDQueryNFE.FieldByName('IDE_CNF').AsInteger := NotaF.NFe.Ide.cNF; //Ou GerarCodigoDFe(NotaF.NFe.Ide.nNF)
FDQueryNFE.FieldByName('XML_ENVIADO').AsInteger := 1;
FDQueryNFE.FieldByName('NFE_DT_PROTOCOLO').AsDateTime := Now;
FDQueryNFE.Post;

Abs

  • Consultores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

image.png

Alexandre de Paula
Gerente de Projetos
Ajude o Projeto ACBr crescer - Assine o Clube PRO                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

 

  • Este tópico foi criado há 921 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...