Ir para conteúdo
  • Cadastre-se

felipeflptxr

Membros
  • Total de ítens

    4
  • Registro em

  • Última visita

Tudo que felipeflptxr postou

  1. @roclopescgmail Desde quarta feira venho acompanhando o fluxo das notas, o cliente em questão possui um fluxo bem pequeno de notas, desde que alterei os métodos para usar o DistribuicaoDFePorNSU como você mencionou, estamos conseguindo buscar as notas sem problemas. Coloquei abaixo os logs que gravei no banco referente as requisições que fizemos, enquanto usado DistribuicaoDFePorUltNSU(Grifado em vermelho) a primeira consulta, independente de tempo de espera, resulta sempre em consumo indevido, depois comecei a testar DistribuicaoDFePorNSU(Grifado em azul) e começou a trazer notas, posteriormente fiz alguns tratamentos para buscar de tempos em tempos(Grifado em roxo), Essas notas não possuem nenhum evento de manifestação, então, parece que realmente não tem ninguém utilizando o certificado(ou pelo menos, não estão manifestando), mesmo assim, toda consulta por DistribuicaoDFePorUltNSU resultava em consumo indevido. Por hora, muito obrigado @roclopescgmail. Obrigado @Renato Rubinho e @BigWings pelas orientações.
  2. @roclopescgmail Fiz um novo teste, dessa vez consultando por DistribuicaoDFePorNSU como você mencionou, após dias, veio uma nota. Vou adicionar alguns tratamentos para evitar o consumo indevido, mas parece que por hora, essa solução irá resolver uma parte de nossos problemas, porém, a consulta acabará ficando lenta, logo, será uma solução paliativa. Certo, irei fazer os tratamentos conforme normativas.
  3. @roclopescgmail vou procurar um exemplo de aplicação dessa consulta "DistribuicaoDFePorNSU" para fazer um teste aqui.
  4. Boa tarde! Há algumas semanas viemos enfrentando problemas com a consulta de documentos fiscais na Sefaz. Já o revisei o código atendo-me as instruções do tópico abaixo. Ao consultar, caso recebamos o primeiro lote de 50 notas e o UltNSU seja menor que o MaxNSU, aguardasse o intervalo de 30 segundos e reiniciasse a consulta. Para CTe, utilizamos a mesma estrutura desse Bloco, a qual (para CTe) está funcionando perfeitamente. As consultas são feitas pelo usuário mesmo, não deixamos o processo de forma automática (via thread ou timer), o Usuário clica em consultar e o sistema executa o bloco abaixo, assim que o sistema identifica um retorno com Status 137 ou 656, bloqueamos a consulta, reativando o botão 'Consultar' apenas 1h após o horário da última consulta que retornou um dos Status citado. Este é o bloco responsável pela consulta das notas através do UltNSU. /***************************************************************************************************************/ repeat try ACBrNFe.DistribuicaoDFePorUltNSU(UFtoCUF(FEmpresaParametroVO.EstadoCidade), PegarNumeros(FEmpresaParametroVO.CNPJ), mUltNSUNFe); except //Deixar o sistema tratar o retorno end; var mRetornoDistDFe := ACBrNFe.WebServices.DistribuicaoDFe.retDistDFeInt; mStat := mRetornoDistDFe.cStat; mMotivo := mRetornoDistDFe.xMotivo; mUltNSUNFe := mRetornoDistDFe.ultNSU; mMaxNSUNFe := mRetornoDistDFe.maxNSU; if (mStat = 138) then begin InsereDfeSefazHistorico(mStat, mMaxNSUNFe, mUltNSUNFe, '55', mMotivo); InserirAlterar(mRetornoDistDFe); Result := True; end else if (mStat = 137) then begin InsereDfeSefazHistorico(mStat, mMaxNSUNFe, mUltNSUNFe, '55', mMotivo); Informa('Não há novos documentos a serem consultados!' + cgEnterEmString + 'A SEFAZ exige que a próxima consulta seja feita somente após o intervalo de 1h de espera.'); BloqueiaBuscaSefaz(0, mStat); CarregarCadastro; Exit; end else begin InsereDfeSefazHistorico(mStat, mMaxNSUNFe, mUltNSUNFe, '55', mMotivo); var mErro := 'Falha ao realizar a consulta das notas fiscais.'; if (mStat = 656) then mErro := 'Não há novos documentos a serem consultados!'; Informa(mErro + cgEnterEmString + IntToStr(mStat) + ' - A SEFAZ bloqueará a consulta por 1h'); BloqueiaBuscaSefaz(0, mStat); CarregarCadastro; Exit; end; if (mMaxNSUNFe.ToInteger > mUltNSUNFe.ToInteger) then begin PanelStatus('Aguardando retorno da SEFAZ'); Sleep(30000); ACBrNFeStatusChange(nil); end; until mMaxNSUNFe = mUltNSUNFe; /***************************************************************************************************************/ Porém, para NFe, não estamos conseguindo chegar a uma solução. Estamos com os fontes do ACBr atualizados, conferi os novos links e já estão OK. Conferi as alterações na NT e também já procurei em diversos tópicos para ver se alguém está tendo problemas parecidos. /***************************************************************************************************************/ Agora, o problema: Estou realizando a busca(aguardados 60 minutos da consulta anterior) com o ultNSU retornado na última busca. O retorno está sempre mostrando que o maxNSU é 0 Visto que o maxNSU é o maior NSU disponível para consulta, faria sentido ser 0 caso não houvesse mais nenhum NSU para ser retornado, porém, esse cliente está a semanas sem que retorne nota alguma e cada vez mais está acontecendo este mesmo problema em outros clientes. Revisei todo o código acima apresentado, pesquisei em diversos sites(inclusive alguns tópicos aqui anexados), li as últimas NTs (mais de uma vez) tentando encontrar onde estamos pecando, mas não consegui identificar. É a primeira vez que posto algo aqui, então caso falte alguma informação para que possam me ajudar, peço desculpas e as inserirei assim que solicitada. Caso alguém tenha alguma ideia do que eu poderia estar tentando fazer para resolver o problema e também caso possam esclarecer se é melhor deixar em processo automático essa busca de documentos ou manter como fazemos hoje onde o usuário pode fazer a consulta quando precisar(respeitando os bloqueios para evitar o consumo indevido). Apenas para ilustrar, acabei de fazer uma consulta nesse exato momento.
×
×
  • 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...
The popup will be closed in 10 segundos...