Ir para conteúdo
  • Cadastre-se

dev botao

Problemas no Método TratarRetornoEmitir - Agili.Provider


Ver Solução Respondido por Italo Giurizzato Junior,
  • Este tópico foi criado há 1041 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Boa tarde ... Estou tendo problemas quanto ao método (Line: 255 - procedure TACBrNFSeProviderAgili.TratarRetornoEmitir(Response: TNFSeEmiteResponse);) da unit Agili.Provider

Line: 306 - ANota := TACBrNFSeX(FAOwner).NotasFiscais.FindByNFSe(NumRps);
    Retornando (nil).

Arquivo Gerado para envio não possui a tag <Nfse> -> <Numero>, sendo esses dados pertencentes ao arquivo retornado do provider.

 

Line: 255 - procedure TACBrNFSeProviderAgili.TratarRetornoEmitir(Response: TNFSeEmiteResponse);

    Line: 294 - ANode := ANode.Childrens.FindAnyNs('Nfse');
    
    Line: 304 - NumRps := ObterConteudoTag(ANode.Childrens.FindAnyNs('Numero'), tcStr);   (Ex: Retorna o valor da tag <Numero> "134")

    Line: 306 - ANota := TACBrNFSeX(FAOwner).NotasFiscais.FindByNFSe(NumRps); 


Segue imagens em anexo:

Envio.png

Retorno.png

  • Membros Pro
Postado

Deixa eu voltar um pouco, no problema original.

 

926194418_Emisso-Agili.thumb.png.e89e6cd98c77387c4e1033ea4fde564f.png

 

Quanto vou emitir uma NFSe para a Agili eu chamo o Método Emitir, porem o componente nunca modifica a Nota que esta na posição zero (Items[0] que foi o RPS que eu enviei), o que ele faz é adicionar uma nova NotaFiscal, ou seja o retorno acaba indo para a posição um (item[1]) nele eu consigo ver a NFSe que foi gerada. Debugando percebi que o ACBr usa o valor da Tag Numero (que esta dentro de NFSe->Numero) para procurar na lista das NotasFicais o documento correspondente, porém não encontra pois não tem esse numero no RPS que eu enviei, o numero que tenho disponível é o numero do RPS, e por isso acaba por adicionar o retorno ao componente ficando duas notas.

 

Esse é o código que esta hoje:

1258908116_Emisso-Agili-ProcuraByNFSe.thumb.png.8f2820c1ec47526ae0157653009ef476.png

Esta procurando pelo numero da NFSe (esse valor ainda não tem no componente) e não encontrar então faz o LoadFromString e acaba inserindo mais uma nota no NotasFiscais (NotasFiscais.items[1])

 

Esse é o código modificado:

141311033_Emisso-Agili-ProcuraByRps.thumb.png.007e5a48b8a0d1e4044090663aae5063.png

Mudando esse trecho para buscar por Rps até achou a nota (não fez a loadFromString nessa parte), porém apesar de ter achado e modificado a Nota certa ainda adicionou o Retorno novamente ficando duas ao invés de uma como deveria (notasFiscais.Items[1]);

 

O problema é que eu espero enviar apenas uma nota e receber o retorno apenas desta nota, logo vou olhar para a nota no item[0] (primeira nota) e ela não vai estar confirmada, mas a segunda nota (item[1]) vai estar;

 

  • Consultores
Postado

Bom dia,

E se colocar um Clear antes do LoadFromString será que não resolveria o problema?

Com o Clear ele vai remover da lista de NotasFiscais os dados do Rps.

Acredito que não custa fazer esse teste.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Membros Pro
Postado

Bom dia, 

Fiz um comentário equivocado quanto a quando utilizamos o código modificado para buscar por Rps 

disse que (" porém apesar de ter achado e modificado a Nota certa ainda adicionou o Retorno novamente ficando duas ao invés de uma como deveria ")   

na verdade retornou apenas um item, o que está correto no decorrer do processo.

Peço desculpas pelo equívoco.

Obrigado.

 

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