Balance Resolver: calculate Decay on full sum, not including the links

This commit is contained in:
Ulf Gebhardt 2022-03-31 12:08:09 +02:00
parent 04affc5a7d
commit d349a46f5d
Signed by: ulfgebhardt
GPG Key ID: DA6B843E748679C9

View File

@ -59,14 +59,17 @@ export class BalanceResolver {
? { sumHoldAvailableAmount: context.sumHoldAvailableAmount }
: await transactionLinkRepository.summary(user.id, now)
// The decay is always calculated on the last booked transaction
const calculatedDecay = calculateDecay(
lastTransaction.balance.minus(sumHoldAvailableAmount.toString()),
lastTransaction.balance,
lastTransaction.balanceDate,
now,
)
return new Balance({
balance: calculatedDecay.balance.toDecimalPlaces(2, Decimal.ROUND_DOWN), // round towards zero
balance: calculatedDecay.balance
.minus(sumHoldAvailableAmount.toString())
.toDecimalPlaces(2, Decimal.ROUND_DOWN), // round towards zero
decay: calculatedDecay.decay.toDecimalPlaces(2, Decimal.ROUND_FLOOR), // round towards - infinity
lastBookedBalance: lastTransaction.balance.toDecimalPlaces(2, Decimal.ROUND_DOWN),
balanceGDT,