Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

var
  chaveCancelamento: String;
begin
  OpenDialog1.Filter := 'Arquivo XML|*.xml';
  if OpenDialog1.Execute then
  begin
    ACBrSAT1.CFe.LoadFromFile( OpenDialog1.FileName );
    ACBrSAT1.CFe2CFeCanc;
    ACBrSAT1.CFeCanc.GerarXML( True ) ;  // True = Gera apenas as TAGs da aplicação
    chaveCancelamento := ACBrSAT1.CFeCanc.infCFe.chCanc;

    ACBrSAT1.CancelarUltimaVenda;
 

    if (ACBrSAT1.Resposta.codigoDeRetorno = 7000)   then ACBrSAT1.ImprimirExtratoCancelamento;
  end;
end;

Postado

Bom dia!

há as duas formas, também estou utilizando ACBrSAT1.CancelarUltimaVenda;

Quando utilizo o emulador o retorno que recebo é 7000 e no sat da bematech retorna 0, mas cancela.

Ainda não descobri o que é.

  • Membros Pro
Postado

var
  chaveCancelamento: String;
begin
  OpenDialog1.Filter := 'Arquivo XML|*.xml';
  if OpenDialog1.Execute then
  begin
    ACBrSAT1.CFe.LoadFromFile( OpenDialog1.FileName );
    ACBrSAT1.CFe2CFeCanc;
    ACBrSAT1.CFeCanc.GerarXML( True ) ;  // True = Gera apenas as TAGs da aplicação
    chaveCancelamento := ACBrSAT1.CFeCanc.infCFe.chCanc;

    ACBrSAT1.CancelarUltimaVenda;
 

    if (ACBrSAT1.Resposta.codigoDeRetorno = 7000)   then ACBrSAT1.ImprimirExtratoCancelamento;
  end;
end;

Barrys,

Boa tarde. Tenta um pouco diferente. Eu deixo um memo oculto na tela e faço como no exemplo do ACBrSAT;

Ao invés de :

    ACBrSAT1.CFeCanc.GerarXML( True ) ;  // True = Gera apenas as TAGs da aplicação
    chaveCancelamento := ACBrSAT1.CFeCanc.infCFe.chCanc;
    
    ACBrSAT1.CancelaUltimaVenda;

Eu faço:

    mForcasOcultasSAT.Lines.Text := ACBrSAT1.CFeCanc.GerarXML( True ) ;  // componente MEMO oculto
    chaveCancelamento := ACBrSAT1.CFeCanc.infCFe.chCanc;

    ACBrSAT1.CancelarUltimaVenda( chaveCancelamento, mForcasOcultasSAT.Lines.Text );

    if ACBrSAT1.Resposta.codigoDeRetorno in [0,7000] then
    begin
      // cancelado com sucesso
      .... vai 
    end else
    begin
      // erro, tratamento
    end;

Veja aí o que acontece e retorna,

Até mais,

-- 

Alexandre de Oliveira

Diretor de T.I.

xx16 3811 0155

www.consultatec.com.br - [email protected]

image.png.744a897bbf36127e428c6e687ef05731.png

 

Postado

Boa tarde Alexandre!

você está considerando que 0 é cancelado com sucesso, mas aparentemente no ACBr só irá salvar o xml se o retorno for 7000.

você está fazendo mais algum tratamento quanto a isso?

Att,

Wilson.

  • Membros Pro
Postado

Ops,

Pessoal, estão certos, o código correto é :

    mForcasOcultasSAT.Lines.Text := ACBrSAT1.CFeCanc.GerarXML( True ) ;  // componente MEMO oculto
    chaveCancelamento := ACBrSAT1.CFeCanc.infCFe.chCanc;

    ACBrSAT1.CancelarUltimaVenda( chaveCancelamento, mForcasOcultasSAT.Lines.Text );

    if ACBrSAT1.Resposta.codigoDeRetorno = 7000 then
    begin
      // cancelado com sucesso
      .... vai 
    end else
    begin
      // erro, tratamento
    end;

Até mais,

-- 

Alexandre de Oliveira

Diretor de T.I.

xx16 3811 0155

www.consultatec.com.br - [email protected]

image.png.744a897bbf36127e428c6e687ef05731.png

 

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