Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
Postado

Olá Amigos

Gostaria de saber qual a forma correta de fazer um cancelamento de NFS-e no provedor CONAM, atualmente faço assim:

ACBrNFSe1.ConsultarNFSeporRps(NumeroDaNFSe,SerieDaNFSe,TipoRps); (aqui da uma exceção pq o CONAM não tem esta SoapAction disponível)

ACBrNFSe1.WebServices.CancelaNFSe('1', NumeroDaNFSe, Motivo, '1');

O cancelamento é realizado com sucesso e eu sei disso pq entro no site da prefeitura e vejo la que esta cancelada mesmo.

Porem como faço para conferir no ato logo após o envio do evento se a NFS-e foi cancelada mesmo ou não?

Atualmente faço assim:

if (ACBrNFSe1.NotasFiscais.Items[0].NFSe.Status = srNormal) then NFS-e não foi cancelada else NFS-e cancelada com sucesso.

Em todos os provedores que atendo (uns 10) funciona corretamente, ja com o CONAM não pois ele sempre mostra esta propriedade Status = srNormal.

Entao minha pergunta é qual a forma correta de cancelar e saber se foi cancelada mesmo uma NFS-e no provedor CONAM?

  • Consultores
Postado

Boa tarde,

O provedor Conam infelizmente não implementou o serviço ConsultarNFSePorRps dai o motivo do erro.

O novo componente que em breve vai ser disponibilizado ao executar um método cujo serviço não foi implementado pelo provedor vai aparecer uma mensagem mais amigável acusando o fato.

O provedor Conam implementou somente os serviços de Enviar o Lote de RPS, Consultar a Situação do Lote, Consultar o Lote e Cancelar NFS-e.

Acredito que a solução vai ser executar o método ConsultarLote após solicitar o cancelamento.

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

  • Membros Pro
Postado

Boa noite,

Ok consultei o lote assim ACBrNFSe1.ConsultarLoteRps(Lote, Protocolo); (só passei o Protocolo, Lote não precisou)

Obtive de retorno o XML da lista e o XML da única NFS-e existente no lote segue os 2 arquivos em anexo para analise.

Dentro dos XMLs encontrei 2 tags que parecem indicar que a NFS-e esta cancelada

<SitNf>2</SitNf> e <MotivoCncNf>lancamento digitado errado</MotivoCncNf> sendo assim tenho duas perguntas?

1 - Qual propriedade exatamente devo ler no componente para ter certeza de que a NFS-e esta cancelada?

2 - É possivel imprimir o DANFSe com  a tarja ou informação de que se trata de NFS-e cancelada, se sim como fazer que propriedade devo alimentar antes de mandar imprimir?

3521013807413200013056000000000000001-nfse.xml FFF7FD0A35079E7355B0-lista-nfse.xml

  • Moderadores
Postado
Em 22/01/2021 at 19:55, Destak disse:

2 - É possivel imprimir o DANFSe com  a tarja ou informação de que se trata de NFS-e cancelada, se sim como fazer que propriedade devo alimentar antes de mandar imprimir?

Vai depender de qual componente está usando mas olha no DANFSe que estiver usando se existe a propriedade Cancelado e coloca como true e dai a opção marca dágua tu escreve o que quiser

 

Em 22/01/2021 at 19:55, Destak disse:

Qual propriedade exatamente devo ler no componente para ter certeza de que a NFS-e esta cancelada?

Acho que isso não é tratado dentro do componente atual, seria necessário ver oq ue ele faz no comando de tratar a resposta do servidor

  • Curtir 1
Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Consultores
Postado

Bom dia,

O motivo do cancelamento que consta na tag <MotivoCncNf> deve ser o mesmo que consta no pedido de cancelamento, correto?

Por outro lado a tag <SitNf> contem o valor 2 que pode ser um código que indica que a nota esta cancelada.

Seria interessante realizar uma outra consulta informando o protocolo de uma nota que não foi cancelada para ver o que é retornado nessas tags.

Vamos supor que seja retornado na tag <SitNf> o valor 1 e na tag <MotivoCncNf> nada, ou seja, uma string vazia. 

Podemos concluir que a tag <SitNf> contem o código da situação da nota e que se o seu valor for 2 significa que esta cancelada.

Sendo assim devemos utilizar essa informação para atualizar o banco de dados, marcando o registro dessa nota como cancelada.

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

  • Membros Pro
Postado
20 horas atrás, Juliomar Marchetti disse:

Vai depender de qual componente está usando mas olha no DANFSe que estiver usando se existe a propriedade Cancelado e coloca como true e dai a opção marca dágua tu escreve o que quiser

 

Acho que isso não é tratado dentro do componente atual, seria necessário ver oq ue ele faz no comando de tratar a resposta do servidor

Boa noite

Estou usando o ACBrNFSeDANFSeRL1 tem a opção Cancelada, mas não tem a opção marca dagua, coloquei como True a opção cancelada, não houve mudança na impressão, teria outro campo para isso ou com este componente não será possível neste momento colocar a tarja ou marca dagua informando que se trata de uma NFS-e cancelada?

12 horas atrás, Italo Giurizzato Junior disse:

Bom dia,

O motivo do cancelamento que consta na tag <MotivoCncNf> deve ser o mesmo que consta no pedido de cancelamento, correto?

Por outro lado a tag <SitNf> contem o valor 2 que pode ser um código que indica que a nota esta cancelada.

Seria interessante realizar uma outra consulta informando o protocolo de uma nota que não foi cancelada para ver o que é retornado nessas tags.

Vamos supor que seja retornado na tag <SitNf> o valor 1 e na tag <MotivoCncNf> nada, ou seja, uma string vazia. 

Podemos concluir que a tag <SitNf> contem o código da situação da nota e que se o seu valor for 2 significa que esta cancelada.

Sendo assim devemos utilizar essa informação para atualizar o banco de dados, marcando o registro dessa nota como cancelada.

Boa noite,

Esta 100% correta sua analise, consultei um protocolo de uma NFS-e normal e a tag <SitNf> é = a 1 e a tag <MotivoCncNf> vazia, desta forma é possivel ter certeza no provedor CONAM se a NFS-e esta cancelada ou não, muito obrigado mais uma vez.

  • Consultores
Postado

Bom dia,

Enviei par ao repositório uma possível correção no que se refere a impressão do DANFSE com a tarja de NFS-e Cancelada.

Antes o componente só verificava a data de cancelamento agora verifica também a propriedade Cancelada.

Favor atualizar os fontes e faça novos testes.

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

  • Membros Pro
Postado

Bom dia

Ok sua atualização deu certo, agora informando ACBrNFSe1.DANFSE.Cancelada := True a tarja de NFS-e Cancelada aparece.

Porem para que eu informe True na propriedade cancelada preciso verificar se realmente é uma NFS-e cancelada, para isso estou verificando as propriedades,

ACBrNFSe1.NotasFiscais.Items[0].NFSe.MotivoCancelamento e a Dm_Base.ACBrNFSe1.NotasFiscais.Items[0].NFSe.Situacao que estão retornando string vazia.

Isso após eu consultar o lote pelo numero de protocolo e receber o XML da NFS-e de volta normalmente onde constam as tags <SitNf>2</SitNf> (2= cancelada e 1 = normal fiz o teste consultando o protocolo de NFS-e normais que não foram canceladas) e a <MotivoCncNf>lancamento digitado errado</MotivoCncNf>

Em que propriedade do componente exatamente eu consigo ler estas duas tags para de fato verificar se uma NFS-e cancelada ou não? Segue o XML em anexo da lista de retorno e o da NFS-e.

FFF7FD0A35079E7355B0-lista-nfse.xml 3521013807413200013056000000000000001-nfse.xml

  • Membros Pro
Postado

Bom dia,

Atualizei os fontes, realizei novos testes e a propriedade Dm_Base.ACBrNFSe1.NotasFiscais.Items[0].NFSe.Situacao agora sim esta disponibilizando a informação da tag <SitNf>2</SitNf> corretamente.

Ja a propriedade ACBrNFSe1.NotasFiscais.Items[0].NFSe.MotivoCancelamento continua vazia mesmo havendo a tag <MotivoCncNf>lancamento digitado errado</MotivoCncNf> no XML da nota de retorno e tambem no XML da lista.

Segue em anexo os XMLs dos novos testes realizados hoje.

3521013807413200013056000000000000001-nfse.xml FFF7FD0A35079E7355B0-lista-nfse.xml

  • Membros Pro
Postado

Boa tarde,

Ainda dentro deste tema surgiu uma nova questão aqui, para cancelar a NFS-e junto ao CONAM faço assim:

ACBrNFSe1.ConsultarLoteRps('', Protocolo) recebo o XML da NFS-e confiro se já se trata de uma NFS-e cancelada, caso não esteja cancelada então chamo o método:

ACBrNFSe1.WebServices.CancelaNFSe('1',ACBrNFSe1.NotasFiscais.Items[0].NFSe.Numero, Motivo, '1');

Dai a NFS-e não é cancelada e recebo a informação dizendo que a "serie da nota fiscal precisa ser informada" mas no XML que recebi de retorno consta a tag <SerNf>NFE</SerNf> normalmente no caso a serie é "NFE"

Então fiz da seguinte maneira:

ACBrNFSe1.ConsultarLoteRps('', Protocolo)

if Provedor = 'CONAM' then  ACBrNFSe1.NotasFiscais.Items[0].NFSe.SeriePrestacao := 'NFE';

ACBrNFSe1.WebServices.CancelaNFSe('1',ACBrNFSe1.NotasFiscais.Items[0].NFSe.Numero, Motivo, '1');

Desta maneira a NFS-e é cancelada com sucesso, acredito que o problema esteja em após a consulta do protocolo o componente não esta carregando a tag <SerNf>NFE</SerNf> para a devida propriedade do componente no caso a propriedade SeriePrestacao.

Desde já agradeço.

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