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

consultoria_sticker.png

Conteúdo para desenvolvedores
 ao vivo de terça a quinta!
Saiba mais

dev.png

logo_acbr_paygo.png

TEF ACBr PayGo
Seja um revendedor e ofereça uma solução completa para seu cliente.


botao.png

beneficios.png

Reimprimir Protocolo de Cancelamento de CTe


Go to solution Solved by Italo Giurizzato Junior,

Recommended Posts

  • Usuários SAC

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
  • Usuários SAC

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
  • Usuários SAC
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
  • Usuários SAC
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...