Jump to content

dev botao

Observação da NFSe com provedor Abaco


Go to solution Solved by Gabriel Rogelin,
  • Este tópico foi criado há 661 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

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.

  • Like 1
Link to comment
Share on other sites

  • Consultores
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 !!

Link to comment
Share on other sites

  • Consultores

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?

  • Like 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

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

  • Solution

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

Link to comment
Share on other sites

  • Consultores

Bom dia Gabriel,

Já inclui na minha lista de tarefas para avaliar, estando tudo Ok, enviarei para o SVN. TK-3466

Muito obrigado pela colaboração.

  • Like 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

Link to comment
Share on other sites

  • Consultores

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 !!

Link to comment
Share on other sites

  • Este tópico foi criado há 661 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.

The popup will be closed in 10 seconds...