Ir para conteúdo
  • Cadastre-se

Lucas Fernando Matias

Membros
  • Total de ítens

    8
  • Registro em

  • Última visita

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

Lucas Fernando Matias's Achievements

Rookie

Rookie (2/14)

  • First Post
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

1

Reputação

  1. Confirmando, assim como mencionei acima, os erros realmente pararam após a alteração descrita acima, já faz mais de uma semana, gerando diariamente gerando diversos boletos. Porém reconheço que foi uma forma arcaica, a forma como eu fiz, mas eu precisava testar daquela maneira, ela não arredonda, então vou seguir o conselho da Juliana Tamizou, estou iniciando os testes utilizando a RoundABNT(). Obrigado Juliana Tamizou.
  2. No demo não deu o erro aqui no meu PC, só dá na máquina do Cliente, não dá em todos os boletos, é hora sim e hora não... Eu estive analisando ontem a montagem do código de barras do boleto function TACBrBancoSantander.MontarCodigoBarras ( const ACBrTitulo: TACBrTitulo) : String;. OBS: No meu caso é o Santander. Nesta linha, reparei que dependendo das configurações do sistema operacional ele não retorna o valor com 2 casas decimais, quando o final é zero. IntToStrZero(Round(ACBrTitulo.ValorDocumento*100),10) + //Valor nominal Então modifiquei para que não houvesse nenhuma alteração no valor, devido a multiplicação por 100, formatei para ser apresentado com 2 casas decimais e removi todos os pontos e virgulas do valor. IntToStrZero( StrToInt64( StringReplace( StringReplace( FormatFloat('0.00', ACBrTitulo.ValorDocumento), '.', '', [rfReplaceAll] ), ',', '', [rfReplaceAll] ) ), 10) + //Valor nominal Está tudo funcionando normal depois desta alteração, 100% correto, hoje todos os boletos gerados foram correto, porém gosto de deixar mais tempo em testes, vou confirmar semana que vem se está tudo correndo bem, mas já adianto que pela quantidade de boletos que já emitimos hoje, com certeza está funcionando, antes o erro aparecia aleatoriamente com uma quantidade menor de emissões...
  3. No demo não deu o erro aqui no meu PC, só dá na máquina do Cliente, não dá em todos os boletos, é hora sim e hora não... Eu estive analisando ontem a montagem do código de barras do boleto function TACBrBancoSantander.MontarCodigoBarras ( const ACBrTitulo: TACBrTitulo) : String;. Nesta linha, reparei que dependendo das configurações do sistema operacional ele não retorna o valor com 2 casas decimais. IntToStrZero(Round(ACBrTitulo.ValorDocumento*100),10) + //Valor nominal então modifiquei para que não houvesse nenhuma alteração no valor, removia multiplicação por 100, formatei para ser apresentado com 2 casas decimais e removi todos os pontos e virgulas do valor. IntToStrZero( StrToInt64( StringReplace( StringReplace( FormatFloat('0.00', ACBrTitulo.ValorDocumento), '.', '', [rfReplaceAll] ), ',', '', [rfReplaceAll] ) ), 10) + //Valor nominal Está tudo funcionando normal depois desta alteração, 100% correto, porém gosto de deixar mais tempo em testes, vou confirmar semana que vem se está tudo correndo bem, mas já adianto que pela quantidade de boletos que já emitimos hoje, com certeza está funcionando. OBS: No meu caso é o Santander.
  4. Estou com o mesmo problema, obteve alguma solução ? Descobriu algo ? Alguns saem a diferença outros não e uma estou tratando todas as minhas parcelas para sempre conter valores com 2 casas decimais, nunca passo valor com mais de 2 casas para o componente, exemplo 1578,55 Portando não trata-se de arredondamento exemplo 1578,558 Sempre do um clear no componente (ACBrBoleto1.ListadeBoletos.Clear) antes de gerar o boleto.
  5. É pessoal... problema novamente. Ficou alguns dias bonitinho e apareceu novamente o problema da diferença de 0,01, revendo tudo. Ocorre que essa imagem é o espelho do que acontece aqui, essa imagem é do amigo que abriu o tópico, farnetani. Novo teste, agora estou retirando os dados que eu passava zerados como por exemplo: // PercentualMulta := 0; // ValorAbatimento := 0; // ValorMoraJuros := 0; // ValorDesconto := 0; // ValorAbatimento := 0; // DataDesconto := 0; // DataAbatimento := 0; Vou continuar minha busca, se alguém estiver com o mesmo problema estou a disposição para conversar a respeito.
  6. Pessoal, depois de dar muita cabeçada resolvi o problema. Antes eu estava utilizando o componente: ACBrBoletoFCFortes1 Agora utilizo o componente: ACBrBoletoFCFR1 Neste componente novo, eu indico o arquivo .FR3 e tudo está correndo bem, no componente anterior (ACBrBoletoFCFortes1), as linhas no momento da geração do PDF saiam em determinadas vezes tortas, e é geralmente quando acontecia algo assim que dava a diferença de 0,01 Cent. Não me aprofundei nos fontes do ACBR, mas foi isso que reparei aqui e que resolveu meu problema. Agradeço a todos os membros do ACBR e demais participantes do fórum por toda ajuda prestada. Muito obrigado
  7. Exato, em um primeiro momento achei que fosse exatamente este ponto flutuante, então modifiquei toda a rotina a fim de sempre trabalhar com 2 casas, tanto no banco como no Delphi, mas ainda assim quando achei que tinha solucionado o problema me ligaram da empresa com o problema em evidência mais uma vez. Acabo de subir uma atualização, dando um CLEAR na NFe, que foi a única coisa que não fiz ainda. Estou de olho aqui para ver se encontro, se tudo correr bem eu atualizo o post com o que eu fiz bem detalhado com código e tudo mais, para que vocês vejam e possivelmente terem alguma ideia. OBS: Meu banco é o Santander
  8. Farnetani, bom dia. Você descobriu do que se trata este problema ? É que eu estou com o mesmo problema, estou com os fontes atualizados pelo Trunk2. Em um primeiro momento achei que seria algum problema de arredondamento, então antes de passar qualquer informação ao boleto já me certifiquei que estou utilizando sempre 02 casas decimais, exatos 2 casas, já passo arredondado e mesmo assim o problema persiste, mas assim como no seu caso, as vezes aparece as vezes não aparece. Se achou a solução ou a fonte do problema e puder compartilhar eu agradeço.
×
×
  • 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.