Ir para conteúdo
  • Cadastre-se

dev botao

[Ajuda] Cancelamento Nfse: Erro Não Especificado


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

Recommended Posts

Olá.

 

Utilizo o servidor Ábaco (Cachoeiro de Itapemirim, ES) e, ao tentar cancelar uma NFSe gerada dentro do meu sistema, exibe a mensagem de Erro não especificado.

 

O erro ocorre na linha 1183 da unit ACBrNFSeUtil.pas.

signedKey := xmldsig.sign(dsigKey, $00000002);

O XML que estou carregando segue em anexo.

 

Achei estranho que nesse trecho de código (linhas 1536 a 1545 de ACBrNFSeWebServices.pas):

 case FProvedor of
  proSaatri: URISig := 'Cancelamento_' + TNFSeCancelarNfse(Self).FCnpj;
  proIssIntel,
  proISSNet: begin
              URISig := '';
              URIRef := 'http://www.w3.org/TR/2000/REC-xhtml1-20000126/';
             end;
 else        URISig := 'pedidoCancelamento_' + TNFSeCancelarNfse(Self).FCnpj +
                    TNFSeCancelarNfse(Self).FIM + TNFSeCancelarNfse(Self).FNumeroRPS;
 end;

As strings de CNPJ, IM e Número RPS estão vazias (não foi feita qualquer alteração no ACBr.

 

Agradeço desde já.

000000099-env-lot.xml

Link para o comentário
Compartilhar em outros sites

Olá.

 

Ítalo, o erro continua, mas eu percebi que estava tentando cancelar a NFSe com o XML errado, pois depois das alterações que você mandou, os campos CNPJ, IM e CodigoMunicipio estavam vindo em branco.

 

O xml correto segue em anexo.

 

Com este arquivo, os campos supracitados são preenchidos corretamente, mas o erro "Erro Não Especificado" continua.

 

Grato!

DB12E17E2A3DD606D28D9E0D431029C9-lista-nfse.xml

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa noite Neo,

 

Desculpe pela demora em responder.

 

Mas este arquivo em anexo trata-se do retorno da consulta, que contem uma lista de NFSe.

 

Essa lista pode ter uma ou mais notas.

 

Você deve ler o arquivo que contem o nome:

 

<numNota>-nfse.xml

 

e não o <num>-lista-nfse.xml

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Italo,

 

Estou tentando realizar o cancelamento de notas hoje, depois que atualizei os fontes, e o sistema esta enviando o NUMERO do RPS , ao inves do numero da NFSE, no XML do cancelamento, e retorna o erro E78, nota inexistente na base.

 

Estou utilizando o provedor GINFES.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde a todos,

 

Favor atualizar os fontes e testar novamente o cancelamento.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Estou utilizando a chamada   ACBrNFSe1.CancelarNFSe('1');

 

Qual a finalidade desta chamada  , o parametro carregaProps, esta como padrao = True, porem se vc nao passar por esta rotina o sistema cancela, senao ele chama o cancelamento com o numero do RPS e nao da Nota, foi o que percebi.

 

 

unit ACBrNFSeWebServices;

 

CancelarNFSe

if CarregaProps then
 begin
   Self.CancNfse.NumeroRPS       := TACBrNFSe( FACBrNFSe ).NotasFiscais.Items[0].NFSe.IdentificacaoRps.Numero;
   Self.CancNfse.CNPJ            := TACBrNFSe( FACBrNFSe ).NotasFiscais.Items[0].NFSe.PrestadorServico.IdentificacaoPrestador.Cnpj;
   Self.CancNfse.IM              := TACBrNFSe( FACBrNFSe ).NotasFiscais.Items[0].NFSe.PrestadorServico.IdentificacaoPrestador.InscricaoMunicipal;
   Self.CancNfse.CodigoMunicipio := TACBrNFSe( FACBrNFSe ).NotasFiscais.Items[0].NFSe.PrestadorServico.Endereco.CodigoMunicipio;
 end;

Editado por medreis
Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde,

 

A function ACBrNFSe1.CancelarNFSe(sCodigo) onde sCodigo é o codigo de cancelamento da NFSe.

 

Ela requer que você carregue antes o XML da NFSe.

 

Ou você pode utilizar a function abaixo, sem a necessidade de carregar o XML da NFSe:

 

   ACBrNFSe1.WebServices.CancelaNFSe(sCodigo, numNFSe, sCNPJ, sIM, sCodMun);

 

Onde temos:

 

sCodigo = código de cancelamento

numNFSe = numero da NFSe

sCNPJ = CNPJ do prestador de serviço

sIM = Inscrição Municipal do prestador de serviço

sCodMun = Codigo do Municipio do prestador de serviço

 

Todos os 5 parametros são string.
 

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Bom dia Italo,

 

Do cancelamento OK, minha duvida é para que é utilizado esta , no cancelar onde informamos apenas o codigo, dentro na rotina chama uma outra função , que tem como parametro o carregaProps, que esta como default = TRUE.

 

MInha duvida qual finalizada da função abaixo, sendo que na chamada ACBrNFSe1.CancelarNFSe(sCodigo),   não passamos o parametro CarregaProps, sendo que esta esta como TRUE na outra chamada interna, ou seja ele sempre será TRUE,

 

if CarregaProps then
 begin
   Self.CancNfse.NumeroRPS       := TACBrNFSe( FACBrNFSe ).NotasFiscais.Items[0].NFSe.IdentificacaoRps.Numero;
   Self.CancNfse.CNPJ            := TACBrNFSe( FACBrNFSe ).NotasFiscais.Items[0].NFSe.PrestadorServico.IdentificacaoPrestador.Cnpj;
   Self.CancNfse.IM              := TACBrNFSe( FACBrNFSe ).NotasFiscais.Items[0].NFSe.PrestadorServico.IdentificacaoPrestador.InscricaoMunicipal;
   Self.CancNfse.CodigoMunicipio := TACBrNFSe( FACBrNFSe ).NotasFiscais.Items[0].NFSe.PrestadorServico.Endereco.CodigoMunicipio;
 end;

 

 

Obrigado

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Medreis,

 

A chamada:

 

ACBrNFSe1.CancelarNFSe(sCodigo); pressupõe que o XML da NFSe que pretende-se cancelar foi carregado usando o LoadFromFile.

 

Note que o CancelarNFSe executa uma função definida em ACBrNFSeWebServices chamada CancelaNFSe que possui 2 parametros sendo que o segundo é CarregaProps.

 

É passado para esse parametro o valor True, indicando desta forma que o componente deve se utilizar das propriedades que foram carregadas ao Ler o XML.

 

Note também que em ACBrNFSeWebService temos uma outra função com o mesmo nome, mas esta possui muito mais parametros, parametros estes necessários para efetuar o cancelamento.

 

No meu post #11 eu apresento a sintaxe desta segunda chamada, apesar dela possuir mais parametros, não há necessidade de carregar o XML.

Note também que essa função chama a outra e passa o valor False no segundo parametro, informando que não é para carregar as propriedades, visto que elas foram informadas.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...
  • Este tópico foi criado há 3396 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.