Ir para conteúdo
  • Cadastre-se

dev botao

ACBrNFSeX - Equiplano - TratarRetornoConsultaNFSeporRps - Problema com possível correção


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

Recommended Posts

Postado (editado)

Ola!

 

Simulação:

 

- Alimento o componente

- LACBrNFSeX.Emitir(IntToStr(ALote));

- LACBrNFSeX.NotasFiscais.Items[0].GravarXML(ExtractFileName(LCaminhoSalvar), ExtractFilePath(LCaminhoSalvar));

- retorno do provedor: 1604 - Esse lote está aguardando processamento.

- Descarrego a nota do componente (fecho o sistema)

- LACBrNFSeX.NotasFiscais.LoadFromFile(LCaminho);

- LACBrNFSeX.ConsultarNFSeporRps(IntToStr(ALote), ASerie, '', '');

- LACBrNFSeX.NotasFiscais.Items[0].GravarXML(ExtractFileName(LCaminho), ExtractFilePath(LCaminho));

 

Problema:

Neste momento (salvar o xml) salva o XML da resposta da ConsultaNFSePorRPS, quando deveria montar o xml da NFSe (equiplano não retorna a nota), verificando o codigo encontrei onde deveria montar, porem só considera o XML do RPS assinado, que não é o que está acontecendo.

 

No meu ponto de vista a correção tem de ser esta (Equiplano.Provider.pas):

image.png.9491116787f85a7507f0568020a809ce.png

 

Anexo possível correção

 

Possível pois não tenho certeza deste ponto, pois no próprio Equiplano.Provider no "Configuracao" está setando True para assinar o LoteRps, talvez minha visão esteja equivocada e o problema está no gravar o xml, debugando não consegui identificar o ponto onde deveria ter assinado ou não o LoteRps.

 

 

 

Equiplano.Provider.pas

Editado por -=Ma®©oS=-
adicionado informações

-=Ma®©oS=-

Postado
36 minutos atrás, Italo Giurizzato Junior disse:

Boa tarde Marcos,

Já esta no SVN.

Boa Tarde Italo!

 

Acabei de atualizar os fontes e reinstalar, houve alguma outra alteração que impactou.

O ANota.XmlRps está igual ao ANota.XmlNfse.

 

debug no delphi:

image.thumb.png.1c80a336a5729c9afd21e16322b2d137.png

 

XML Antes (esquerda) e agora (direita)

image.thumb.png.4f457e524a3062ed60ce6b135418adfa.png

-=Ma®©oS=-

Postado

Suspeito que o problema esteja aqui:

 

image.thumb.png.e0c8101e40e006ada4b83f874ca3011d.png

 

- Como pode ver no "LerXML" está sempre considerando que leu o XML da NFSe, mas pode ter lido o XML do RPS (ConsultaNFSePorRPS vai ler o xml do rps e não da nfse, até por que não tem ele ainda)

- No "GravarXML" sempre está gravando o FXmlRps, ou seja, nunca grava a NFSe.

 

Este impacto foi da alteração que acabou mudando os nomes das propriedades

 

-=Ma®©oS=-

Postado (editado)
9 minutos atrás, Italo Giurizzato Junior disse:

Marcos,

Ao carregar o XML, você esta mandando gerar novamente o XML, correto?

Experimente apenas carregar o XML.

Acabei de testar..

mesmo resultado:

 

image.png.375ea3c345c07c4c42104e07687d3857.png

Editado por -=Ma®©oS=-
imagem incorreta

-=Ma®©oS=-

Postado
14 minutos atrás, Italo Giurizzato Junior disse:

Bom dia Marcos,

Se eu entendi você primeiro esta carregando o XML do RPS e depois esta Consultando, correto?

Se não carregar o que ocorre?

Bom dia!

 

Se não carrego o XML do RPS ai ocorre "Argument out of range" quando vai obter a nota para gravar:

function TNotasFiscais.GetItem(Index: integer): TNotaFiscal;
begin
  Result := TNotaFiscal(inherited Items[Index]); <---AQUI
end;

P.S. Parâmetro para gerar o XML está ativo.

-=Ma®©oS=-

  • Consultores
Postado

Marcos,

Atualiza os fontes, reinstala o ACBr.

1. Carrega o XML do Rps;

2. Execute o Consultar;

Eu acredito que a alteração que fiz agora o componente vai saber se o XML lido é Rps ou NFS-e e portanto usar a propriedade correta.

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

Postado

Italo

Infelizmente não funcionou, a sua alteração (no LerXml) foi mais ou menos como havia pensado em fazer aqui, porem faltou aqui:

 

unit ACBrNFSeXNotasFiscais

 

function TNotaFiscal.GravarXML(const NomeArquivo: String; const PathArquivo: String): Boolean;
begin
  if EstaVazio(FXmlRps) then
    GerarXML;

  FNomeArqRps := CalcularNomeArquivoCompleto(NomeArquivo, PathArquivo);
  Result := TACBrNFSeX(FACBrNFSe).Gravar(FNomeArqRps, FXmlRps); <-- aqui considera o XML do RPS para salvar, o FXmlNfse está com o XML da NFSe corretamente
end;

 

-=Ma®©oS=-

Postado
9 minutos atrás, Italo Giurizzato Junior disse:

Marcos,

Verifica se a consulta já não esta salvando o XML da NFS-e.

Se sim, você não precisa usar o método GravarXML.

 

Sim, salvando direto pela ConsultaNFSePorRPS grava corretamente, pois lá na procedure TACBrNFSeXProvider.SalvarXmlNfse(aNota: TNotaFiscal) grava usando aNota.XmlNfse, ou seja, o xml da NFSe em si. coisa que no GravarXML não faz.

 

Porem aqui por questões internas o caminho, nome do arquivo e configurações são dependentes de alguns fatores, por isso utilizamos o GravarXML.

-=Ma®©oS=-

  • 2 semanas depois ...
Postado
Em 09/03/2022 at 15:02, Italo Giurizzato Junior disse:

Boa tarde Marcos,

Chegou a atualizar os fontes?

Se sim, notou que agora o método GravarXml possui um parâmetro para você indicar o que vai ser gravado?

Bom dia!

 

Vi sim, só não tive tempo para testar ainda (em um teste de 5 minutos parece estar ok), está meio corrido aqui

Estava focado alterações para equiplano, agora surgiu uma para IPM mas solicitei a documentação ao suporte deles, tem um campo "novo" que não tem no ACBrNFSe nem no ACBrNFSeX, mas para justificar pedi a documentação, mas isto é outra thread

-=Ma®©oS=-

  • Este tópico foi criado há 977 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.