Jump to content

Gabriel Franciscon

Membros
  • Content Count

    59
  • Joined

  • Last visited

Community Reputation

70 Excellent

About Gabriel Franciscon

  • Rank
    Membro
  • Birthday 10/22/1996

Contact Methods

  • Skype
    gabriel.franciscon

Profile Information

  • Sexo
    Masculino
  • Localização
     Curitiba

Recent Profile Visitors

273 profile views
  1. Infelizmente pode acontecer, existe um delay entre a SEFAZ-Autorizadora enviar a nota para o Ambiente Nacional e o mesmo disponibilizar a nota com um NSU novo. Quando você consulta uma NFe no portal nacional, observe que no grupo de eventos tem; Data autorização (data que foi enviado o evento/autorização para o órgão responsável (SEFAZ-Estado/A.N) Data inclusão A.N (data que o Ambiente Nacional recebeu a nota/evento) Como você mesmo citou que depois a nota veio com o último NSU. Da mais certeza ainda que demorou para o ambiente nacional receber e liberar. Quando o A.N recebeu a nota, foi criado um NSU e disponibilizado para o download. Ou seja, Você faz uma consulta hoje e pode ter como resultado; (difícil de acontecer, mas não impossível) NSU = 10 - Nota emitida hoje NSU = 11 Nota emitida ontem
  2. Aqui eu salvo tudo... Até mesmo pra ter todo histórico. Vai que amanhã ou depois essa nota é cancelada ou criam uma carta de correção. Dessa forma eu tenho o evento de cancelamento, com a justificativa e a CCe com a correção. Porém falando de arquivo XML em si eu gravo apenas os XML's essenciais: XML completo, CCe e cancelamento. Faço um "mestre-detalhe" nas informações. (como esse exemplo de nota que tem vários eventos)
  3. Use o método DistribuicaoDFePorUltNSU. Nele você passe o NSU = 0. Com isso, você terá como resposta os NSU's dos últimos 90 dias. Detalhe: O DistribuicaoDFePorUltNSU retorna apenas 50 NSU's por vez. Então caso tenha mais do que 50 você terá que executar mais de uma vez. E a cada execução, você passa o último NSU que você recebeu. Aí você me pergunta; como eu sei que tem mais do que 50 pra eu baixar? Simples, existe uma propriedade que consta o número máximo de NSU que tem no WebService. Então resumindo a lógica seria mais ou menos assim: iUltimoNSUGravado := GetUltimoNSUGravado; repeat ACBrNFe1.DistribuicaoDFePorUltNSU(IdEstado, aCNPJ, iUltimoNSUGravado); cStat := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat; if cStat = 138 then {Documentos encontrados} begin iMaxNSUWebService := StrToIntDef(ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.maxNSU, 0); for i := 0 to Pred(ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Count) do begin {Aqui você processa NSU por NSU. Inclusive grava o NSU no banco de dados} end; end; iUltimoNSUGravado := GetUltimoNSUGravado; until (iUltimoNSUGravado = iMaxNSUWebService);
  4. O destinatário da nota é OBRIGADO a realizar a manifestação para ter acesso ao XML completo Já a transportadora e/ou citados na tag <AutXML> recebem o XML completo logo de cara, ou seja. Não existe resumo, vai baixar o XML completo. Mesmo que o destinatário não tenha realizado nenhuma manifestação.
  5. Entrei em contato com a SEFAZ-PR e por telefone tirei 2 dúvidas a respeito ao Boletim Informativo 014/2019: Essas duvidas foram respondidas pela atendente Clarisse que por sua vez consultou um outro setor para retornar com as respostas. 1: Na nota Técnica diz que o prazo para implementação é de até 03/06/2019 porém no B.I diz que será 06/06/2019. Qual será a data correta para o PR? Resposta: Deve-se respeitar a Nota Técnica e que a SEFAZ-PR irá disponibilizar um errata corrigindo essa data. Ou seja, será 03/06/2019! 2: No B.I diz que serão implementadas validações facultativas, como mostra a citação abaixo: Esses dois grupos serão facultativos? ou a frase se refere que a Nota Técnica são facultativos porém a SEFAZ-PR irá sim validar como regra? Resposta: São grupos facultativos na nota técnica porém a SEFAZ-PR irá validar e obrigar esses dois grupos a partir de 03/06/2019.
  6. Em contato com a SEFAZ-PR a respeito desse problema a mesma confirmou que estava com problemas e foi normalizado ontem mesmo às 18h:37min Para as notas que foram rejeitadas por esse motivo, basta corrigir a data de emissão/saída e reenviar a nota.
  7. Primeiro você precisa entender como funciona todo o fluxo desse webservice. O método DistribuicaoDFePorNSU deve ser utilizado quando você já sabe o NSU. Mas imagine o exemplo: Você tem um resumo da nota com o NSU 123456. Você realiza a manifestação do destinatário em cima desse resumo O AN criará um novo NSU, agora para a nota completa. Qual será esse novo NSU? (Não tem como você saber, pois o NSU que o AN irá criar provavelmente não será um número a mais do NSU do resumo. Já que entre o resumo e a manifestação poderá ter outros resumos/notas/eventos) Para você saber qual será o NSU que o AN criou com a nota completa, você só tem 2 caminhos: DistribuicaoDFePorUltNSU (passando o último NSU que VOCÊ tem gravado no seu banco de dados) - Nesse caso você terá como retorno os NSU's que foram gerados após o NSU que você passou (podem vir resumos/notas/eventos) DistribuicaoDFePorChaveNFe - Aqui retorna TODOS os NSU's vinculado a chave de acesso em questão. Se a nota foi manifestada, você terá o NSU com a nota completa, caso contrário não terá. Leia a nota técnica Leia o tópico do Italo Veja o exemplo feito por um membro Veja o exemplo do ACBr: ...\Exemplos\ACBrDFe\ACBrNFe\DistribuicaoDFe.txt
  8. Deem uma olhada nesse post que o @Italo Jurisato Junior criou... Nele explica o funcionamento desse WebService.
  9. Sim! Independente do método utilizado, o destinatário da nota só tem acesso ao XML completo após a manifestação do destinatário.
  10. sendo simples na resposta, sim é possível. Desde que você passe o NSU da nota completa e não do resumo (que é o que está fazendo). Reafirmando ainda que para ter acesso ao XML completo é necessário realizar a manifestação do destinatário antes.
  11. Opa, boa tarde. Você está consultando um NSU de um resumo. Por isso está obtendo o XML de resumo. Primeiramente deverá realizar a manifestação do destinatário. Feito isso o Ambiente Nacional irá gerar um novo NSU, agora com o XML da nota. Ou seja, depois que você realizar a manifestação, um novo NSU será gerado. É a partir desse novo NSU que você vai obter o XML completo da nota fiscal. Eu particularmente não utilizo esse método DistribuicaoDFePorNSU pois eu preciso saber qual será o NSU que eu desejo consultar. Se eu já sei o NSU, significa que eu já tenho os dados pertinente aquele NSU. Aqui eu utilizo o método DistribuicaoDFePorUltNSU, nele é passado um NSU "base" e com o isso retorna os NSU's que foram criados depois do que você passou como base. Exemplo: se eu passar zero, retorna todos os NSU's dos últimos 90 dias. Quando eu recebo esses NSU's eu armazeno no banco de dados e a próxima consulta eu passo o último NSU que eu tenho gravado no banco de dados... Com os NSU's em mãos, realizo a manifestação do destinatário e executo o método DistribuicaoDFePorUltNSU novamente ou o método DistribuicaoDFePorChaveNFe
  12. Teoria 1: Utilizam api's pagas disponibilizadas pela SERPRO Teoria 2: Fazem um "traking" na página de consulta da SEFAZ e monta o XML. Tem um membro aqui no fórum que fez algo assim Mas como eu falei, apenas teorias... Ah, vou deixar um outro tópico aqui onde está sendo discutido isso "Como conseguem?"
  13. Atualmente eu faço isso também... Se der algum exception de conexão com o WebService eu tento novamente. Controlando o tempo de espera para tentar novamente e o quantas vezes irá tentar. Em resumo, a questão de TimeOut é "quase" nula aqui. Por padrão no aplicativo vai os seguintes parâmetros: TimeOut: 30 segundos (sim é um valor alto, mas esse WebService é complicado). Número Tentativas: 10 tentativas. Tempo de espera entre as tentativas: 5 segundos.
  14. Opa, Se você não utiliza capicom e/ou MSXML. Vá até: .../Fontes/ACBrComum/ Abra o arquivo ACBr.inc. Descomente as diretivas abaixo (retirando o ponto do início). Salve o arquivo. De um build no seu projeto. {.$DEFINE DFE_SEM_CAPICOM} {.$DEFINE DFE_SEM_MSXML}
×
×
  • Create New...