Ir para conteúdo
  • Cadastre-se

dev botao

Cancelar Mdf-E Pela Chave De Acesso E Protocolo


Dempsey
Ver Solução Respondido por Dempsey,
  • Este tópico foi criado há 3284 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.

  • Curtir 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

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros 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;
Editado por Dempsey
Link para o comentário
Compartilhar em outros 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.

  • Curtir 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

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros 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

Editado por Dempsey
Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...
  • Consultores

Boa tarde,

 

O cancelamento é um evento.

 

   sProtocolo := ACBrMDFe.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.nProt;
  • Curtir 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

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

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