Ir para conteúdo
  • Cadastre-se

dev botao

Erro No Cancelamento Da Nf-E Por Evento: Numero Do Protocolo Errado


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

Recommended Posts

Bom dia Pessoal,

Estou enfrentando um probleminha no envio do cancelamento de uma NF-e justamente no número do protocolo,

antes de cancelar estou carregando a NF-e, mas mesmo assim ele continua informando que existe um erro no protocolo. Minha dúvida é onde posso capturar esse número de protocolo para enviar o evento de cancelamento?

 

Segue abaixo o código:

 

	// Carregar o xml da nota fiscal

	TStringStream *arquivo = new TStringStream();
	arquivo->WriteString(obterValorCampo("nfearquivo", "nfe"));

	_nfe->NotasFiscais->Clear();
	_nfe->NotasFiscais->LoadFromStream(arquivo);

	TDateTime dhEvento =  Now();
	int NumeroLote = StrToInt(FormatDateTime("yymmdd", dhEvento));

	String chaveNfe = _nfe->NotasFiscais->Items[0]->NFe->procNFe->chNFe;
	String cnpj = _nfe->NotasFiscais->Items[0]->NFe->Emit->CNPJCPF;
//	String protocolo = 1;
	String numeroProtocolo = "";
	String xmlCancelamento = "";
	String motivoStatus = "";

	int codigoStatus = 0;

	// Criar o cancelamento

	_nfe->EventoNFe->Evento->Clear();
	_nfe->EventoNFe->idLote = NumeroLote;

	Pcnenveventonfe::TInfEventoCollectionItem* item = _nfe->EventoNFe->Evento->Add();

	item->InfEvento->chNFe = chaveNfe;
	item->InfEvento->CNPJ = cnpj;
	item->InfEvento->cOrgao = getCfg()->obterValor("codufnfe");
	item->InfEvento->dhEvento = dhEvento;
	item->InfEvento->tpEvento =  teCancelamento;
//	item->InfEvento->detEvento->nProt = _nfe->NotasFiscais->Items[0]->NFe->;
	item->InfEvento->detEvento->xJust = motivo;



	// Enviar o evento de cancelamento

	if( _nfe->EnviarEventoNFe(NumeroLote) ) {
		  TNFeEnvEvento* evento = _nfe->WebServices->EnvEvento;
		  if( evento->EventoRetorno->retEvento->Items[0]->RetInfEvento->cStat != 135 ) {
			String erro = "Ocorreu o seguinte erro ao cancelar a nota fiscal eletrônica: ";
			erro = erro +  " Código: " + IntToStr(evento->EventoRetorno->retEvento->Items[0]->RetInfEvento->cStat);
			erro = erro +  " Motivo: " + evento->EventoRetorno->retEvento->Items[0]->RetInfEvento->xMotivo;

			throw Exception(erro);
		  } else {
			  dhEvento = evento->EventoRetorno->retEvento->Items[0]->RetInfEvento->dhRegEvento;
			  numeroProtocolo = evento->EventoRetorno->retEvento->Items[0]->RetInfEvento->nProt;
			  xmlCancelamento = evento->EventoRetorno->retEvento->Items[0]->RetInfEvento->XML;
			  codigoStatus = evento->EventoRetorno->retEvento->Items[0]->RetInfEvento->cStat;
			  motivoStatus = evento->EventoRetorno->retEvento->Items[0]->RetInfEvento->xMotivo;

			if (!podeModificarCadastro()) {
				modoEdicao();
			}

			definirValorCampo("nfeautorizada", "nfe", false);
			definirValorCampo("nfevalidada", "nfe", false);
			definirValorCampo("nfeassinada", "nfe", false);
			definirValorCampo("nfecancelada", "nfe", true);
			definirValorCampo("nfearquivo", "nfe", _nfe->NotasFiscais->Items[0]->XML);
			confirmarAtualizacao();

			getAviso()->exibir("NF-e cancelada com sucesso!");

		  }
	}
	else {
		TNFeEnvEvento* evento = _nfe->WebServices->EnvEvento;
		String erro = "Ocorreram erros ao tentar efetuar o cancelamento: ";
		erro = erro + " Lote: "+ IntToStr(evento->EventoRetorno->idLote) ;
		erro = erro + " Ambiente: "  + TpAmbToStr( evento->EventoRetorno->tpAmb);
		erro = erro + " Orgão: " + IntToStr( evento->EventoRetorno->cOrgao ) ;
		erro = erro + " Status: " + IntToStr( evento->EventoRetorno->cStat ) ;
		erro = erro + " Motivo: " + evento->EventoRetorno->xMotivo ;
		throw Exception(erro);

	}
	arquivo->Free();

 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Provavelmente vc está carregando uma NFe que não contém as tags de autorização de uso da NFe. Vc pode obter o protocolo de autorização fazendo uma consulta da situação da nota.

djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.lambretinha.com.br
Link para o comentário
Compartilhar em outros sites

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