Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
Postado

Caros amigos, 

 

Me ajudem,

 

Uso o código abaixo : 

 

...

    GeraNfe ;

    ACBrNFe1.NotasFiscais.Assinar             ;

    ACBrNFe1.Enviar('1',false) ;

 

...

    QryNota.ParamByName('CSTATUS').AsInteger := StrToint(cStat) ;
    QryNota.ParamByName('CHNFE').AsString       := ChNFe           ;
    QryNota.ExecSql ;
 

 

Quando a NFe é aceita dá tudo certo, mas quando ocorre rejeição, não consigo pegar

o código da rejeição, só aparece o messagebox dizendo a rejeição exemplo :

 

Rejeição : Total da BC ICMS difere do somatório dos itens,

 

    Como posso pegar o cStat do Erro, para gravar na minha tabela o código do erro quando rejeitada ;

 

Me parece que quando a nota está OK, prossegue , mas quando tem erro, o ACBr aborta e não continua 

para gerar o cStat, só dá a mensagem conforme descrito acima.

 

Espero ter sido clara.

 

 

Grata desde já !

 

 

   

Postado

Após o comando enviar você de fazer o tratamento do código de retorno da propriedade cStat do tipo, faça uma pesquisa no fórum para saber todos os valores de retorno possíveis.

   if fACBrNFe.WebServices.Retorno.NFeRetorno.ProtNFe.Items[0].cStat = 100 then
      ???  // Autorizada
   else
   if fACBrNFe.WebServices.Retorno.NFeRetorno.ProtNFe.Items[0].cStat = 105 then
      ???  // Pendente
   else
   if fACBrNFe.WebServices.Retorno.NFeRetorno.ProtNFe.Items[0].cStat = 110 then
      ???  // Denegada
   else
   if fACBrNFe.WebServices.Retorno.NFeRetorno.ProtNFe.Items[0].cStat > 200 then
      ??? // Rejeitada

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

  • Membros Pro
Postado

Isaque ,

 

Muito Obrigada pela ajuda, meu código depois do enviar é este abaixo

 

   ACBrNFe1.Enviar ;

 

  For i := 0 to ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Count -1 Do
    Begin
       cStat       := IntToStr(ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Items.cStat) ;
       xMotivo   := ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Items.xMotivo  ;
       nRec      := ACBrNFe1.WebServices.Retorno.Recibo ;
       nProt      := ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Items.nProt    ;
       ChNFe   := ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Items.chNFe    ;
    end;

 

 

O problema é que se a nota for rejeitada, não passa pelo For , aparece o messagebox

dizendo o erro exemplo 'BC ICMS difere do somatório dos itens '  , e não faz o For.

 

Desde já te agradeço !

  • Membros Pro
Postado

Isaque ,

 

Muito Obrigada pela ajuda, meu código depois do enviar é este abaixo

 

   ACBrNFe1.Enviar ;

 

  For i := 0 to ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Count -1 Do
    Begin

 

      O problema é que se a nota for rejeitada, não passa pelo For , aparece o messagebox

      dizendo o erro exemplo 'BC ICMS difere do somatório dos itens '  , e não passa por aqui !

 
       cStat       := IntToStr(ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Items.cStat) ;
       xMotivo   := ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Items.xMotivo  ;
       nRec      := ACBrNFe1.WebServices.Retorno.Recibo ;
       nProt      := ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Items.nProt    ;
       ChNFe   := ACBrNFe1.WebServices.Retorno.NFeRetorno.ProtNFe.Items.chNFe    ;
    end;

 

 

Desde já te agradeço !

 

  • 6 meses depois ...
  • Membros Pro
Postado

frmNfe.notafiscal.Enviar(vNumLote, False, Sincrono);

 If (frmNfe.notaFiscal.WebServices.Retorno.NFeRetorno.ProtNFe.Count > 0) then

 

Me retorna um Access violation.

 

Att.

 

Leonardo Freitag

assinatura.png

  • 3 anos depois...
  • 4 meses depois ...
Postado

Gente como disse o mfb admnet sistemas, acontece o abort aí não tem o retorno.

 

Faço assim:

      if (Trim(Nota.NotasFiscais.Items.NFe.procNFe.xMotivo)<>'') then
      begin
        NFCeModel.istatu := Nota.NotasFiscais.Items.NFe.procNFe.cStat;
        NFCeModel.status := Nota.NotasFiscais.Items.NFe.procNFe.xMotivo;
      end
      else
      begin
        NFCeModel.istatu := Nota.WebServices.Retorno.cMsg; //Retorno com o Código do erro
        NFCeModel.status := Nota.WebServices.Retorno.xMsg; //Retorno com a Mensagem do erro
      end;

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