Ir para conteúdo
  • Cadastre-se

dev botao

Erro Ao Tentar Cancelar Uma Nota Fiscal


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

Recommended Posts

estou fazendo assim:

 

  NumeroLote := StrToInt(FormatDateTime('yymmddhhmm', NOW));
  OpenDialog1.Title := 'Selecione a NFE';
  OpenDialog1.DefaultExt := '*-nfe.XML';
  OpenDialog1.Filter := 'Arquivos NFE (*-nfe.XML)|*-nfe.XML|Arquivos XML (*.XML)|*.XML|Todos os Arquivos (*.*)|*.*';
  OpenDialog1.InitialDir := nfe.Configuracoes.Geral.PathSalvar;
  if OpenDialog1.Execute then
     begin
     nfe.NotasFiscais.Clear;
     NFe.EventoNFe.idLote := NumeroLote;
     with NFe.EventoNFe.Evento.Add do
     begin
     infEvento.dhEvento := now;
     infEvento.tpEvento := teCancelamento;
//     infEvento.cOrgao   := RetornarCodigoUF(Emitente.Empresa.UF); //coloca o codigo do estado q deseja tranmitir
     infEvento.cOrgao   := 91;
     infEvento.detEvento.nProt := NFe.NotasFiscais.Items[0].NFe.procNFe.nProt;
     infEvento.detEvento.xJust := vAux;
     end;
     NFe.EnviarEventoNFe(NumeroLote);
     nfe.NotasFiscais.LoadFromFile(OpenDialog1.FileName);
     if not(InputQuery('WebServices Cancelamento', 'Justificativa', vAux)) then
        exit;
     nfe.Cancelamento(vAux);
     MemoResp.Lines.Text   := UTF8Encode(nfe.WebServices.Cancelamento.RetWS);
     memoRespWS.Lines.Text := UTF8Encode(nfe.WebServices.Cancelamento.RetornoWS);
     LoadXML(MemoResp, WBResposta);
     ShowMessage(IntToStr(nfe.WebServices.Cancelamento.cStat));
     ShowMessage(nfe.WebServices.Cancelamento.Protocolo);
     end;
 
Link para o comentário
Compartilhar em outros sites

Bom dia. Esse código está meio estranho, pois vc está tentando usar a NFe antes de carrega-la do XML selecionado e o mesmo esta acontecendo com a variável VAux. Além disso vc está dando o comando de cancelamento pelo modo antigo e pelo evento também.

Tente fazer assim:

 

 

 

NumeroLote := StrToInt(FormatDateTime('yymmddhhmm', NOW));
  OpenDialog1.Title := 'Selecione a NFE';
  OpenDialog1.DefaultExt := '*-nfe.XML';

  OpenDialog1.Filter := 'Arquivos NFE (*-nfe.XML)|*-nfe.XML|Arquivos XML (*.XML)|*.XML|Todos os Arquivos (*.*)|*.*';
  OpenDialog1.InitialDir := nfe.Configuracoes.Geral.PathSalvar;
  if OpenDialog1.Execute then
     begin
     nfe.NotasFiscais.Clear;
     nfe.NotasFiscais.LoadFromFile(OpenDialog1.FileName);
     NFe.EventoNFe.idLote := NumeroLote;
     with NFe.EventoNFe.Evento.Add do
     begin
     infEvento.dhEvento := now;
     infEvento.tpEvento := teCancelamento;
     infEvento.cOrgao   := 91;
     infEvento.detEvento.nProt := NFe.NotasFiscais.Items[0].NFe.procNFe.nProt;
     if not(InputQuery('WebServices Cancelamento', 'Justificativa', vAux)) then
       exit;
     infEvento.detEvento.xJust := vAux;
     end;
     NFe.EnviarEventoNFe(NumeroLote);      
     end;
 
Editado por Astrogildo82
Link para o comentário
Compartilhar em outros sites

Usando como base o ACBRMonitor2:

 

 if Application.MessageBox('Confirma?', 'Atenção', mb_applmodal+mb_iconquestion+mb_yesno+mb_defbutton1) = 6 then

  begin

   dm.ACBrNFe1.NotasFiscais.Clear;

   dm.ACBrNFe1.NotasFiscais.LoadFromFile(sCaminhoArquivo);

   sJustifNFe := '';

   // Solicitar justificativa

   while Length(sJustifNFe)<15 do

    begin

     InputQuery('WebServices Cancelamento', 'Justificativa (mínimo 15 caracteres)', sJustifNFe);

     sJustifNFe :=  TrimLeft(TrimRight(sJustifNFe));

     if Length(sJustifNFe)<15 then

      ShowMessage('Você deve digitar uma justificativa com no mínimo 15 caracteres!');

    end;

   //

   dm.ACBrNFe1.WebServices.Consulta.NFeChave := dm.ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.chNFe;

   if not dm.ACBrNFe1.WebServices.Consulta.Executar then

    raise Exception.Create(dm.ACBrNFe1.WebServices.Consulta.Msg);

   //dm.ACBrNFe1.Cancelamento(sJustifNFe);

   //

   vOK := 0;

   NumeroLote := StrToInt(FormatDateTime('yymmddhhmm', NOW));

   dm.ACBrNFe1.EventoNFe.Evento.Clear;

   with dm.ACBrNFe1.EventoNFe.Evento.Add do

    begin

     infEvento.CNPJ            := copy(LimpaNumero(dm.ACBrNFe1.WebServices.Consulta.NFeChave),7,14);

     infEvento.cOrgao          := StrToIntDef(copy(LimpaNumero(dm.ACBrNFe1.WebServices.Consulta.NFeChave),1,2),0);

     infEvento.dhEvento        := now;

     infEvento.tpEvento        := teCancelamento;

     infEvento.chNFe           := dm.ACBrNFe1.WebServices.Consulta.NFeChave;

     infEvento.detEvento.nProt := dm.ACBrNFe1.WebServices.Consulta.Protocolo;

     infEvento.detEvento.xJust := sJustifNFe;

    end;

   try

    dm.ACBrNFe1.EnviarEventoNFe(NumeroLote);

    vOK := 1;

    Resposta := dm.ACBrNFe1.WebServices.EnvEvento.EventoRetorno.xMotivo+sLineBreak+

                '[CANCELAMENTO]'+sLineBreak+

                'Versao='+dm.ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.verAplic+sLineBreak+

                'VerAplic='+dm.ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.VerAplic+sLineBreak+

                'CStat='+IntToStr(dm.ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat)+sLineBreak+

                'XMotivo='+dm.ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.XMotivo+sLineBreak+

                'CUF='+IntToStr(dm.ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cOrgao)+sLineBreak+

                'ChNFe='+dm.ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.chNFe+sLineBreak+

                'DhRecbto='+DateTimeToStr(dm.ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.dhRegEvento)+sLineBreak+

                'NProt='+dm.ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.nProt+sLineBreak+

                'xEvento='+dm.ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.xEvento+sLineBreak+

                'nSeqEvento='+IntToStr(dm.ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.nSeqEvento)+sLineBreak+

                'CNPJDest='+dm.ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.CNPJDest+sLineBreak+

                'XML='+dm.ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.XML+sLineBreak;

   except

    raise Exception.Create(dm.ACBrNFe1.WebServices.EnvEvento.EventoRetorno.xMotivo);

   end;

 

Fincuinou perfeitamente.

 

Abraços,

 

Vanderlei ([email protected])

Link para o comentário
Compartilhar em outros sites

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

The popup will be closed in 10 segundos...