Jump to content

Arquivo de Remessa com valor diferente do informado


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

Recommended Posts

Olá Amigos, 

Gerei um boleto para o Banco Bradesco (237), no valor de R$ 151,03; emiti o boleto, PDF em anexo, valor aparece correto. Logo em seguida gerei o arquivo de remessa, o valor no arquivo, aparece R$ 151,04; vide o arquivo de remessa em anexo, segundo título. 

A minha dúvida: há algum tipo de arredondamento diferente entre a impressão/PDF e a geração do arquivo de remessa?  

Desde já muito grato.

BOL_12480263000124_COCICAL _117445_001.pdf cb050202.rem

João Duarte de Azevedo
Utilsoft Soluções em Gestão Empresarial

Link to comment
Share on other sites

Obrigado Antonio. 

Percebi que na minha tabela, o valor está com 4 decimais (153,0301) e foi passado para o componente como .AsFloat, sem ajuste de decimal; no boleto impresso o valor ficou (153,03) e no arquivo de remessa o valor ficou (153,04). 

João Duarte de Azevedo
Utilsoft Soluções em Gestão Empresarial

Link to comment
Share on other sites

Boa tarde, João!

 

Conosco este caso acontece raramente, mais para resolver experimente alterar a unit ACBrBancoBradesco e trocar o Round pelo RoundABNT. Mesmo que aparente não precise pois no setValorDocumento da unit ACBrBoleto já foi ajustado o arredondamento com RoundABNT, acredito que a unit Round bagunce o arredondamento depois de setado o valor.

 

Olavo

Link to comment
Share on other sites

  • Consultores
14 horas atrás, OlavoJr disse:

Boa tarde, João!

 

Conosco este caso acontece raramente, mais para resolver experimente alterar a unit ACBrBancoBradesco e trocar o Round pelo RoundABNT. Mesmo que aparente não precise pois no setValorDocumento da unit ACBrBoleto já foi ajustado o arredondamento com RoundABNT, acredito que a unit Round bagunce o arredondamento depois de setado o valor.

 

Olavo

Por favor se tem a solução anexa o fonte para que possamos corrigir

Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

Link to comment
Share on other sites

  • Solution
15 horas atrás, OlavoJr disse:

Boa tarde, João!

 

Conosco este caso acontece raramente, mais para resolver experimente alterar a unit ACBrBancoBradesco e trocar o Round pelo RoundABNT. Mesmo que aparente não precise pois no setValorDocumento da unit ACBrBoleto já foi ajustado o arredondamento com RoundABNT, acredito que a unit Round bagunce o arredondamento depois de setado o valor.

 

Olavo

Voce não pode alterar a unit para gerar o valor correto, vc precisa gravar ele certo, pois bancos não aceitam dados com mais de 4 decimais, no nosso país, são apenas 2 decimais, tanto, que ele vai na linha digitavel e no codigo de barras.

Penso que você precisa ajustar seu divisor de parcelas do sistema, para poder gravar isso certo, o componente é feito pra processar informações, não não pode corrigir, pois um local ou outro vai ocorrer esse problema.  @jdazevedo prefira trabalhar com valores no formato AsCurrency, e claro, acertar a quebra de caixa em alguma parcela, não deixando para o banco de dados resolver.

Como sugestão, eu lanço a quebra de caixa na 1a parcela, cabe do programador decidir. Ex: 100,00 de 3x, se deixar para o banco de dados, vai ficar 33,3333333333333...

 

17 horas atrás, jdazevedo disse:

Obrigado Antonio. 

Percebi que na minha tabela, o valor está com 4 decimais (153,0301) e foi passado para o componente como .AsFloat, sem ajuste de decimal; no boleto impresso o valor ficou (153,03) e no arquivo de remessa o valor ficou (153,04). 

Isso tem influencia no tipo de campo que você usa para armazenar valores, o decimal (15,2), era danado para acontecer isso, assim como aquele double precision. Eu particularmente, uso o numeric(18,2), fazendo o arredondamento dentro do programa.

  • Like 1
Link to comment
Share on other sites

Obrigado Antonio, mais uma vez. Vou seguir a sua sugestão e ajustar a quantidade de decimais do valor na origem; e também vou passar a trabalhar com o formato .AsCurrency; hoje trabalho com Double.   

João Duarte de Azevedo
Utilsoft Soluções em Gestão Empresarial

Link to comment
Share on other sites

3 horas atrás, Juliomar Marchetti disse:

Por favor se tem a solução anexa o fonte para que possamos corrigir

@Juliomar Marchetti Eu até já fiz isso em outro post, mais para gerar o problema só acontece em determinados clientes e com certos usuários, acho que tem a ver com o windows/configuração da máquina, ou seja, acontece "muito raramente".

 

A nossa proposta é trocar o Round() pelo RoundABNT() em todas as units do Boleto, visto que no setValorDocumento  vocês mesmo usam o RoubdABNT() mais como o problema só acontece "muito raramente" o @José M. S. Junior analisou o outro post e acho que ficou meio com pé atrás aceitar a correção e afetar os demais usuários de alguma forma.

 

Se der para o @jdazevedo fazer a troca do tipo de campo conforme foi orientado e ver se resolve e postar aqui o resultado aqui, caso persista o problema, ai sim volto a insistir na troca da função, senão permaneço com a minha solução só nos meus fontes mesmo, devido a não conseguir nem mesmo demonstrar o problema devido ao "muito raramente".

  • Like 1
Link to comment
Share on other sites

  • Consultores

Bom caso queira anexar a alterações basta anexar.

 

Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

Link to comment
Share on other sites

  • 2 weeks later...
Em 09/02/2021 at 11:43, OlavoJr disse:

Se der para o @jdazevedo fazer a troca do tipo de campo conforme foi orientado e ver se resolve e postar aqui o resultado aqui, caso persista o problema, ai sim volto a insistir na troca da função, senão permaneço com a minha solução só nos meus fontes mesmo, devido a não conseguir nem mesmo demonstrar o problema devido ao "muito raramente".

Oi Olavo, ainda não troquei os tipos de dados, na minha base de dados; para dar uma solução imediata, apenas ajustei os valores para duas decimais antes de passar para o componente; por enquanto, não ocorreram mais diferenças. Qualquer outra ocorrência postarei aqui. 

  • Like 2

João Duarte de Azevedo
Utilsoft Soluções em Gestão Empresarial

Link to comment
Share on other sites

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • 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.