Jump to content

dev botao

Adicionar Protocolo ao XML


Go to solution Solved by Diego Foliene,
  • Este tópico foi criado há 416 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Estou consultando uma nota(XML) quem não tem o protocolo atrelada, uso a teg consultar(ACBrNFe.Consultar;) o retorno e perfeito salvo em outra pasta o arquivo gerado, o problema e que o arquivo original e subscrito e o protocolo atrelado ao mesmo, o que gostaríamos que não acontecesse, o que faço para isto não acontecer?.

Link to comment
Share on other sites

  • Consultores
  • Solution

Boa tarde!

Você não quer que seja adicionado a informação do protocolo de autorização no XML original ao consultar, é isso?

Se for, tente usar a consulta por chave de acesso ao invés de passando o arquivo.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link to comment
Share on other sites

Boa tarde,

       Sim, poderia usar a consulta por chaves, mas a consulta e mais pratico, o problema e que no exemplo da NFe/NFCe, ele não subscreve a nota original e na minha rotina o mesmo e subscrito, procurei a configuração no exemplo e não encontrei por isto, o motivo desta postagem.

Link to comment
Share on other sites

Em 11/08/2023 at 14:59, Paulo2670 disse:

Estou consultando uma nota(XML) quem não tem o protocolo atrelada, uso a teg consultar(ACBrNFe.Consultar;) o retorno e perfeito salvo em outra pasta o arquivo gerado, o problema e que o arquivo original e subscrito e o protocolo atrelado ao mesmo, o que gostaríamos que não acontecesse, o que faço para isto não acontecer?.

Eu salvo um XML com os dados originais (sem o número de protocolo) ao gerar a NFe, salvo dentro de uma pasta chamado de XMLOriginal que crio, depois disso, caso dê algum erro eu tenho o xml original gerado com a chave.  Segue a rotina onde salvo esse arquivo abaixo.

 

          //Comando para gerar o xml antes do envio para a sefaz
          ACBrNFe1.NotasFiscais.Assinar;
          ACBrNFe1.NotasFiscais.GravarXML(edtPathLogs.Text + '\PrimeiroLog' + DM.IBNotaNUMERO.AsString + '.xml');

 

Para buscar o protocolo e colocar dentro do xml para ficar válido eu faço dessa forma:

 

            ACBrNFe1.NotasFiscais.Clear;
            ACBrNFe1.WebServices.Consulta.NFeChave := DM.IBNotaIDNOTAFISCAL.AsString;
            ACBrNFe1.WebServices.Consulta.Executar;
            Edit2.Text := ACBrNFe1.WebServices.Consulta.XMotivo;

            MemoResp.Lines.Text := ACBrNFe1.WebServices.StatusServico.RetWS;
            memoRespWS.Lines.Text := ACBrNFe1.WebServices.StatusServico.RetornoWS;

            PanelStatus.Visible := True;
            LabStatus.Caption := 'buscando aquivo xml pela chave da NFe, aguarde ...';
            FrmEnvioNFe.Refresh;

            if Edit2.Text = 'Autorizado o uso da NF-e' then
            begin
              DM.IBNota.Edit;
              DM.IBNotaNPROTOCOLO.AsString := ACBrNFe1.WebServices.Consulta.Protocolo;
              DM.IBNotaSITUACAONF.AsString := 'ENV';
              DM.IBNota.Post;
              DM.IBTransaction1.CommitRetaining;

              MemoResp.Lines.SaveToFile(edtPathNFe.Text + '\' + VPasta + '\' + DM.IBNotaIDNOTAFISCAL.AsString + '-nfe.xml');
            end;

            ACBrNFe1.NotasFiscais.Clear;

            PanelStatus.Visible := True;
            LabStatus.Caption := 'Arquivo localizado com sucesso!';
            FrmEnvioNFe.Refresh;

              ACBrNFe1.NotasFiscais.Clear;
              ACBrNFe1.NotasFiscais.LoadFromFile(ExtractFilePath(Application.ExeName) + '\Arquivos de envio e resposta\' + 'PrimeiroLog' + DM.IBNotaNUMERO.AsString + '.xml');
              ACBrNFe1.Consultar;
              MemoResp.Lines.Text := ACBrNFe1.WebServices.Consulta.RetWS;
              memoRespWS.Lines.Text := ACBrNFe1.WebServices.Consulta.RetornoWS;
              LoadXML(ACBrNFe1.WebServices.Consulta.RetornoWS, WBResposta);
              NomeArq := ExtractFilePath(Application.ExeName) + '\Arquivos de envio e resposta\' + 'PrimeiroLog' + DM.IBNotaNUMERO.AsString + '.xml';
              if pos(UpperCase('-nfe.xml'),UpperCase(NomeArq)) > 0 then
                 NomeArq := StringReplace(NomeArq,'-nfe.xml','-procNfe.xml',[rfIgnoreCase]);
              ACBrNFe1.NotasFiscais.Items[0].GravarXML(NomeArq);
              memoLog.Lines.Add('Arquivo gravado em: '+NomeArq);
 

            VsOrigem := ExtractFilePath(Application.ExeName) + '\Arquivos de envio e resposta\' + 'PrimeiroLog' + DM.IBNotaNUMERO.AsString + '.xml';
            VsDestino := ExtractFilePath(Application.ExeName) + edtPathNFe.Text + Vpasta + '\' + DM.IBNotaIDNOTAFISCAL.Text + '-nfe.xml';
            CopyFile(Pchar(VsOrigem), PChar(VsDestino), False);

 

 

 

Espero ter ajudado!
 

  • Like 1
Link to comment
Share on other sites

  • Este tópico foi criado há 416 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.

The popup will be closed in 10 seconds...