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;
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.