Ir para conteúdo
  • Cadastre-se

dev botao

Correção na leitura de retorno NFSe


Vaine
  • Este tópico foi criado há 2923 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Bom dia,

Segue unit ACBrNFSeWebServices.pas. Alterei o método ExtrairNotasRetorno, pois só estava atualizando a primeira nota que vinha no lote de retorno. Só consegui testar com o método ConsultarLoteRPS (TNFSeConsultarLoteRPS.TratarResposta), os outros que utilizam esta rotina não estou usando ainda. Meu provedor é Ginfes e a cidade é São José do Rio Preto.

Att.

Viviane

ACBrNFSeWebServices.zip

Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...

Estou com este problema para salvar várias notas do provedor de Curitiba (ISSCuritiba).

Exemplo: tenho um lote com várias RPS ele faz o envio normalmente, mas o retorno salva no diretório de notas apenas a primeira NFSe enviada com os dados de todas as outras, se faço a consulta de situação de rps ele salva novamente a nota corretamente.

unit ACBrNFSeWebServices.pas -> ExtrairNotasRetorno

Alguém também esta passando por este problema?

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Rubens,

Detectei esse problema nos meus testes com o provedor Ginfes.

Correções já foram feitas, exatamente na procedure ExtrairNotasRetorno.

Favor atualizar os seus fontes e realizar novos testes.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

7 horas atrás, Italo Jurisato Junior disse:

Bom dia Rubens,

Detectei esse problema nos meus testes com o provedor Ginfes.

Correções já foram feitas, exatamente na procedure ExtrairNotasRetorno.

Favor atualizar os seus fontes e realizar novos testes.

Olá Italo,

Antes de mais nada, obrigado pela atenção.

O problema ainda continua para o ISSCuritiba, na verdade nem é no ExtrairNotasRetorno e sim em FRetornoNFSe.LerXml que esta dentro desta rotina, o arquivo de retorno esta retornando uma chave = tcCompNfse que deveria ser verificada (acredito) no While da rotina com este código abaixo:

...

      while (Leitor.rExtrai(Nivel, 'CompNfse', '', i + 1) <> '') or
            (Leitor.rExtrai(Nivel, 'ComplNfse', '', i + 1) <> '') or

            ((Provedor in [proActcon]) and (Leitor.rExtrai(Nivel + 1, 'Nfse', '', i + 1) <> '')) do

...

Não tive tempo de ver detalhadamente, coloquei a chave (tcCompNfse) neste while e salvou o registro de NFSe porém na primeira ele ainda agrupou as 2 que eu havia inserido no lote (se mandar 3, 4 ou mais notas num lote ele sempre agrupa no XML da primeira quando salva).

Estarei vendo com mais calma, anexei também o retorno da rotina LerXml se outros tiverem um problema parecido para trocarmos informações.

Att,

16927-nfse.xml

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Rubens,

Favor atualizar os fontes e testar novamente.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Bom dia Italo,

Gera agora um registro para cada NFSe, porém a primeira nota guarda o XML de todas as notas do lote todo, as outras são salvas corretamente, utilizei a procedure do componente acbr: ConsultarNFSeporRps e ele corrige o arquivo salvo de nota, porém não é o ideal.

Fontes do ACBR com a revisão 10928 de 21/01

Abs,

 

 

 

Link para o comentário
Compartilhar em outros sites

Boa tarde Italo e aos amigos,

Estava com problemas para o provedor ISSCuritiba mas resolvi da seguinte maneira:

Na unit pnfsLerListaNFSe.pas onde se lê o seguinte WHILE da função LerXML:

while (Leitor.rExtrai(Nivel, 'CompNfse', '', i + 1) <> '') or
      (Leitor.rExtrai(Nivel, 'ComplNfse', '', i + 1) <> '') or
      (Leitor.rExtrai(Nivel, 'tcCompNfse', '', i + 1) <> '') or
      ((Provedor in [proActcon]) and (Leitor.rExtrai(Nivel + 1, 'Nfse', '', i + 1) <> '')) do

precisa trocar por

while (Leitor.rExtrai(Nivel, 'tcCompNfse', '', i + 1) <> '') or
      (Leitor.rExtrai(Nivel, 'CompNfse', '', i + 1) <> '') or
      (Leitor.rExtrai(Nivel, 'ComplNfse', '', i + 1) <> '') or
      ((Provedor in [proActcon]) and (Leitor.rExtrai(Nivel + 1, 'Nfse', '', i + 1) <> '')) do

 

Basta colocar a tag por primeiro quer irá salvar normalmente.

Att,

Link para o comentário
Compartilhar em outros sites

  • 2 meses depois ...

Estou tendo problema com o retorno do XML após o envio de nota para a prefeitura de curitiba.

Não efetuo o envio de lote de notas, sempre uma por vez.

1) Nfse.Enviar .... ok a nota vai certinho para a prefeitura.

2) sXMLGerado := NFSe.NotasFiscais.Items[0].XMLNFSe; //para obter o xml da nota gerada - ok

3) quando leio o conteudo retornado para armazenar no meu sistema, verifico que o xml retornado esta incompleto: 

4) XMLDocument1.LoadFromXML(sXMLGerado); Neste passo ocorre um erro:

'A marca de fim' ComplNfse' não coincide com a marca de início 'CompNfse'.

Observei realmente que a tag CompNfse esta sobrando.

A tag <CompNfse> aparentemente perdida que não é fechada no arquivo xml retornado:

<ComplNfse xmlns="http://www.e-governeapps2.com.br/nfse.xsd">
    <CompNfse>
        <Nfse>
            <InfNfse>
                <Numero>3735</Numero>
                <CodigoVerificacao>PC5MA303</CodigoVerificacao>
                <DataEmissao>2016-04-01T00:00:00</DataEmissao>
...

            </InfNfse>
        </Nfse>
    </ComplNfse>

Fontes atualizados em 05/04/2016.

Alguém com problema similar?

 

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Sandro,

Favor configurar o componente para salvar os arquivos Soap.

Faça novos testes, e anexe o XML soap de retorno ( *-lista-nfse-soap.xml ) para que possamos analisar o problema.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...

Boa tarde Italo e Sandro,

Este problema realmente esta acontecendo para o provedor issCuritiba, mas esta devido a função RetirarPrefixos no arquivo: pnfsConversao.pas

Na linha 17968 mais precisamente, o componente extrai de uma tag chamada tcCompNfse o inicio dela ficando CompNfse duas vezes no texto, o que causa o problema. Esta rotina é para atender o provedor Governa mas afeta o issCuritiba.

Apenas comentei esta linha para testar e vi que salvou corretamente o XML, o  ideal aqui seria passar o provedor e comparar se deve ou não retirar o prefixo, mas não quis mudar os parâmetros da função, achei melhor deixar isto para os mantenedores.

Abs,

 

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Rubens,

Muito obrigado pela colaboração, favor atualizar os fontes e realizar novos testes.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

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