Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Boa noite,

Fiz alguns testes de homologação com o Betha e BHISS, e percebi que em alguns casos o XML era retornado com acentuação, causando assim problemas para cancelar e imprimir a NFSe. 

Inclusive conversei com o Italo, o qual foi quem identificou o problema nos XML que lhe passei.

Para resolver o problema, alterei a AcbrDFe.pas, alterando a function TACBrDFe.Gravar, inclui uma rotina da Trunk, para retirar os acentos do XML de retorno antes de gravar.

//---------------------------------------------------------------------------------------------------------------------------

function TACBrDFe.Gravar(NomeArquivo: String; ConteudoXML: String;
  aPath: String; ConteudoEhUTF8: Boolean): Boolean;
var
  UTF8Str, SoNome, SoPath: String;
  i : Integer;
const
  COM_ACENTO = 'àâêôûãõáéíóúçüîäëïöèìòùÀÂÊÔÛÃÕÁÉÍÓÚÇÜÎÄËÏÖÈÌÒÙ';
  SEM_ACENTO = 'aaeouaoaeioucuiaeioeiouAAEOUAOAEIOUCUIAEIOEIOU';
begin
  for i := 1 to Length(ConteudoXML) do
   begin
     if Pos(ConteudoXML, COM_ACENTO) <> 0 then
       ConteudoXML := AnsiChar(SEM_ACENTO[Pos(ConteudoXML, COM_ACENTO)]);
     if not (ConteudoXML in [' '..'~']) then
       ConteudoXML := ' ';
   end;

//---------------------------------------------------------------------------------------------------------------------------

Feito isso, realizei novos testes, e funcionou normalmente.

Não sei se ali era o lugar ideal, foi funcionou. 

Segue o fonte, caso queria anexar no repositório.

 

Dercide.

ACBrDFe.rar

  • Moderadores
Postado (editado)

Hoje fui atualizar minha rotina de emissão de nfs-e e reparei nessa questão também. A sugestão do Dercide é muito boa.

Entretanto vamos aguardar uma posição do Ítalo. Até porque os dados da nfs-e já vem assim dos webservices e, alterar esses dados, mesmo que seja pra corrigir acentuação, pode invalidar a assinatura ao meu ver.

Editado por Cleber

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

Postado

Eu fiz dessa maneira, pois estou com um problema serio no meu note com Windows 10,,,,não consigo enviar nada,,,,estou com problemas nos certificados,,,,quando instalo eles funcionam a primeira vez,,,,ai faço uma consulta ou envio uma NFe,,,ou NFSe,,,,,e pronto já não funciona mais.

Com isso não consegui debugar a fundo,,,e procurar um local melhorar para fazer a alteração adequada para trocar a acentuação.

No meus testes, que verifiquei que os campos que retornam acentuação são os seguintes :

BHISS => RazaoSocial ( provavelmente foi cadastrado no site com acentução)

                 <OutrasInformacoes>NFS-e gerada em ambiente de teste. NÃO TEM VALOR JURÍDICO NEM FISCAL.</OutrasInformacoes>

Betha==> <Discriminacao>Descrição: 1 )....................</Discriminacao>

                 <Endereco>Ambiente de testes não requer endereço</Endereco>

 

No caso da Betha, a palavra Descrição veio no retorno do XML, ela não foi enviada junto com a Descrição

Se alguém souber quais as rotinas que pegam os campos de retorno, posso dar uma olhada e tentar outra solução, pois no momento não estou conseguindo Debugar nada por causa dos certificados.

 

Dercide.

 

 

 

  • Consultores
Postado

Bom dia a todos,

Fiz uma alteração na rotina que extrai o XML do retorno do web services.

Caso a propriedade de configuração RetirarAcentos estiver com o valor True os acentos serão removidos.

Favor atualizar os fontes e realizar novos testes.

  • Curtir 1
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

  • Moderadores
Postado

Perfeito Italo!

Testei as rotinas de emissão, cancelamento e consulta.

Só uma observacao com relação a impressão da DANFS-e. No PDF gerado ta sendo acrescentado o numero "1" ao final. Não seria interessante retira-lo?

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

  • Consultores
Postado

Bom dia Cleber,

Como os DA agora é em Fortes ou Fast não tenho condições de fazer as devidas correções por não ter conhecimento sobre esses Report.

Esse "1" que aparece é só ao gerar o PDF ou na impressão também?

Em qual Report isso esta ocorrendo?

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

  • Moderadores
Postado
22 minutos atrás, Italo Jurisato Junior disse:

Boa tarde Cleber,

Esse "1" que aparece no final do nome, não é a série?

É isso mesmo Ítalo. Desconsidere minha observação.

 

Grato.

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

  • 3 meses depois ...
  • Membros Pro
Postado

Ola Italo fiz a atualização dos componentes setei a propriedade remove acentuação para True só que no provedor betha continua salvando o xml descrição com a acentuação "ç ~" há  algum outro procedimento no qual tenha  de fazer.

 

119-nfse.xml

  • Consultores
Postado

Bom dia,

O componente Gera o XML do RPS e neste com a propriedade ativada acredito que não é para conter vogais acentuadas e cedilha.

Por outro lado o XML da NFS-e (o que você anexou) é gerado pelo provedor, o componente apenas o obtêm pelo retorno e salva em disco.

Sendo assim a propriedade não atua nesse processo.

Sendo assim, se o provedor gerar o XML da NFS-e com palavras acentuadas, estas vão estar presentes e o componente não vai altera-las.

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

  • 2 meses depois ...
  • Membros Pro
Postado

Ola Ítalo. Sobre o tópico anterior estive vendo que os sistemas que estão executando com os componentes anteriores a instalação do truck dois estão gerando o xml sem acentuação, e os que estão já executando com o trunk2 estão gerando com acentuação, na duvida removi todos os componentes e instalei novamente mas o problema persiste, gostaria de saber se existe alguma procedimento que possa estar fazendo para solucionar este problema.

Segue em anexo os dois xml sendo que o 64-nfse gerado pelo sistema anterior do trunk2

64-nfse.xml

121-nfse.xml

  • Membros Pro
Postado

Ola, Ítalo estou usando o comando enviar, talvez esteja usando o procedimento errado.

         vAux       :=qrnota.fieldbyname('numero').AsString;   // Numero RPS
         vNumLote   :=qrnota.fieldbyname('numero').AsString;   // Numero Lote

         ACBrNFSe.NotasFiscais.Clear;
         AlimentaComponente(vAux);
         ACBrNFSe.Configuracoes.Geral.RetirarAcentos :=True;
         CBrNFSe.Enviar(vNumLote);
         frmmodulo.Conexao.StartTransaction;
         qryAuxiliar.Close;
         qryAuxiliar.SQL.Clear;
         qryAuxiliar.SQL.Add('update nf_servicos set  nota =:nota, ');
         qryAuxiliar.SQL.Add('cod_verificacao =:codV, lote_rps =:lRps, protocologo =:prot, sit =:sit,email =:email ');
         qryAuxiliar.SQL.Add('where codigo =:cod');
         qryAuxiliar.ParamByName('cod').AsInteger       :=qrnota.fieldbyname('codigo').AsInteger;
         qryAuxiliar.ParamByName('codV').AsString       :=ACBrNFSe.NotasFiscais.Items[0].NFSe.CodigoVerificacao;
         qryAuxiliar.ParamByName('lRps').AsString       :=ACBrNFSe.NotasFiscais.Items[0].NFSe.IdentificacaoRps.Numero;
         qryAuxiliar.ParamByName('prot').AsString       :=ACBrNFSe.NotasFiscais.Items[0].NFSe.Protocolo;
         qryAuxiliar.ParamByName('nota').AsString       :=ACBrNFSe.NotasFiscais.Items[0].NFSe.Numero;
         qryAuxiliar.ParamByName('sit').AsInteger          :=6;
         qryAuxiliar.ParamByName('email').AsInteger     :=6;
         qryAuxiliar.ExecSQL;
         frmmodulo.Conexao.Commit;

 

  • Consultores
Postado

Boa tarde,

A questão não é o Enviar e sim o tratamento feito no XML de retorno seja qual ele for.

No caso do componente ACBrNFSe, todos os métodos possui uma função chamada TratarResposta e todas chamam a função ExtrairRetorno.

E como já dito na função ExtrairRetorno é verificado o valor da propriedade RetirarAcentos, caso seja True é trocado as vogais acentuadas por não acentuadas e o cedilha pela letra "c".

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

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