Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Boa tarde!

Estou com uma situação que acontece no provedor Abaco. Ao gerar o RPS, não é informado a tag de observações, até por que o provedor não aceita essa informações no envio do RPS. O problema acontece no retorno do xml da NFSe, pois no retorno vêm com o campo de observação preenchido, mas com a descrição do serviço, então ao imprimir a NFSe, o campo de observação fica com o nome do serviço. O ideial seria pegar a observação que foi preenchida no sistema, então foi configurado para preencher no campo de observações do componente (OutrasInformacaoesImp), mas como ele da prioridade a observação que está no xml, não resolve. 

Imagem abaixo mostra exatamente o que acontece, no RPS temos apenas o nome do serviço, no retorno do provedor, vêm o campo de OutrasInformações com a descrição do serviço, o que ao meu ver não faria sentido, mas o provedor funciona assim.

image.thumb.png.68b5cd84a3180e07c87cc1c8009a7744.png

Minha questão diante a situação é a seguinte, têm como alterar esta parte do fonte para que sempre de prioridade ao que passar na propriedade do componente OutrasInformacaoesImp e não ao que está no xml?

image.thumb.png.1d307b97c351a595b22b0b449f393bda.png

Então se tiver passado para o componente alguma observação, considera esta observação, se não, ai sim busca do xml. Isso iria resolver para outras situações também, aonde provedores não retornam a observação da forma ideial para o emissor.

  • Curtir 1
  • Consultores
Postado
26 minutos atrás, Gabriel Rogelin disse:

Boa tarde!

Estou com uma situação que acontece no provedor Abaco. Ao gerar o RPS, não é informado a tag de observações, até por que o provedor não aceita essa informações no envio do RPS. O problema acontece no retorno do xml da NFSe, pois no retorno vêm com o campo de observação preenchido, mas com a descrição do serviço, então ao imprimir a NFSe, o campo de observação fica com o nome do serviço. O ideial seria pegar a observação que foi preenchida no sistema, então foi configurado para preencher no campo de observações do componente (OutrasInformacaoesImp), mas como ele da prioridade a observação que está no xml, não resolve. 

Imagem abaixo mostra exatamente o que acontece, no RPS temos apenas o nome do serviço, no retorno do provedor, vêm o campo de OutrasInformações com a descrição do serviço, o que ao meu ver não faria sentido, mas o provedor funciona assim.

image.thumb.png.68b5cd84a3180e07c87cc1c8009a7744.png

Minha questão diante a situação é a seguinte, têm como alterar esta parte do fonte para que sempre de prioridade ao que passar na propriedade do componente OutrasInformacaoesImp e não ao que está no xml?

image.thumb.png.1d307b97c351a595b22b0b449f393bda.png

Então se tiver passado para o componente alguma observação, considera esta observação, se não, ai sim busca do xml. Isso iria resolver para outras situações também, aonde provedores não retornam a observação da forma ideial para o emissor.

Bom dia Gabriel!
Caso tenha feito a alteração nos fontes, por favor,  anexe a(s) unit(s) alterada(s) para que possamos analisar, validar e incluir no SVN.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Consultores
Postado

Boa tarde Gabriel,

Acredito que você esteja fazendo alguma confusão.

1. No XML do Rps temos a seguinte mensagem: Servico Teste NFSe Abaco na tag Discriminacao, até ai tudo Ok.

2. No XML da NFS-e gerado e retornado pelo WebService do provedor Abaco, temos a mensagem acima informada duas vezes, na tag: OutrasInformacoes e Discriminacao. (não deveria estar dessa forma)

O fragmento de código que você anexou em seguida que repito abaixo:

  if fpNFSe.OutrasInformacoes <> '' then
    rlmDadosAdicionais.Lines.Add(StringReplace(fpNFSe.OutrasInformacoes, FQuebradeLinha, #13#10, [rfReplaceAll,rfIgnoreCase]))
  else
    if fpDANFSe.OutrasInformacaoesImp <> '' then
      rlmDadosAdicionais.Lines.Add(StringReplace(fpDANFSe.OutrasInformacaoesImp, FQuebradeLinha, #13#10, [rfReplaceAll,rfIgnoreCase]));

Note que no primeiro IF temos: fpNFSe.OutrasInformacoes, aqui ele esta verificando se a tag OutrasInformacoes esta preenchida, caso não esteja ele cai no else e testa a condição do segundo IF onde temos: fpDANFSe.OutrasInformacaoesImp, aqui ele esta verificando se a propriedade de configuração do DANFSE OutrasInformacaoesImp esta preenchida.

Na sua aplicação você está preenchendo essa propriedade de configuração com alguma coisa?

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

Postado

Boa tarde Italo, pode ser que não tenha explicado muito bem.

O código do Acbr está exatamente conforme falou, ele sempre vai priorizar o que está no xml da NFSe, caso não tenha informações no campo OutrasInformacoes do xml da NFSe, vai pegar do que estou passando na propriedade OutrasInformacaoesImp do componente. O funcionamento é esse. Mas no provedor Abaco, conforme anexei imagem, eles retornam no campo de OutrasInformacoes a informação que é enviada na descrição do serviço, ou seja, quando eu imprimir essa NFSe, o componente vai dar prioridade a observação que veio do provedor, que é a descrição do serviço e não o que o cliente digitou no campo de observações dentro do sistema. Estou passando na propriedade OutrasInformacaoesImp as informações que o cliente digita no lançamento da nota, só que não muda nada, continua pegando do que está no Xml do provedor,  o provedor não deveria retornar no campo de  OutrasInformacoes o nome do serviço que mandei no RPS.

Considerando a situação, o que eu tive que fazer foi inverter o código, para dar primeiro prioridade ao que está no componente, que estou passando manual na propriedade OutrasInformacaoesImp e caso não passe nada, aí sim buscar do xml.

Em resumo, a ideia é priorizar o que informar manualmente, se não informar nada, aí pega do xml da NFSe. Isso resolveria a situação. 

 

Ex: No RPS é gerado o campo de descrição do serviço normal na tag Discriminacao, que é Servico Teste NFSe Abaco

O provedor retorna o xml da NFSe com a tag OutrasInformacoes preenchida com Servico Teste NFSe Abaco

Faço a impressão da nota e nas observações mostra o nome do serviço: Servico Teste NFSe Abaco, pois o componente está considerando o que está no xml da NFSe, e não o que passei em OutrasInformacaoesImp

 

  • Solution
Postado

Segue a unit que fiz a alteração, só foi alterado essa parte da busca da observação da nota, para que se preencher o campo de OutrasInformacaoesImp a prioridade seja deste campo e não do xml da NFSe.  

Caso não for possível atender desta forma, tudo bem, vou alterar a cada atualização do Acbr, mas penso que tornando a prioridade de impressão da observação do que é passado manual na aplicação é melhor para os usuários, pois não depende do que vêm do Xml do provedor, que no caso do Abaco não é interessante ao usuário. ACBrNFSeXDANFSeRLRetrato.pas

  • Consultores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

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

The popup will be closed in 10 segundos...