Browse Source

Ignore future-dated account balances in the portfolio calculation

pull/7436/head
Thomas Kaul 1 month ago
parent
commit
df80c103b3
  1. 2
      apps/api/src/app/account-balance/account-balance.service.ts
  2. 2
      apps/api/src/app/account/account.service.ts
  3. 7
      apps/api/src/app/activities/activities.service.ts
  4. 13
      apps/api/src/helper/account.helper.ts

2
apps/api/src/app/account-balance/account-balance.service.ts

@ -120,7 +120,7 @@ export class AccountBalanceService {
const endOfTodayDate = endOfToday(); const endOfTodayDate = endOfToday();
for (const { accountId, date, valueInBaseCurrency } of balances) { for (const { accountId, date, valueInBaseCurrency } of balances) {
if (isAccountBalanceInFuture(date, endOfTodayDate)) { if (isAccountBalanceInFuture({ date, endOfTodayDate })) {
continue; continue;
} }

2
apps/api/src/app/account/account.service.ts

@ -139,7 +139,7 @@ export class AccountService {
// The balances are ordered by date descending, hence the first account // The balances are ordered by date descending, hence the first account
// balance which is not in the future reflects the current balance // balance which is not in the future reflects the current balance
account.balances.find(({ date }) => { account.balances.find(({ date }) => {
return !isAccountBalanceInFuture(date, endOfTodayDate); return !isAccountBalanceInFuture({ date, endOfTodayDate });
})?.value ?? 0, })?.value ?? 0,
tags: isTagsIncluded tags: isTagsIncluded
? (account.tags as unknown as { tag: Tag }[]).map(({ tag }) => { ? (account.tags as unknown as { tag: Tag }[]).map(({ tag }) => {

7
apps/api/src/app/activities/activities.service.ts

@ -472,7 +472,12 @@ export class ActivitiesService {
let currentBalanceInBaseCurrency = 0; let currentBalanceInBaseCurrency = 0;
for (const balanceItem of balances) { for (const balanceItem of balances) {
if (isAccountBalanceInFuture(balanceItem.date, endOfTodayDate)) { if (
isAccountBalanceInFuture({
endOfTodayDate,
date: balanceItem.date
})
) {
continue; continue;
} }

13
apps/api/src/helper/account.helper.ts

@ -18,9 +18,12 @@ export function getWhereAccountBalanceNotInFuture(): Prisma.AccountBalanceWhereI
}; };
} }
export function isAccountBalanceInFuture( export function isAccountBalanceInFuture({
aDate: Date, date,
aEndOfToday = endOfToday() endOfTodayDate = endOfToday()
) { }: {
return isAfter(aDate, aEndOfToday); date: Date;
endOfTodayDate?: Date;
}) {
return isAfter(date, endOfTodayDate);
} }

Loading…
Cancel
Save