Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

  • Membros Pro
Postado

Ola amigos

Estou tendo um problemao em alguns clientes a respeito de processamento de notas fiscais. O problema é o seguinte: O usuario faz a venda normalmente, o sistema gera o txt e o acbr pega a informacao e envia... Neste momento a internet do cliente cai e o acbr da uma resposta de nao conseguiu receber dados da sefaz... mas quando a internet do cliente volta a nota ja foi autorizada la.. mas o sistema REJEITOU no cliente. Como os amigos estao procedendo para autorizar notas fiscais ... para evitar este tipo de problema?

obrigado

  • Moderadores
Postado

Jeferson, considerando que caiu a conexão, penso que o melhor é vc orientar o operador a consultar esta nota logo que a conexão seja estabilizada novamente. Nesta consulta vc deve enviar o xml junto, pois se ela esta autorizada o protocolo de autorização é adicionado no xml, permitindo a impressão do DANFE com a autorização.

Pergunto: Você está tratando o retorno 105? (Quando fica em processamento)

Este é um detalhe importante, pois as vezes o processamento na SEFAZ fica um pouco comprometido, aumentando o tempo de resposta, com isto algumas notas pode ficar em processamento. Caso seja esta a situação, você deverá ao receber este retorno, colocar uma opção para o operador continuar consultando entre um período de pelo menos uns 15 segundos entre cada consulta ou sair do processo e consultar mais tarde.


logoacbr.pngConheça o Portal do Projeto ACBr

Ajude o Projeto ACBr crescer - Assine o SAC ACBr
Assine um dos planos de longa duração do SAC ACBr, obtenha Descontos Especiais, Parcele no Cartão e ainda ganhe Brindes Exclusivos. Saiba mais aqui

Conheça o ACBrLib, o ACBr de forma nativa para qualquer linguagem de programação. Saiba mais aqui

 

 

 

 

  • Moderadores
Postado

Boa tarde Walter.

Seguinte eu uso como monitor e a linguagem de programação é Visual Objects , então creio que não ajudaria muito colocar o trecho do sistema devido a diferença da linguagem. Caso você está usando como componente no Delphi não terei como te ajudar, a não ser compartilhando o procedimento.

Como uso o monitor eu leio o arquivo SAINFE.TXT, procuro pela informação "[RETORNO", ao encontra-lo procuro por "cStat" que esta logo a seguir, com a informação que desejo.

Então faço o tratamento desta informação

Se cCodigoStatus="100" (Sei que foi autorizado) (obs.: cCodigoStatus é uma variavel minha aonde coleto o "cStat" )

Se cCodigoStatus="105" (Sei que ficou em processamento, então mando para um while (fica repetindo) a consulta enviando o XML, enquanto o operador não cancelar ou o retorno for diferente de "105" (em um intervalo de uns 15 segundos entre as consultas).

Ao ter o retorno diferente de "105" continua o processo, se for 100 ele vai sair por autorizado, ou continuo nos if's vendo se foi denegado, ou se o serviço foi paralizado a curto tempo 108 ou sem previsao 109, não sendo nenhum dos previstos então mostra na tela o retorno completo para que o operador tome a decisão.

No banco de dados, tenho uma coluna status aonde gravo esta informação de todas elas, então caso o operador tenha desistido de ficar consultando a nota vai estar lá o retorno 105, é fácil saber que aquela nota ficou em processamento e deve ser consultada na SEFAZ, consultando e caso esteja liberada o status ficara registrado como 100 (autorizada).

Não sei se consegui explicar, mas caso tenha ficado alguma dúvida e eu puder ajudar, fique a vontade para perguntar.


logoacbr.pngConheça o Portal do Projeto ACBr

Ajude o Projeto ACBr crescer - Assine o SAC ACBr
Assine um dos planos de longa duração do SAC ACBr, obtenha Descontos Especiais, Parcele no Cartão e ainda ganhe Brindes Exclusivos. Saiba mais aqui

Conheça o ACBrLib, o ACBr de forma nativa para qualquer linguagem de programação. Saiba mais aqui

 

 

 

 

  • Membros Pro
Postado

Poxa Kiko Fernandes.. sua ideia é muito boa... eu havia pensado em colocar um botao para o cara mandar uma consulta do xml para a sefaz ae ele poderia ir consultando até ele ter a informacao de rejeicao realmente ou autorizacao... mas da forma que vc fez ficou legal pois vc trabalha com os codigos.

Gostaria de saber se ha uma forma de testar este procedimento, tipo... provocar o problema...

Outra duvida, o erro pode vir NAO DO PORTAL DO GOVERNO e sim do proprio acbr! Ou seja... se eu envio a nota mas a internet cai qual seria o retorno que o ACBR daria? Seria o mesmo 105 ?

Valeu amigo

Postado

Boa tarde,

Kiko, abrigado pelas informações !!!

nao sei se alguem q utiliza D7, acbr pode ajudar , meu codigo fica assim :

fmMenu.ACBrNFe1.WebServices.Envia(sqlNFNUMERONF.AsInteger);

if fmMenu.ACBrNFe1.WebServices.Retorno.cStat = 105 then // Lote em processamento

repeat

Application.MessageBox('Envio da NFE - Lote em processamento.' +#13 + 'Aguarde 5 minutos e Clique em OK !!!', 'RW Consutoria', MB_OK);

fmMenu.ACBrNFe1.WebServices.Retorno.Recibo := fmMenu.ACBrNFe1.WebServices.Enviar.Recibo;

until fmMenu.ACBrNFe1.WebServices.Retorno.Executar;

X:= fmMenu.ACBrNFe1.WebServices.Consulta.cStat;

vRecibo:= fmMenu.ACBrNFe1.WebServices.Retorno.Recibo;

vProtocolo:= fmMenu.ACBrNFe1.WebServices.Retorno.Protocolo;

vChave:= fmMenu.ACBrNFe1.WebServices.Retorno.ChaveNFe;

  • Moderadores
Postado

[ Por: jeferson.procopio - 26/07/2011 - 15:25 ]

1 - Gostaria de saber se ha uma forma de testar este procedimento, tipo... provocar o problema...

2 - Outra duvida, o erro pode vir NAO DO PORTAL DO GOVERNO e sim do proprio acbr! Ou seja... se eu envio a nota mas a internet cai qual seria o retorno que o ACBR daria? Seria o mesmo 105 ?

R1- Jeferson este retorno do 105, pelo que eu sei não tem condições de simular, mas se você usa o monitor, vc pode alterar no arquivo de retorno SAINFE.TXT o cStat para 105, forçando assim a execução da rotina para testar o seu sistema.

R2- Não o retorno 105 é recebido da SEFAZ e se o lote ou a nota ficar em processamento.

Como eu havia comentado, passando pelos if's não caindo em nenhuma das opções de tratamento então eu mostro na tela o retorno do ACBrNFeMonitor, ou seja mesmo que ele retorne digamos apenas "ERRO: " ou outra mensagem eu coloco na tela para que o operador veja e tome uma decisão. Logo vazio não pode retornar, se não obtive retorno o suspeito é a conexão, então vc pode avisar o operador e perguntar se ele deseja fazer o teste de conexão ou então você pode direcionar o sistema a fazer o teste sem consulta-lo e terá o retorno 107 se tudo estiver bem, 108 se paralisado momentaneamente, 109 paralisado sem previsão ou

WebService Consulta Status serviço:

- Inativo ou Inoperante tente novamente.

- O nome ou o endereço do servidor não pôde ser resolvido...

caso tenha problema com a conexão.

Como a nota não foi tratada ainda para o operador (pode ser que como no teu exemplo foi bem no momento de retornar o 100 e até já esteja autorizada na SEFAZ, mas no XML vc não tem o protocolo ainda e nem emitiu o DANFE) então aconselho você criar um campo status para que o operador saiba que esta nota esta "pendente" de uma consulta ou seja não foi autorizada ainda, para que ele faça assim que o serviço ou a estabilidade da conexão retorne.


logoacbr.pngConheça o Portal do Projeto ACBr

Ajude o Projeto ACBr crescer - Assine o SAC ACBr
Assine um dos planos de longa duração do SAC ACBr, obtenha Descontos Especiais, Parcele no Cartão e ainda ganhe Brindes Exclusivos. Saiba mais aqui

Conheça o ACBrLib, o ACBr de forma nativa para qualquer linguagem de programação. Saiba mais aqui

 

 

 

 

  • Membros Pro
Postado

Entao kiko posso fazer assim ... para testar

Faço uma venda e desligo minha internet na hora... para ver qual o conteudo do arquivo de retorno (Sainfe) para poder tratar este retorno especifico de queda de Sinal da net.

pq dae... se eu tenho o conteudo correto do arquivo de retorno eu posso tratar fazendo os testes de conexao e depois o teste de consulta do status da nota... podendo entao obter a autorizacao ou rejeicao dela!

Localizei no manual todos os codigos de retorno e agora ficou super facil de compreender e criar esta rotina

gostaria de agradece-lo pela ajuda e as ideias.. foram de extrema importancia pois este problema esta me causando até revezes financeiros, pois ha clientes que emitem a mesma nota 2x e depois quer me cobrar o imposto...

obrigado

  • Moderadores
Postado

Localizei no manual todos os codigos de retorno e agora ficou super facil de compreender e criar esta rotina

Jefferson você não precisa tratar todos eles, apenas do 100 ao 110 (tabela 5.1.1 pág. 67) é suficiente para vc tomar estas decisões, que é como foi comentando por exemplo se retorna o 105 ou se esta inativo ou inoperante ou vazio etc.

No restante, ou seja não sendo um deles você mostra na tela o próprio retorno do ACBr, por exemplo na sua rotina você não sabe que erro retornou mas mostrará para o operador (pode ainda ativar o log do ACBrNFeMonitor ou criar um seu com a mensagem de retorno) e terá a certeza que a nota não foi autorizada.

Retornando 100, ela esta na SEFAZ!


logoacbr.pngConheça o Portal do Projeto ACBr

Ajude o Projeto ACBr crescer - Assine o SAC ACBr
Assine um dos planos de longa duração do SAC ACBr, obtenha Descontos Especiais, Parcele no Cartão e ainda ganhe Brindes Exclusivos. Saiba mais aqui

Conheça o ACBrLib, o ACBr de forma nativa para qualquer linguagem de programação. Saiba mais aqui

 

 

 

 

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