Jump to content
Notícias do ACBr

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

consultoria_sticker.png

Conteúdo para desenvolvedores
 ao vivo de terça a quinta!
Saiba mais

dev.png

logo_acbr_paygo.png

TEF ACBr PayGo
Seja um revendedor e ofereça uma solução completa para seu cliente.


botao.png

beneficios.png

Dúvidas sobre desprezar determinados xmls


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

Recommended Posts

Boa noite,

 

Podem me ajudar numa situação. Estou mexendo aqui na parte do manifesto destinatário e vi que a sefaz liberar todos os xmls cujo meu cnpj participe do mesmo. Exemplo: sou transportador e recebo notas cujo campo transportador cite meu cnpj.

 

NO ACBR tem alguma forma que verifico se o destinatário sou eu, pois essa nf que dei de exemplo pra fins de manifesto não me interessa, ai queria desprezá-la

 

Obrigado.

Link to post
Share on other sites

Esse trecho ai não seria para enviar os eventos do manifesto (Confirmação da operação, etc) ?

 

 

Veja o codigo que estou fazendo:

 

 

procedure TProcessoManifestoDestinatario.ConsultaDocumentosNFe;
var
  ret : string;
  i : Integer;
  trans : TDBXTransaction;
begin
  Sucesso := False;
  try
    nfe := TACBrNFe.Create(nil);
    InicializaDadosNfe;

    if (nfe.DistribuicaoDFePorUltNSU(uf, cnpj, ultNSU)) then begin
      ret := nfe.WebServices.DistribuicaoDFe.RetWS;

      trans := IniciarTransacao;
      for i := 0 to nfe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Count -1 do
        ProcessarRetornoNfeCte(nfe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.resDFe);

      cdsMd.Commit;

      CommitTransacao(trans);

      Sucesso := True;

 

 

 

 

Link to post
Share on other sites
7 horas atrás, DIEGO J B PIRES disse:

if (nfe.DistribuicaoDFePorUltNSU(uf, cnpj, ultNSU)) then begin
      ret := nfe.WebServices.DistribuicaoDFe.RetWS;

Esse só está fazendo a consulta.

veja que tem dois botões no exemplo

Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
http://www.juliomarmarchetti.com.br
Embarcadero MVP
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Link to post
Share on other sites
Em 19/08/2020 at 20:16, DIEGO J B PIRES disse:

NO ACBR tem alguma forma que verifico se o destinatário sou eu, pois essa nf que dei de exemplo pra fins de manifesto não me interessa, ai queria desprezá-la

Você pode verificar se recebeu o resumo da NFe, nesse caso com certeza é o destinatário. Se for o XML completo, carregar o XML no componente ACBrNFe e comparar a tag dest.CNPJCPF.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link to post
Share on other sites

Meu caro BigWings

 

Estou com dificuldade nessa parte do resumo do xml...

 

Meu codigo tá assim

 for i := 0 to nfe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Count -1 do
          ProcessarRetornoNfeCte(nfe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip);

 


procedure TProcessoManifestoDestinatario.ProcessarRetornoNfeCte(retorno : TdocZipCollectionItem);
var
s: string;
begin
  if (Trim(retorno.resDFe.chDFe) = '') then
    Exit;

  cdsMd.Append;
  cdsMd.ProximaChave;
  cdsMd.FieldByName('MANDESTDATAREC').AsDateTime := Now;
  cdsMd.FieldByName('MANDESTCHAVE').AsString := retorno.resDFe.chDFe;
  cdsMd.FieldByName('MANDESTSIT').AsInteger := ord(esmPENDENTE);
  cdsMd.FieldByName('MANDESTEMP').AsInteger := GetSessao.EmpAtiva;
  cdsMd.FieldByName('MANDESTDATAEMISSAO').AsDateTime := retorno.resDFe.dhEmi;
  cdsMd.FieldByName('MANDESTNOME').AsString := UpperCase(retorno.resDFe.xNome);
  cdsMd.FieldByName('MANDESTCNPJCPF').AsString := FormataCNPJ(retorno.resDFe.CNPJCPF);
  cdsMd.FieldByName('MANDESTPROT').AsString := retorno.resDFe.nProt;
  cdsMd.FieldByName('MANDESTVALOR').AsFloat := retorno.resDFe.vNF;
  cdsMd.FieldByName('MANDESTDOC').AsInteger := StrToInt(Copy(retorno.resDFe.chDFe, 26,9));
  cdsMd.FieldByName('MANDESTMODELO').AsInteger := StrToInt(Copy(retorno.resDFe.chDFe, 21,2));
  cdsMd.FieldByName('MANDESTXML').AsString := retorno.XML;
  cdsMd.Post;
end;

 

Porém nesse retorno ai não está vindo apenas xml cujo meu CNPJ é o destinatário.

A outra dica que vc deu foi carregar o xml no componente, tem algum tutorial ai que posso me ajudar ?

 

 

Obrigado

 

 

Link to post
Share on other sites
procedure TProcessoManifestoDestinatario.ProcessarRetornoNfeCte(retorno : TdocZipCollectionItem);
begin
  
  case retorno.Schema of
    schresNfe: { carregar resumo da NFe para manifestação }
    schprocNFe: begin
      nfe.NotasFiscais.Clear;
      nfe.LoadFromFile(retorno.XML);
      if nfe.NotasFiscais[0].NFe.dest.CNPJCPF = AMeuCNPJoucPF then
        { carregar XML completo }
    schresEvento: { resumo de evento };
    schprocEvento: { evento completo }
  end;

end;

 

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link to post
Share on other sites
  • 2 weeks later...

Prezado bigwings,

 

Deu certo em parte. Consegui carregar os xmls e tal, mas como a empresa que estava testando utilizando outro sistema pra manifestar as notas, assim estava vindo o xml completo. No entanto, quando a nf não esta manifestada, não consigo obter o xml. Precisando implementar a captura do resumo da NFe

 

 

Conseguiria me ajudar tb nisso ?

Dei uma olhada no exemplo do ACBR e não achei esse trecho.

 

 

Link to post
Share on other sites
  • Este tópico foi criado há 175 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...