Jump to content
Notícias do ACBr

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

logos

Texto.png

p200

click.png

click.png

click.png

Reimprimir Protocolo de Cancelamento de CTe


Go to solution Solved by Italo Giurizzato Junior,

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 to post
Share on other sites

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
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
http://www.juliomarmarchetti.com.br
Embarcadero MVP
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Link to post
Share on other 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 to post
Share on other sites
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
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
http://www.juliomarmarchetti.com.br
Embarcadero MVP
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Link to post
Share on other sites

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

 

Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
http://www.juliomarmarchetti.com.br
Embarcadero MVP
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Link to post
Share on other 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

Edited by Pedro Nilo Zapata Junior
Link to post
Share on other 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 to post
Share on other sites
  • 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

Link to post
Share on other sites

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

Link to post
Share on other sites

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
http://www.juliomarmarchetti.com.br
Embarcadero MVP
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Link to post
Share on other sites
Guest
This topic is now closed to further replies.
×
×
  • Create New...