Jump to content

dev botao

Adicionar Protocolo ao XML


Go to solution Solved by Diego Foliene,
  • Este tópico foi criado há 279 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á 279 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.