Ir para conteúdo
  • Cadastre-se

dev botao

Erro Cancelar NFSe Trunk2 Betha


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

Recommended Posts

  • Consultores

Luiz,

Não detectei nada de errado no XML de pedido de cancelamento.

O CNPJ do certificado tem o mesmo final do CNPJ informado, ou seja: .....000175?

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

  • Consultores

Luiz,

Anexa o pedido de cancelamento feito com a aplicação antiga que usa o componente do Trunk e o pedido de cancelamento gerado pela nova versão.

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

  • 2 semanas depois ...

Olá, acabei de testar, quando tento cancelar uma NFS-e na BETHA, retorna "Erro de validação de script". Pelo que vi, acredito que o problema não esteja no pedido de cancelamento (xxx.ped-can.xml) pois ele chega a ser processado pelo webservice da betha, de forma que ele retorna o arquivo xxx-can.xml.

No meu teste, eu tentei cancelar uma nota fora do prazo, no arquivo de retorno (xxx-can.xml), percebi que na tag código, veio um descrição ao invés de um código numérico, talvez o componente não esteja conseguindo parsear corretamente o arquivo de retorno, gerando esse erro de script.

Segue o arquivo de retorno em anexo.

708-can.xml

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Marco,

Favor entrar em contato com a Betha pois no retorno temos 3 TAGs: Código, Mensagem e Correção.

Na TAG Código estão concatenando o código do erro com a correção.

Abra o arquivo com um bloco de notas e vai notar o que eu disse.

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

Boa tarde Italo,

eu percebi isso, também verifiquei que a má formação do retorno acontece apenas quando há algum erro no cancelamento, por incrível que pareça quando o cancelamento é homologado o retorno é parseado com sucesso e não há erros.

Quanto ao suporte da betha, apenas as prefeituras, clientes diretos tem acesso ao suporte, os desenvolvedores tem no máximo acesso ao fórum da ferramenta, que não resolve quase nada. Não temos muito o que fazer indo por esse caminho, mesmo assim vou tentar reportar isso.

Por enquanto vou tratar na minha aplicação quando houver erro de cancelamento.

Outra coisa, percebi que o no ambiente de homologação da betha, quando a nfse é processada, no seu xml retornado são omitidas informações relacionadas ao prestador, portando quando fazemos um LoadFromFile no cancelamento, não são carregadas informações importantes como código do município, inscrição municipal do prestador, de forma que o pedido de cancelamento é formado sem essas informações. 

A solução que achei pra testar em homologação foi após o LoadFromFile, escrever diretamente no objeto as informações que faltam, segue um exemplo:

with ACBrNFSe1.NotasFiscais.Add do
  begin
    NFSe.Numero                                                    := nfseNumero;
    NFSe.IdentificacaoRps.Numero                                   := rpsNumero;
    NFSe.IdentificacaoRps.Serie                                    := serie;
    NFSe.IdentificacaoRps.Tipo                                     := trRPS;
    NFSe.PrestadorServico.IdentificacaoPrestador.Cnpj              := dm.cnpj;
    NFSe.PrestadorServico.IdentificacaoPrestador.InscricaoMunicipal:= dm.im;
    NFSe.PrestadorServico.Endereco.CodigoMunicipio                 := dm.cMunicipio;
    NFSe.MotivoCancelamento                                        := sMotivo;
  end;

espero que essas informações possam ser úteis a alguém,

obrigado.

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Estou  com o mesmo problema, não consigo cancelar (Congonhas-MG - Betha)

Método..... : Cancelar NFS-e
Código Erro : E42
Mensagem... : Código do município da prestação do serviço inválido.
Correção... : Informe o código do município onde foi prestado o serviço, conforme Tabela de Municípios do IBGE.
Provedor... : Betha
Método..... : Cancelar NFS-e
Código Erro :
Mensagem... :
Correção... :
Provedor... : Betha

5413-nfse.xml

Link para o comentário
Compartilhar em outros sites

1 hora atrás, edulamy disse:

Estou  com o mesmo problema, não consigo cancelar (Congonhas-MG - Betha)

Método..... : Cancelar NFS-e
Código Erro : E42
Mensagem... : Código do município da prestação do serviço inválido.
Correção... : Informe o código do município onde foi prestado o serviço, conforme Tabela de Municípios do IBGE.
Provedor... : Betha
Método..... : Cancelar NFS-e
Código Erro :
Mensagem... :
Correção... :
Provedor... : Betha

5413-nfse.xml

Para resolver meu problema de cancelamento foi necessário informar o parâmetro Servico.CodigoMunicipio, fiz o processo de cancelamento sem carregar o XML da NF, somente informando os parâmetros abaixo:

with ACBrNFSe1.NotasFiscais.Add do
  begin
    NFSe.Numero                                                    := nfseNumero;
    NFSe.IdentificacaoRps.Numero                                   := rpsNumero;
    NFSe.IdentificacaoRps.Serie                                    := serie;
    NFSe.IdentificacaoRps.Tipo                                     := trRPS;
    NFSe.PrestadorServico.IdentificacaoPrestador.Cnpj              := dm.cnpj;
    NFSe.PrestadorServico.IdentificacaoPrestador.InscricaoMunicipal:= dm.im;
    NFSe.PrestadorServico.Endereco.CodigoMunicipio                 := dm.cMunicipio;
    NFSe.MotivoCancelamento                                        := sMotivo;

    NFSe.Servico.CodigoMunicipio                                   := codigoMunicipio; // codigo referente ao municipio de prestação
  end;

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Em 07/04/2016 at 16:34, marcoanjos disse:

No ambiente de produção cancela, acabei de testar. Em homologação não funciona, a Betha sabe do problema há tempos e não arruma, o componente está OK.

Alguma ideia do que posso estar fazendo de errado?

Link para o comentário
Compartilhar em outros sites

Vou te mandar um trecho de código que pode te ajudar a debugar, descobrir o problema, mas vai ter que testar em produção.

Verifique também como estão sendo gerados os arquivos xxx-ped-can.xml e xxx-can.xml.

Talvez o problema esteja na configuração do componente, verifique se todos os parâmetros estão sendo preenchidos conforme o programa exemplo do componente.

Tenha certeza que o componente esteja atualizado, faça um rebuild na sua aplicação após atualizar, uma certa vez pra funcionar tive que remover o componente do form e adiciona-lo novamente.

Segue o fragmento de código:

var msg:string;

ACBrNFSe1.NotasFiscais.Clear;
ACBrNFSe1.NotasFiscais.LoadFromFile(caminho_do_arquivo_xxx-nfse.xml);

try

// Codigo de Cancelamento
// 1 - Erro de emissão
// 2 - Serviço não concluido
// 3 - RPS Cancelado na Emissão
 
resultado:=ACBrNFSe1.CancelarNFSe(IntToStr(1));

if resultado then
  begin
    with dm.ZQuery do
      begin
      msg := 'Cancelamento Homologado'+#13+#13;
      msg := msg+'NFSe Nº '+nfse_numero+#13;
      msg := msg+'Código do Cancelamento: '+ACBrNFSe1.WebServices.CancNfse.CodigoCancelamento+#13;
      msg := msg+'Data Hora: '+FormatDateTime('dd/MM/yyyy hh:mm:ss',ACBrNFSe1.WebServices.CancNfse.DataHora);

    Messagebox(0,pchar(msg) , 'Resultado Cancelamento NFS-e:', MB_OK or MB_ICONINFORMATION);

    end;

except
on e:Exception do
      begin
      Application.MessageBox(PChar('Erro'+#13+
      'Erro: '+e.Message),'Erro',MB_ICONSTOP+MB_TASKMODAL);
      msg:=copy(ACBrNFSe1.WebServices.CancNFSe.RetWS,pos('<Mensagem>',ACBrNFSe1.WebServices.CancNFSe.RetWS)+10,(pos('</Mensagem>',ACBrNFSe1.WebServices.CancNFSe.RetWS)-pos('<Mensagem>',ACBrNFSe1.WebServices.CancNFSe.RetWS)-10));
      msg:=msg+chr(13)+copy(ACBrNFSe1.WebServices.CancNFSe.RetWS,pos('<Correcao>',ACBrNFSe1.WebServices.CancNFSe.RetWS)+10,(pos('</Correcao>',ACBrNFSe1.WebServices.CancNFSe.RetWS)-pos('<Correcao>',ACBrNFSe1.WebServices.CancNFSe.RetWS)-10));
      Application.MessageBox(pchar(msg),'Mensagem retornada',MB_OK+MB_ICONINFORMATION);
      end;
end;
 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Bom dia Italo !,

Identifiquei um problema no cancelamento de NFS-e do provedor Betha. a solução está na linha 3063 da Unit ACBrNFSeWebServices.pas, pois pelos testes que fiz aqui, quando for no ambiente de PRODUÇÃO, deverá passar o código do município do prestador e não do tomador do serviço.

segue anexo unit. para sua verificação.

Att.

Léo

 

ACBrNFSeWebServices.pas

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Léo,

Muito obrigado pela colaboração, já esta no repositório.

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

  • 2 semanas depois ...

Boa tarde Italo,

Referente ao problema que venho enfrentado com o cancelamento, após uma pesquisa no fórum da Betha (http://forum.betha.com.br/phpbb/viewtopic.php?f=93&t=20257) encontrei mais pessoas com o mesmo problema. Para resumir a história, o pessoal da Betha informou que foi criado uma configuração onde o fiscal de cada município configura se exige ou não uma assinatura válida no cancelamento (no caso de Maravilha/SC está exigindo) explicando o porque para alguns estavam funcionando normalmente.

Porem, quanto a assinatura, neste caso a gerada pelo ACBr é válida mas exitem algumas peculiaridades da Betha que também consta no mesmo tópico. Resumindo, o documento deve ser assinado sem a tag incial/final (<e:CancelarNfseEnvio...).

Então, para resolver o problema precisei fazer a alteração conforme imagem em anexo.

Qualquer dúvida estou a disposição...

ACBrNFSeWebServices.pas

1.JPG

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa noite Luiz,

Favor anexar os XML de como esta sendo gerado e como ficou a geração com a sua alteração.

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

  • Consultores

Boa tarde Luiz,

Favor fazer uma cópia dos seus fontes e baixar novamente.

Fiz um pouco diferente, favor testar e reportar se da forma que fiz funciona também ou não.

  • 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

  • 10 meses depois ...

Olá pessoal.

Retomando este tópico. Coloquei em produção hoje em um cliente que utiliza Betha e emitiu certinho, quando foi cancelar deu erro de pedido de cancelamento não assinado. Então fui no ArqIni e informei Assinar = 1 e funcionou.

Alguém sabe o porque no repositório esta vindo como padrão Assinar = 0?

Agradeço.

Editado por Caetano

Atenciosamente

Caetano

'Juntos podemos mais'

Link para o comentário
Compartilhar em outros sites

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