Ir para conteúdo
  • Cadastre-se

dev botao

CTe-OS: Existe CT-e ja autorizado com a mesma serie e numero


Ver Solução Respondido por Italo Giurizzato Junior,
  • Este tópico foi criado há 2467 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Prezados, bom dia!

Implementei o envio de CTe-OS no meu sistema com os mesmos métodos da ACBr e estou obtendo a mensagem abaixo quando tento enviar o CT mais de uma vez, por exemplo se eu tento enviar o CT mas da algum erro no meu computador ou na minha internet e eu não consigo obter o retorno de autorização, eu gostaria de tentar enviar novamente e se vier o cStat de rejeição por já existir (imagem abaixo), eu não apresentar a mensagem para o usuário e tratar o CT como autorizado, atualizando dos dados de autorização no meu sistema e imprimindo o mesmo... mas esta mensagem aparece antes mesmo de eu conseguir fazer qualquer verificação.

Antes sabe como eu consigo tratar o retorno antes da mensagem aparecer sem ter que mexer nos fontes do ACBr?

image.png.26b5307dba3fb063b760a3b2ebb3ce92.png

  • Consultores
  • Solution
Postado

Bom dia Luciano,

Você esta fazendo errado, o correto não é tentar enviar novamente, pois você não sabe se o problema ocorreu no envio ou no retorno do protocolo.

Sendo assim, após detectar que ocorreu um problema e o CT-e OS enviado esta sem o protocolo de autorização, o correto é realizar uma consulta, se o CT-e OS foi enviado com sucesso ao realizar a consulta será retornado o protocolo de autorização (lembre-se carregar o componente com o dados do CT-e OS em questão antes da consulta) e o XML será atualizado.

Caso o problema foi no envio, será retornado a mensagem que o CT-e OS não consta na base de dados, ai sim você envia novamente.

  • Obrigado 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Consultores
Postado

Luciano,

Eu não faria isso.

Se utilize da consulta quando algo der errado, ou seja, enviou e o XML ficou sem o protocolo de autorização, ai sim devemos realizar uma consulta.

Lembre-se que ao enviar pode ocorre falha no envio ou falha no retorno.

Se ocorreu uma falha, para saber se foi no envio ou no retorno, basta se utilizar do método consultar.

Se não ocorreu nenhuma falha, o CT-e OS poderá ser Autorizados, Denegado ou Rejeitado.

Se ele for Rejeitado devemos efetuar as devidas correções nos dados incorretos e enviar novamente, uma vez que um documento rejeitado não é armazenado na base de dados da SEFAZ.

Simplifique a vida do usuário, coloque apenas um botão [Emitir] que faça tudo, ou seja, alimente o componente com os dados do CT-e OS, gere, assina, valida, envia e imprima o DACTE (caso autorizado ou denegado).

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado
2 minutos atrás, Italo Jurisato Junior disse:

Simplifique a vida do usuário, coloque apenas um botão [Emitir] que faça tudo, ou seja, alimente o componente com os dados do CT-e OS, gere, assina, valida, envia e imprima o DACTE (caso autorizado ou denegado).

Foi isso que eu fiz, ao clicar no botão liberar [Emitir] o sistema faz isso tudo e quando receber o retorno autorizado ele atualiza os dados no banco de dados e libera o DACTE para impressão.. o problema é que se no procedimento da emissão acontece algum erro, de internet por exemplo, o CTe não é liberado e os dados não são atualizados e quando eu tento liberá-lo novamente já retorna a mensagem de que já existe o CT-e.

No cenário que eu entendi da sua primeira resposta eu teria que orientar o usuário a liberar o CTe e se retornasse a mensagem de já existente, então fizesse a consulta, correto?

Então pensando em tirar isso das mãos do usuário, eu pensei em sempre consultar o CTe antes do envio, assim, se o retorno for de CTe inexistente, eu posso simplesmente enviá-lo e se o retorno for de autorizado, eu já terei os dados que preciso para alimentar o sistema e liberar o CT-e para impressão.

  • Consultores
Postado

Luciano,

Não faça isso, esta errado.

Nunca consulte antes de enviar, simplesmente envia.

Se após o envio você obter o Status igual a zero, significa que o CT-e OS não foi autorizado, não foi denegado e muito menos rejeitado.

Sendo assim, você deve carregar o XML no componente e consultar, pois ocorreu um erro.

Se não a consulta for bem sucedida, você terá uma das 3 situações apresentadas acima.

Se foi autorizado ou denegado imprima o DACTE.

Se foi rejeitado, o usuário tem que fazer as devidas correções e enviar novamente.

Lembre-se que uma das rejeições é: Documento Inexistente na Base de Dados, neste caso fica claro que ao enviar o problema ocorreu no envio e não no retorno.

Se você ficar consultando toda vez antes do envio, a SEFAZ poderá bloquear o emitente do CT-e OS por um período, por consumo indevido do Web Service.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

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