Ir para conteúdo
  • Cadastre-se

dev botao

Verificar se a nota recebida está cancelada antes de dar entrada


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

Recommended Posts

Oi pessoal, imagino que isto é uma pergunta muito básica, mas vamos lá... 

Preciso consultar a nota que eu recebi, pra ver se ela está cancelada antes de dar entrada. Tudo o que encontro é como ver o status da nota emitida por mim, mas qual o comando que dou no componente acbr que verifica o status da nota recebida?

Motivo: Empresa "A" emite a nota, mas percebe que o valor ou alguma outra coisa estava errada. Daí cancela e faz outra. Embora ela mande os 2 e-mails para o cliente "B", o cliente "B", sem querer, pega a nota errada e quer fazer o manifesto de recebimento nessa que está cancelada e não na correta que foi enviada depois. 🤷‍♂️

Para evitar este problema preciso consultar a nota na qual vou fazer o manifesto antes de manifestar o recebimento. 

Link para o comentário
Compartilhar em outros sites

  • Moderadores
3 horas atrás, Fernando Massa disse:

Para evitar este problema preciso consultar a nota na qual vou fazer o manifesto antes de manifestar o recebimento. 

Usando o DistribuicaoDFe você deve receber o evento de cancelamento em algum momento, mas isso depende do cancelamento ser sincronizado com o ambiente nacional, este gerar o NSU com o evento e o destinatário fazer todas as consultas pendentes.

Em vez disso pode só fazer a consulta de protocolo pela chave normal.

ACBrNFe1.NotasFiscais.Clear;
ACBrNFe1.WebServices.Consulta.NFeChave := vChave;
ACBrNFe1.WebServices.Consulta.Executar;

Dessa forma é feita a consulta na SEFAZ de origem da nota.

  • Obrigado 1
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

Muito obrigado Juliomar e BigWings pelas respostas.

acabei fazendo assim (antes de ver as respostas de vcs) mas ficou tipo a solução do BigWings:

         ACBrNFe.WebServices.Consulta.NfeChave := ACHaveNFe;
         ACBrNFe.WebServices.Consulta.Executar;

         if (ACBrNFe.WebServices.Consulta.cStat = 110) or
            (ACBrNFe.WebServices.Consulta.cStat = 301) or
            (ACBrNFe.WebServices.Consulta.cStat = 302) or
            (ACBrNFe.WebServices.Consulta.cStat = 303) or
            (ACBrNFe.WebServices.Consulta.cStat = 101) or
            (ACBrNFe.WebServices.Consulta.cStat = 151)
         then
         begin
            mensagem := 'A Nota que você está tentando manifestar, está CANCELADA ou DENEGADA.'+#13+#10+'Consulte a empressa emissora da nota para ver se "outra nota foi emitida", para substituir esta NFe.';
            MessageBox(0, PChar(mensagem), PChar('Atenção!'), MB_ICONWARNING or MB_OK or MB_TASKMODAL or MB_DEFBUTTON2);
            frmMensNfe.edtMens.Lines.Add(mensagem);
            Result := false;
            Exit;
         end;

pelo que vi, o "ACBrNFe.WebServices.Consulta.cStat" vai me dar o retorno e até onde achei, aqueles códigos ali são de notas denegadas/canceladas. 

 

Link para o comentário
Compartilhar em outros sites

  • Administradores

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 810 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.