Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

Boa tarde a Todos....


Gostaria de saber como eu conseigo fazer a consulta da situação da nota fiscal e saber se a nota esta normal ou esta cancelada seja pela a chave da nota ou por RPS 

  • Consultores
Postado

no exemplo do componente , abre ele e tem a aba consultas

testa lá e vai ver o retorno

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
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 !!

  • Consultores
Postado

image.png

 

image.png

um exemplo de consulta

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
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 !!

  • Membro Pro Verificado
Postado

Esse exemplo do demo não traz a situação.

Veja o arquivo anexo é de uma consulta por chave DPS.

Troquei umas mesnagens com o Italo há alguns dias e, pelo que entendi, não é possível fazer uma consulta de situação de NFSe, assim como se faz com outros DFes.

A solução que encontramos para casos assim foi:

1 - Consulta a nota pelo DPS. Se retornar uma chave de NFSe, então é porque ela foi autorizada em algum momento. Mas isso não significa que seu status atual é ainda autorizada.

2 - Fazemos uma consulta para ver se essa nota está cancelada, assim:

ACBrNFSeX1.ConsultarEvento(FDQNFSe.FieldByName('CHAVE_NFSE').AsString, ACBrNFSeXConversao.teCancelamento, 1);

  With ACBrNFSeX1.WebService do
   begin
    With ConsultarEvento do
     begin
      VRetObj := TJSONObject.ParseJSONValue(XmlRetorno) as TJSONObject;
      VRetArr := VRetObj.GetValue('eventos') as TJSONArray;

      if StrTotpEvento(VG.FOKTrue, VRetArr.GetValue<String>('[0].tipoEvento')) <> ACBrNFSeXConversao.teCancelamento then //só para garantir que no futuro essa consulte mude e quebre o código aqui.
       begin
        ChamaErro('A consulta ao evento ocorreu com sucesso, mas retornou um evento (' + VRetArr.GetValue<String>('[0].tipoEvento') + ') diferente de cancelamento.');
        exit;
       end;

      //esse duplo DecodeBase64( foi copiado da PadraoNacional.Provider.pas. Pelo que parece, no caso do evento, o WS devolve o valor do XML duplamente decodado.
      VXML := DecodeBase64(DecodeBase64(VRetArr.GetValue<String>('[0].arquivoXml'))); //não faz o UnZip( pqe vai gravar no BD zipado.
    

 ShowMessage('Sim a nota está cancelada.');

      ........

end;

 Espero ter ajudado!

 

acbr.png

  • Curtir 2

Valdir Dill

Rio de Janeiro - RJ

 

 

  • Consultores
Postado
1 hora atrás, Valdir Dill disse:

Esse exemplo do demo não traz a situação.

Veja o arquivo anexo é de uma consulta por chave DPS.

Troquei umas mesnagens com o Italo há alguns dias e, pelo que entendi, não é possível fazer uma consulta de situação de NFSe, assim como se faz com outros DFes.

A solução que encontramos para casos assim foi:

1 - Consulta a nota pelo DPS. Se retornar uma chave de NFSe, então é porque ela foi autorizada em algum momento. Mas isso não significa que seu status atual é ainda autorizada.

2 - Fazemos uma consulta para ver se essa nota está cancelada, assim:

ACBrNFSeX1.ConsultarEvento(FDQNFSe.FieldByName('CHAVE_NFSE').AsString, ACBrNFSeXConversao.teCancelamento, 1);

  With ACBrNFSeX1.WebService do
   begin
    With ConsultarEvento do
     begin
      VRetObj := TJSONObject.ParseJSONValue(XmlRetorno) as TJSONObject;
      VRetArr := VRetObj.GetValue('eventos') as TJSONArray;

      if StrTotpEvento(VG.FOKTrue, VRetArr.GetValue<String>('[0].tipoEvento')) <> ACBrNFSeXConversao.teCancelamento then //só para garantir que no futuro essa consulte mude e quebre o código aqui.
       begin
        ChamaErro('A consulta ao evento ocorreu com sucesso, mas retornou um evento (' + VRetArr.GetValue<String>('[0].tipoEvento') + ') diferente de cancelamento.');
        exit;
       end;

      //esse duplo DecodeBase64( foi copiado da PadraoNacional.Provider.pas. Pelo que parece, no caso do evento, o WS devolve o valor do XML duplamente decodado.
      VXML := DecodeBase64(DecodeBase64(VRetArr.GetValue<String>('[0].arquivoXml'))); //não faz o UnZip( pqe vai gravar no BD zipado.
    

 ShowMessage('Sim a nota está cancelada.');

      ........

end;

 Espero ter ajudado!

 

acbr.png

Olha ai que show

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
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 !!

Postado (editado)

Esse código será implementado nas consultas RPS, NFSe ou evento? Ppois seria mais prático se a consulta já populasse a propriedade situação ou algo assim.

Editado por marcelo.hgv
  • 2 semanas depois ...
Postado

Pessoal, estou tendo o mesmo problema.
mas eu enviei uma e NÃO cancelei, fiz a consulta de evento de cancelamento e está retornando True, como se existisse um evento de cancelamento

------------------------------
Versão OpenSSL


------------------------------
Requisição
Ambiente : 2 - Homologação
Cidade   : Cianorte/PR
Provedor : PadraoNacional Versão: 1.00
Data/Hora: 25/11/2025 15:30:36
 
Método Executado: Consultar Evento
 
Parâmetros de Envio
Chave NFSe      : 410550822215435870001..........
Evento          : Cancelamento de NFS-e
Num. Seq. Evento: 1
 
Parâmetros de Retorno
Chave NFSe      : 
Data            : 25/11/2025
Tipo Evento     : Cancelamento de NFS-e
Num. Seq. Evento: 1
ID do Evento    : 
Sucesso         : True
 
NFS-e Numero....: 11
Cod. Verificacao: 410550822215435870001550000.....
Prestador.......: RESULTI SISTEMAS LTDA


Tomador.........: MAURICIO ZOTTIS
Nome do arquivo.: D:\Componentes\Acbr\Exemplos\ACBrDFe\ACBrNFSeX\Delphi\Logs\202511\NFSe\Notas\D:\Componentes\Acbr\Exemplos\ACBrDFe\ACBrNFSeX\Delphi\Logs\202511\NFSe\Notas\41055082221543587000155000000000001125116162338816-nfse.xml
==> Xml da nota salvo na pasta e com o nome informado acima.
 

e se fizer a consulta depois de Cancelar, não aparece em lugar nenhum se está realmente cancelada.
não sei se é coisa do ACBR ou o governo que não devolve a situação da nota.
 

Que dilema!!!!! 

Se quiser ir rápido, vá sozinho.
Se quiser ir longe, vá em grupo.
Provérbio Africano.

2025 ano XXVIII

Postado

Pessoal, acho que matei a charada.

Após muitas tentativas, estava testando a Consulta de DFe passando apenas a Chave.
Percebi que quando uma nota não tem evento de cancelamento retorna

------------------------------
Versão OpenSSL


Resumo(s):
NSU        : 24
Chave DFe  : 41055082221543587000155000000.........
Tipo Evento: 
Tipo Doc.  : NFSE
---------

 
 

e quando tem

Resumo(s):
NSU        : 22
Chave DFe  : 410550822215435870001550000000...
Tipo Evento: 
Tipo Doc.  : NFSE
---------
NSU        : 23
Chave DFe  : 41055082221543587000155000000....
Tipo Evento: CANCELAMENTO
Tipo Doc.  : EVENTO
nSeqEvento : 0
Data       : 25/11/2025
idEvento   : 410550822215435870001550000......101101001
idNota     : 4105508222154358700015500000......
tpEvento   : e101101

---------
 

Acredito que agora conseguirei capturar a situação real da Nota

Se quiser ir rápido, vá sozinho.
Se quiser ir longe, vá em grupo.
Provérbio Africano.

2025 ano XXVIII

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