Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
Postado

Boa tarde! Tenho o código abaixo para enviar a NF-e e gostaria de adicionar uma tratativa caso a SEFAZ retornasse Consumo Indevido, para que dessa forma eu bloquearia o usuário de alterar a nota e ficaria com status "Enviando" para o usuário tentar novamente mais tarde.
Como posso saber que o retorno foi Consumo Indevido da SEFAZ? Faria sentido tentar consultar/enviar essa nota mais tarde?

 

  try
    dmACBr.ACBrNFe1.Enviar('1', False, False);

    pAtualizarTela;

    except on E : Exception do
    begin
    if E.Message <> '' then
     iMessageBox(handle,pchar( E.Message ),'Rejeição',MB_OK+MB_ICONWARNING)
    else
     iMessageBox(handle,pchar( E.Message + #13 + 'Sem retorno do Método: Enviar'+#13+'Experimente colocar SSL3 e TLS desmarcado no IE.' ),'Rejeição',MB_OK+MB_ICONWARNING);

    TVENDAS.Edit;
    if copy(E.Message,1,14) <> 'O tempo limite' then
     TVENDASSITUACAO.AsString        := 'Rejeitada';

    TVENDASMOTIVO_REJEICAO.AsString := Copy(E.Message,1,1500);
    TVENDAS.Post;
    dmConexao.IBTCONEXAO.CommitRetaining;

 

  • Consultores
  • Solution
Postado

Bom dia @Datacaixa,

Não se é para todos os DF-e, mas para a NF-e a rejeição "Consumo Indevido" tem como código 656.

No campo cStat temos 656 e no campo xMotivo temos a mensagem "Rejeição: Consumo Indevido".

Após tentar emitir a nota através do método Enviar, você pode ler esses dois campos.

Se cStat for 656 você faz com que a aplicação não deixe o usuário tentar novamente.

  • 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

×
×
  • 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...