Ir para conteúdo
  • Cadastre-se

dev botao

Reimprimir Protocolo de Cancelamento de CTe


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

Recommended Posts

Bom dia!
 

Pessoal tenho 2 dúvidas bem simples, acredito. Ao cancelar um CTe houve um erro de comunicação e não consegui obter o xml de retorno. Em seguida consultei o mesmo pelo site da receita e o cancelamento foi efetivado. Para obter o protocolo de cancelamento e salvar no meu banco de dados, já que houve o erro, utilizo o código abaixo:

  MemoResp.Lines.Text   := ACBrCTe1.WebServices.Consulta.RetWS;
  memoRespWS.Lines.Text := ACBrCTe1.WebServices.Consulta.RetornoWS;

  LoadXML(MemoResp, WBResposta);
 

Minhas 2 duvidas são:

1) Procedimento acima está correto?

2) Como faço para emitir, logo após o procedimento acima, o protocolo de cancelamento, tal como emite nos casos em que não ocorre o erro de comunicação?

 

Desde já agradeço.

 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

O que está mostrando acima de código é só o carregamento do retorno do webservice para jogar em um memo.

Chegou a rodar o exemplo do svn e efetuar o cancelamento do mesmo?

o xml que salva é o próprio componente que já salva, a menos que queira gravar diretamente no banco o evento

pois lembre-se é evento de cancelamento

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

Bom dia Juliomar!

Vamos lá...

Sim, estou usando o exemplo do SVN, 99% dos CTe cancelados deram certo, porém como a internet do local as vezes oscila, ocorreu que em 2 casos, no momento em que o CTe foi cancelado, houve erro de comunicação, pois bem, o CTe chegou a ser cancelado (consultei na receita), mas não chegou a imprimir o comprovante do cancelamento e nem gerou o xml do cancelamento, devido ao erro de comunicação, entende? Agora o que preciso é apenas resgatar o xml de cancelamento e também imprimir o comprovante, só isso.

Estou utilizando a rotina abaixo para tentar imprimir, porém ele gera o formulário da carta de correção (em branco pois não tenho carta de correção) e não o cancelamento:

   ACBrCTe1.EventoCTe.Evento.Clear;
   ACBrCTe1.EventoCTe.LerXMLFromString(PathArq);

    ACBrCTe1.ImprimirEvento;

E para gerar o xml do cancelamento, estou usando o código citado no meu primeiro post e repetido abaixo:

MemoResp.Lines.Text   := ACBrCTe1.WebServices.Consulta.RetWS;
memoRespWS.Lines.Text := ACBrCTe1.WebServices.Consulta.RetornoWS;

LoadXML(MemoResp, WBResposta);

Em resumo gostaria de saber se esse é o procedimento correto para gerar o xml do cancelamento e depois como imprimir o comprovante.

 

Obrigado

Link para o comentário
Compartilhar em outros sites

  • Moderadores
1 hora atrás, Pedro Nilo Zapata Junior disse:

Bom dia Juliomar!

Vamos lá...

Sim, estou usando o exemplo do SVN, 99% dos CTe cancelados deram certo, porém como a internet do local as vezes oscila, ocorreu que em 2 casos, no momento em que o CTe foi cancelado, houve erro de comunicação, pois bem, o CTe chegou a ser cancelado (consultei na receita), mas não chegou a imprimir o comprovante do cancelamento e nem gerou o xml do cancelamento, devido ao erro de comunicação, entende? Agora o que preciso é apenas resgatar o xml de cancelamento e também imprimir o comprovante, só isso.

Estou utilizando a rotina abaixo para tentar imprimir, porém ele gera o formulário da carta de correção (em branco pois não tenho carta de correção) e não o cancelamento:

   ACBrCTe1.EventoCTe.Evento.Clear;
   ACBrCTe1.EventoCTe.LerXMLFromString(PathArq);

    ACBrCTe1.ImprimirEvento;

E para gerar o xml do cancelamento, estou usando o código citado no meu primeiro post e repetido abaixo:

MemoResp.Lines.Text   := ACBrCTe1.WebServices.Consulta.RetWS;
memoRespWS.Lines.Text := ACBrCTe1.WebServices.Consulta.RetornoWS;

LoadXML(MemoResp, WBResposta);

Em resumo gostaria de saber se esse é o procedimento correto para gerar o xml do cancelamento e depois como imprimir o comprovante.

 

Obrigado

Aumenta o timetout, tem as opções de ajuste para ele retentar e dar um tempo maior para o retorno.

chegou a modificar e testar?

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

2 horas atrás, Juliomar Marchetti disse:

Sim tu consegue imprimir o evento de cancelamento, bastando ter o xml do evento

 

Justamente isso que não estou conseguindo fazer... rsrs . Eu tenho o xml do evento e quando tento imprimir o evento de cancelamento com a rotina abaixo, não dá certo (acaba imprimindo o formulário de CARTA DE CORREÇÃO e não o cancelamento), gostaria de saber onde estou errando: 

ACBrCTe1.EventoCTe.Evento.Clear;
ACBrCTe1.EventoCTe.LerXMLFromString(PathArq);

ACBrCTe1.ImprimirEvento; 

Obrigado

Editado por Pedro Nilo Zapata Junior
Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Pedro,

Você carregando o XML correto, ou seja, o de cancelamento?

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

2 horas atrás, Italo Giurizzato Junior disse:

Boa tarde Pedro,

Você carregando o XML correto, ou seja, o de cancelamento?

Sim Italo, estou carregando o xml correto, mas Blz, acho que vou desenvolver uma impressão própria para o cancelamento nesse tipo de situação, é bem simples, agradeço a atenção de todos.

 

Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution

Bom dia Pedro,

Acabei de fazer um teste usando o seu XML.

Use o programa exemplo do componente.

Veja o resultado:

CTe-Evento.jpg

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Pedro,

Não, eu fiz o teste usando o programa exemplo, nele é usado a rotina abaixo:

    ACBrCTe1.EventoCTe.Evento.Clear;
    ACBrCTe1.EventoCTe.LerXML(OpenDialog1.FileName); // Path + nome do XML do evento em questão
    ACBrCTe1.ImprimirEvento;

 

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1137 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.