Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Olá Ítalo,

 

  Como eh feito no emissor gratuito que a Sefaz disponibiliza, gostaria de ter uma opção para Cancelar ou Encerrar uma MDF-e através apenas do Protocolo e da Chave de Acesso... Teria como pelo ACBrMDFe???

  • Consultores
Postado

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 / Araraquara-SP

Araraquara - A era dos Trólebus

  • Solution
Postado (editado)
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
Postado

Consegui aqui... Meu código ficou do jeito que postei acima com as devidas melhorias... Se ainda não teve solução ClaudioCosta, creio que servirá pra vc também... Abraços... Obrigado Ítalo

  • Consultores
Postado

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 / Araraquara-SP

Araraquara - A era dos Trólebus

Postado (editado)

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
  • 3 semanas depois ...
Postado

Vcs sabem como pegar o protocolo de cancelamento de um MDF-e? Se fosse uma NFe, seria "NFe.WebServices.Consulta.retCancNFe.nProt", mas no MDF-e não conseguir...

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