Ir para conteúdo
  • Cadastre-se

dev botao

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

Estava ocorrento erro no RetornoConsultaLoteRps que algumas tags não estavam sendo preenchidas, e detectamos que nesse retorno em expecifico o XML estava diferente do previsto pelo componente, com alguns pequenos ajustes foi possivel mantar o código atual funcionando para o caso se alguma versão do webservice do provedor estar da forma prevista atualmente no ACBr e tambem conseguir ler o XML que estou recebendo do provedor na prefeitura de Cajamar - SP.

unit: GeisWeb.Provider.pas

procedure TACBrNFSeProviderGeisWeb.TratarRetornoConsultaLoteRps

como estava:

        AuxNode := ANode.Childrens.FindAnyNs('IdentificacaoNfse');

        if AuxNode <> nil then
          NumRps := ObterConteudoTag(AuxNode.Childrens.FindAnyNs('NumeroRps'), tcStr);

        ANota := TACBrNFSeX(FAOwner).NotasFiscais.FindByRps(NumRps);

como ficou:

        AuxNode := ANode.Childrens.FindAnyNs('IdentificacaoNfse');

        if AuxNode <> nil then
          NumRps := ObterConteudoTag(AuxNode.Childrens.FindAnyNs('NumeroRps'), tcStr);

        if( NumRps = '' )then
        begin
          AuxNode := ANode.Childrens.FindAnyNs('IdentificacaoRps');

          if AuxNode <> nil then
            NumRps := ObterConteudoTag(AuxNode.Childrens.FindAnyNs('NumeroRps'), tcStr);
        end;

        ANota := TACBrNFSeX(FAOwner).NotasFiscais.FindByRps(NumRps);

 

unit: GeisWeb.LerXml.pas

function TNFSeR_GeisWeb.LerXmlNfse

como estava:

    LerIdentificacaoNfse(ANode);

    DataEmissao := ObterConteudo(ANode.Childrens.FindAnyNs('DataEmissao'), tcDatVcto);

como ficou:

    LerIdentificacaoNfse(ANode);
    LerIdentificacaoRps(ANode);

    DataEmissao := ObterConteudo(ANode.Childrens.FindAnyNs('DataEmissao'), tcDatVcto);

procedure TNFSeR_GeisWeb.LerIdentificacaoNfse

como estava:

      Numero := ObterConteudo(AuxNode.Childrens.FindAnyNs('Numero'), tcStr);
      CodigoVerificacao := ObterConteudo(AuxNode.Childrens.FindAnyNs('CodigoVerificacao'), tcStr);

como ficou:

      Numero := ObterConteudo(AuxNode.Childrens.FindAnyNs('Numero'), tcStr);

      if( Numero = '' )then
        Numero := ObterConteudo(AuxNode.Childrens.FindAnyNs('NumeroNfse'), tcStr);

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

XML recebido na consulta:

<ConsultaLoteRpsResposta>
  <Rps>
    <IdentificacaoRps>
      <NumeroRps>12</NumeroRps>
    </IdentificacaoRps>
    <IdentificacaoNfse>
      <NumeroNfse>254</NumeroNfse>
      <CodigoVerificacao>NDMCFPVJKR</CodigoVerificacao>
    </IdentificacaoNfse>
    <DataEmissao>21/03/2023</DataEmissao>
    ...
  </Rps>
</ConsultaLoteRpsResposta>

 

NFSeX GeisWeb.rar

  • Consultores
Postado

Obrigado pela contribuição, em breve será validada para possível inclusão ao svn #TK-3755

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Consultores
Postado

A princípio sua contribuição me parece estar OK.

XML recebido na consulta:

<ConsultaLoteRpsResposta> 
  <Rps> 
    <IdentificacaoRps> 
      <NumeroRps>12</NumeroRps> 
    </IdentificacaoRps> 
    <IdentificacaoNfse> 
      <NumeroNfse>254</NumeroNfse> 
      <CodigoVerificacao>NDMCFPVJKR</CodigoVerificacao> 
    </IdentificacaoNfse> 
    <DataEmissao>21/03/2023</DataEmissao> 
    ... 
  </Rps> 
</ConsultaLoteRpsResposta>

Nós temos em nossa pasta de Schemas um arquivo retorno_consulta_nfse_sucesso_erro.xsd e estrutura dele está diferente do XML que você recebeu.

Por favor, sabe informar se houve atualização de schema?

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Consultores
  • Solution
Postado

Primeiramente, muito obrigado pela contribuição.

Toda colaboração sempre será mais do que bem vinda.

Conforme mencionado acima, após análise, sua contribuição me pareceu estar correta, por isso a mesma foi enviada ao SVN na Rev-28918.

Por favor, queira atualizar seus fontes, reinstalar o ACBr para poder realizar novos testes e reportar qualquer problema.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Membros Pro
Postado

Bom dia

Não sei informar se houve alguma alteração no Schema, só sei dizer que pelo que li no forum sobre o provedor da GeisWeb é que pode ocorrer de existir versões diferentes dele em cada cidade.

Realizado teste com a revisão e está funcionando.

  • Curtir 1
  • Consultores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

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

The popup will be closed in 10 segundos...