Jump to content

dev botao

Pegar retorno (CSTAT) XML de cancelamento NFC-e


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

Recommended Posts

Boa tarde pessoal, preciso de uma outra ajuda estou precisando pegar o retorno (cstat) de um XML de cancelamento, ele vem sempre com código 217, mas a minha aplicação não está conseguindo pegar o retorno, segue o trecho de código se alguém puder me ajudar, agradeço.

O XML segue em anexo.

 if length(arquivo_xml) > 0 then
            NFeletronica.NotasFiscais.LoadFromFile(form_configl.Etrilha_xmls.Text + arquivo_xml);
         //
         NFeletronica.EventoNFe.Evento.Clear;
         //
         NFeletronica.EventoNFe.idLote := funcs_var.F_cartoint(cupom); // lote é sempre numero da nota.
         with NFeletronica.EventoNFe.Evento.Add do
         begin
            infEvento.chNFe := chave_cupom;
            infEvento.CNPJ := dados_nfce.EmitCNPJ;
            // 2.0.33.1.3 // isto funciona, mas o computador tem que estar um minuto menor que o servidor, e o cancelamento deve ser um minuto após a venda
            infEvento.dhEvento := now;
            // infEvento.dhEvento := NFeletronica.WebServices.StatusServico.dhRetorno;
            if length(VG_arqlog) > 0 then
               funcs_txt.P_Log(VG_arqlog, '     Chave:' + infEvento.chNFe + '; ' +
                  ' CNPJ:' + infEvento.CNPJ + '; ' +
                  ' Data:' + DateTimeToStr(infEvento.dhEvento), false, '', true);
            infEvento.tpEvento := teCancelamento;
            infEvento.detEvento.xJust := 'Desistencia do Cliente';
            // não tem protocolo porque é sincrono
            // infEvento.detEvento.nProt := local_SDS.FieldByName('PROTOCOLO_NFE').AsString;
         end;
         NFeletronica.EnviarEvento(funcs_var.F_cartoint(cupom));

51160417835784000170650010001384439001384437-sit.xml

Link to comment
Share on other sites

Se você já carregou com LoadFromFile, não precisa digitar esse tanto de código, veja que a função ACBrNFe.Cancelamento(justificativa) já faz isso por você.
Ai basta consultar a propriedade ACBrNFe.WebServices.EnvEvento.cStat

Se está dando rejeição, você está fazendo algo errado (como informar um ambiente diferente). Veja: 
http://www.oobj.com.br/bc/article/rejei%C3%A7%C3%A3o-217-nf-e-n%C3%A3o-consta-na-base-de-dados-da-sefaz-como-resolver-113.html

 

 

 

 

Link to comment
Share on other sites

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