Realmente, você acertou.
Consegui reproduzir os erros chamando a função SetRoundMode(rmUP) no preenchimento do titulo.
SetRoundMode(rmUP); //forçar o problema
Titulo := aDM.ACBrBoleto.CriarTituloNaLista;
.....
.....
Titulo.ValorDocumento:=FDQDadosBoletoVALOR_DOCUMENTO.AsCurrency;
O meu caso eu tinha a função RoundTo5 também na emissão da NFSe. por isso logo depois da emissão deu problema no boleto e não apresentou problemas nos testes.
Quem tiver com o problema procure no código alguma função que use SetRoundMode(rmUP); Retirei a RoundTo5 de todo sistema.
Segue uma função que sempre usei desde os primórdios da NFe para arredondamento e sempre funcionou bem.
Function TBRoundTo(Value: Extended; Decimals: integer): Extended;
var
Factor, Fraction: Extended;
begin
Factor := IntPower(10, Decimals);
{ A conversão para string e depois para float evita
erros de arredondamentos indesejáveis. }
Value := StrToFloat(FloatToStr(Value * Factor));
Result := Int(Value);
Fraction := Frac(Value);
if Fraction >= 0.5 then
Result := Result + 1
else if Fraction <= -0.5 then
Result := Result - 1;
Result := Result / Factor;
end;
Agradeço o apoio de todos.
att
Gustavo.
Pessoal, consegui resolver.
Este caso era preciso autorizar mais sequencias de lote RPS para conversão em NFSE.
O processo é automático no site do Betha.
Segue print anexo para consulta.
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.