DIEGO J B PIRES 8 Posted August 20, 2020 Report Share Posted August 20, 2020 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
Solution Juliomar Marchetti 3,845 Posted August 20, 2020 Solution Report Share Posted August 20, 2020 Sim. veja no exemplo tem no retorno Juliomar Marchetti Ajude o Projeto ACBr crescer - Assine o SAC skype: juliomar telegram: juliomar http://www.juliomarmarchetti.com.br Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Link to post Share on other sites
DIEGO J B PIRES 8 Posted August 20, 2020 Author Report Share Posted August 20, 2020 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
Juliomar Marchetti 3,845 Posted August 21, 2020 Report Share Posted August 21, 2020 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 Juliomar Marchetti Ajude o Projeto ACBr crescer - Assine o SAC skype: juliomar telegram: juliomar http://www.juliomarmarchetti.com.br Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Link to post Share on other sites
BigWings 3,984 Posted August 21, 2020 Report Share Posted August 21, 2020 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. BigWingsAjude o Projeto ACBr crescer - Assine o SAC Link to post Share on other sites
DIEGO J B PIRES 8 Posted August 27, 2020 Author Report Share Posted August 27, 2020 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
BigWings 3,984 Posted August 27, 2020 Report Share Posted August 27, 2020 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; BigWingsAjude o Projeto ACBr crescer - Assine o SAC Link to post Share on other sites
DIEGO J B PIRES 8 Posted September 8, 2020 Author Report Share Posted September 8, 2020 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
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now