Jump to content

diadoacbr

Cancelar Mdf-E Pela Chave De Acesso E Protocolo


Dempsey
Go to solution Solved by Dempsey,
  • Este tópico foi criado há 2694 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Consultores

Boa noite a todos,

 

Sim, que tal dar uma estudada no programa exemplo, mais precisamente no botão de encerramento e cancelamento.

 

Ai vocês vão dizer mas no programa exemplos ele pede o XML do MDF-e, sim, ele pede, para simplesmente extrair do mesmo a chave e o protocolo.

  • Like 1
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 comment
Share on other sites

  • Solution
procedure TfrmTransporteManifesto.sbtCancelarMDFeClick(Sender: TObject);
var lRetorno: string;
    lNumeroLote: Integer;
begin
  if ACBrMDFe.Configuracoes.Certificados.NumeroSerie = '' then
    SerieCertificado := ACBrMDFe.Configuracoes.Certificados.SelecionarCertificado;
 
//numero do lote de envio (somente um exemplo, pode-se utilizar seu proprio controle)
  lNumeroLote := StrToInt(FormatDateTime('yymmddhhmm', NOW));
 
//Carregar o xml do manifesto
  ACBrMDFe.Manifestos.Clear;
  ACBrMDFe.EventoMDFe.Evento.Clear;
 
//Carreto um XML qualquer - Depois envio a Chave e o protocolo do MDFe que desejo CANCELAR
  if not ACBrMDFe.Manifestos.LoadFromFile(lPastaXml + 'MDFeXML\' + qryMestreDSC_MDFE_CHAVE_ACESSO.AsString + '-MDFe.xml') then
    raise Exception.Create('Não foi possível carregar o XML do manifesto correspondente!');
 
  qryEmpresa.Locate('COD_EMPRESA', qryMestreFKY_EMPRESA.AsInteger, []);
 
  if Assigned(ACBrMDFe.Manifestos.Items[0]) then
  begin
    with ACBrMDFe.EventoMDFe.Evento.Add do
    begin
      infEvento.chMDFe     := '31150315395232000163580010000000061000000012'; //Informo aqui a Chave de Acesso da MDFe a ser CANCELADA
      infEvento.CNPJ       := qryEmpresaDSC_CPF_CNPJ.AsString;                //Informo aqui o CNPJ da empresa Emitente
      infEvento.dhEvento   := now;
      infEvento.tpEvento   := teCancelamento;
      infEvento.nSeqEvento := 1;
 
      infEvento.detEvento.xJust := 'Teste de cancelamento de mdfe'; //Informo aqui a Justificativa do CANCELAMENTO
      infEvento.detEvento.nProt := '931150000006128'; //Informo aqui o protocolo da MDFe e ser CANCELADA
    end;
 
    ACBrMDFe.EnviarEventoMDFe(lNumeroLote);
 
    lRetorno := '[[[ Cancelamento da MDFe ]]]' + chr(13);
    lRetorno := lRetorno + UTF8Encode(ACBrMDFe.WebServices.EnvEvento.RetWS);
 
    ShowMessage(lRetorno); //Cancelada
  end;
end;
Edited by Dempsey
Link to comment
Share on other sites

  • Consultores

Bom dia,

 

Por favor, não post como texto fragmento de código a não ser que o mesmo tenha 3 linhas.

 

Procure sem anexar.

 

Outra coisa no inicio da sua rotina você colocou um comentário que se trata de encerramento, mas ao passar o tipo de evento, você informa o de cancelamento.

  • Like 1
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 comment
Share on other sites

Desculpe.... É que pra deixar de melhor compreensão aqui no fórum, eu peguei o meu código e tive que fazer uma alterações nele e acabei colocando o comentário errado, eh um CANCELAMENTO mesmo... Estou anexando o código de novo... Com alguns comentários... 

Não estou conseguindo anexar...

"O servidor se comportou de maneira inesperada durante o envio"

Editei o post com as correções... abraços

Edited by Dempsey
Link to comment
Share on other sites

  • 3 weeks later...
  • Consultores

Boa tarde,

 

O cancelamento é um evento.

 

   sProtocolo := ACBrMDFe.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.nProt;
  • Like 2
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 comment
Share on other sites

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.