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.