Ir para conteúdo
  • Cadastre-se

dev botao

Melhorias no tratamento da leitura XML do provedor IPM


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

Recommended Posts

Postado

Boa tarde.

Fiz algumas alterações na leitura do xml para o provedor IPM.

1 - Eles tem um erro na documentação e na implementação também, ele dizem que os itens retornaram na chave lista (pela documentação), mas na resposta da emissão está voltando na chave item. Mas, se baixarmos a nota via site, ele volta na chave lista. Entrei em contato com eles, me informaram que a documentação está errada, e o correto é voltar na chave item. Então alterei a unit IPM.LerXml para tratar as 2 opções.

Onde era assim:

      ANodes := AuxNode.Childrens.FindAllAnyNs('lista');
Coloquei assim:

      ANodes := AuxNode.Childrens.FindAllAnyNs('lista');
      if Length(ANodes) = 0 then
      begin
        ANodes := AuxNode.Childrens.FindAllAnyNs('item');
      end;
 

2 - A leitura do código de verificação também estava errado, e também não estava lendo o link da nota fiscal

Onde estava assim:

      CodigoVerificacao := ProcessarConteudo(AuxNode.Childrens.FindAnyNs('codigo_autenticidade'), tcStr);

Coloquei assim:

      CodigoVerificacao := ProcessarConteudo(AuxNode.Childrens.FindAnyNs('codigo_autenticidade'), tcStr);
      if Trim(CodigoVerificacao) = '' then
      begin
        CodigoVerificacao := ProcessarConteudo(AuxNode.Childrens.FindAnyNs('cod_verificador_autenticidade'), tcStr);
      end;
      Link := ProcessarConteudo(AuxNode.Childrens.FindAnyNs('link_nfse'), tcStr);
 

 

 

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

Boa tarde Eliandro,

Você poderia anexar as units alteradas para que possamos analisar a sua contribuição?

Desde já muito obrigado.

Boa tarde.

Segue anexo.

Ainda pretendo fazer um tratamento na leitura dos arquivos retornados (não fiz ainda por falta de tempo), pois para que eu consiga carregar um XML corretamente (para impressão da nota a partir do XML), estou tendo que colocar as chaves <retorno> no início e final do arquivo.

Assim

      ACBrNFSeX.NotasFiscais.LoadFromString(XML);
      if (ACBrNFSeX.NotasFiscais.Count > 0) and (ACBrNFSeX.NotasFiscais.Items[0].NFSe.Numero = '') and
        (ACBrNFSeX.Configuracoes.Geral.Provedor in [proIPM]) and (Copy(XML,1,6)='<nfse>') then
      begin
        XML:='<retorno>'+XML+'</retorno>';
        ACBrNFSeX.NotasFiscais.Clear;
        ACBrNFSeX.NotasFiscais.LoadFromString(XML);
      end;
 

Claro.

 

IPM.LerXml.pas

  • Este tópico foi criado há 1100 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.