Metasis Sistemas Postado 13 Agosto Postado 13 Agosto Problema ao gerar mensagem padrão boleto na função TACBrBoleto.CalcularPercentualValor em um teste efetuado passando a variável AValorPercentual = 10 e a AValorDocumento = 5, o valor de desconto ate o vencimento deveria ser: 5 * 10% = 0,5; a função antes da ultima alteração calculava da seguinte forma: Result := (AValorPercentual / 100) * AValorDocumento; (10/100) *5 = 0,5; Resultado correto. a nova alteração esta calculando da seguinte forma: Result := (AValorPercentual / AValorDocumento) * 100 ; (10/5) * 100 = 200; Resultado incorreto. Ouve alguma alteração na forma de preencher o componente? o exemplo esta sendo preenchido com: Titulo.ValorDesconto := 10; Titulo.TipoDesconto := tdPercentualAteDataInformada;
Moderadores Juliomar Marchetti Postado 13 Agosto Moderadores Postado 13 Agosto Verificou as particularidades e se configurou corretamente o componente? Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Metasis Sistemas Postado 14 Agosto Autor Postado 14 Agosto Sim a mensagem é gerada através da função do ACBR GerarMensagemPadraoDesconto, onde considera 3 parâmetros: "ATipoDesconto" que esta preenchido com "tdPercentualAteDataInformada" "AValorDesconto" que esta preenchido com "10" "ADataDesconto" que é usada para montar a mensagem case ATipoDesconto of tdPercentualAteDataInformada, tdPercentualSobreValorNominalDiaCorrido, tdPercentualSobreValorNominalDiaUtil : begin ValorDesconto := CalcularPercentualValor(AValorDesconto, ATitulo.ValorDocumento); end; else ValorDesconto := AValorDesconto; end; a função deveria calcular o valor correspondente ao percentual, porem após a modificação da função este calculo não faz sentido. Fiz o mesmo teste para o boleto Sicredi para verificar se poderia ser alguma particularidade, e apresenta o mesmo problema cai nas mesmas funções para gerar a mensagem. o calculo que esta sendo utilizado acredito que seja para calcular quando o valor "AValorDesconto" corresponde em percentual sobre o valor "ATitulo.ValorDocumento", porem o calculo não condiz com o escopo da função que esta sendo usado onde ele deveria calcular o valor correspondente ao percentual e não o percentual correspondente ao valor sendo que todo o retorno da função se da em valor "R$" function TACBrBoleto.GerarMensagemPadraoDesconto(const ATipoDesconto : TACBrTipoDesconto; AValorDesconto : Double; ATitulo : TACBrTitulo; ADataDesconto : TDateTime = 0): String; var ValorDesconto : Double; begin case ATipoDesconto of tdPercentualAteDataInformada, tdPercentualSobreValorNominalDiaCorrido, tdPercentualSobreValorNominalDiaUtil : begin ValorDesconto := CalcularPercentualValor(AValorDesconto, ATitulo.ValorDocumento); end; else ValorDesconto := AValorDesconto; end; case ATipoDesconto of tdValorFixoAteDataInformada, tdPercentualAteDataInformada : begin if ADataDesconto > 0 then Result := ACBrStr('Conceder desconto de ' + FormatFloatBr(ValorDesconto, 'R$ #,##0.00') + ' para pagamento até ' + FormatDateTime('dd/mm/yyyy',ADataDesconto) ); end; tdValorAntecipacaoDiaCorrido, tdPercentualSobreValorNominalDiaCorrido : begin Result := ACBrStr('Conceder desconto de ' + FormatFloatBr(ValorDesconto, 'R$ #,##0.00') + ' por dia de antecipaçao corrido.' ); end; tdValorAntecipacaoDiaUtil, tdPercentualSobreValorNominalDiaUtil : begin Result := ACBrStr('Conceder desconto de ' + FormatFloatBr(ValorDesconto, 'R$ #,##0.00') + ' por dia de antecipaçao útil.' ); end; tdNaoConcederDesconto : begin // depreciado... retrocompatibilidade com a implementação antiga // utilizar os enumeradores corretos quando houver descontos a exibir. if ADataDesconto > 0 then Result := ACBrStr('Conceder desconto de ' + FormatFloatBr(ValorDesconto, 'R$ #,##0.00') + ' para pagamento até ' + FormatDateTime('dd/mm/yyyy',ADataDesconto) ) else if ValorDesconto > 0 then Result := ACBrStr('Conceder desconto de ' + FormatFloatBr(ValorDesconto, 'R$ #,##0.00') + ' por dia de antecipaçao corrido.' ); end; end; end;
Moderadores Juliomar Marchetti Postado 14 Agosto Moderadores Postado 14 Agosto Fiz uma pesquisa aqui no fórum e lá no discord e ou o pessoal não está usando isso, ou está correto e pode ser que esteja vendo errado algo Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Metasis Sistemas Postado 14 Agosto Autor Postado 14 Agosto Acredito que o pessoal possa não estar usando, pois como mencionei acima, não faz sentido calcular um percentual se o valor devolvido é em R$, vejo que seria interessante deixarmos a função calculando corretamente, para quem for utilizar tal recurso.
Recommended Posts
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 contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora