Ir para conteúdo
  • Cadastre-se

dev botao

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


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

Recommended Posts

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
Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...
  • Solution

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

Link para o comentário
Compartilhar em outros sites

  • Consultores

Obrigado por reportar.

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

Consultor SAC ACBr

Alexandre de Paula
Ajude o Projeto ACBr crescer - Assine o SAC                    

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

 

 

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 141 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.