UltraPDV - Tratamento de timeout no envio de NF-e

De UltramaxWiki
Ir para navegação Ir para pesquisar

Introdução

Tratamento para casos de timeout em tentativa de emissão de NF-e para a SEFAZ. Este tratamento existe para prevenir que notas fiquem presas ou causem erro de duplicidade.

Como funciona

O tratamento ocorre na tela "Emissão de Nota Fiscal - Solicitada", existente no UltraPDV e no UltraAdm.

Somente quando ocorre timeout, ou seja, quando o prazo limite para espera do arquivo de resposta estoura, o número que foi usado na tentativa de emissão é salvo como pendente na base de dados.

Nesse caso o sistema dá a mensagem abaixo:

Msgtimeout2.png

Quando o usuário tenta novamente enviar essa nota, o sistema detecta o número pendente e tenta corrigir o problema, procurando e então utilizando o XML.

Caso entre o XML é feita uma consulta.

Se for retornado status 100 (sucesso), o sistema atualiza a Nota Fiscal, exibe mensagem com o caminho do arquivo e o PDF da Nota Fiscal.

Caso a consulta retorne erro ou o XML não seja encontrado, o sistema dá a mensagem abaixo, sugere inutilização do número, exclui o número pendente e abre a tela de nota fiscal para o cliente.

MsgInutilizar.png

Se for encontrado o XML mas novamente der problema de timeout quando o sistema tentar fazer a consulta, é exibida a mensagem abaixo e nada acontece, para que o usuário tente novamente mais tarde:

Msgtimeout3.png

No tratamento, quando é consultado e está OK o XML, dados de devolução total ou parcial, ou cancelamento , são atualizados nesse momento. Nos outros casos a nota não é considerada enviada.

Se o usuário tentar cancelar essa nota com numeração pendente o sistema o obriga a clicar em emitir primeiro para que aconteça o tratamento. Caso esteja OK na SEFAZ, não será possível o cancelamento. É exibida a seguinte mensagem:

MsgCancelar.png

Caso o usuário tenha uma nota com esse número pendente e emita outra nota, esse número continua reservado para a nota original, é usado um novo número da sequência.