Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

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?.

  • Consultores
  • Solution
Postado

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 !!

Postado

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.

Postado
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!
 

  • Curtir 1
Postado

Ajudou bastante, Elviro.

         mais mesmo assim gostaria de saber por que o exemplo do componente não subscreve  e a minha rotina sim, se estou usando quase o mesmo código, quase um Control+C, Control+V.

 

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.