From 67912d6e01e5ec00be70ca9b4b50ab3d9ee555c5 Mon Sep 17 00:00:00 2001 From: Thomas <4159106+dtslvr@users.noreply.github.com> Date: Sun, 22 Oct 2023 10:39:30 +0200 Subject: [PATCH] Fix chart for account excluded from analysis --- .../src/app/portfolio/portfolio.controller.ts | 4 +++- .../src/app/portfolio/portfolio.service.ts | 21 ++++++++++++------- .../account-detail-dialog.component.ts | 3 ++- apps/client/src/app/services/data.service.ts | 8 ++++++- 4 files changed, 26 insertions(+), 10 deletions(-) diff --git a/apps/api/src/app/portfolio/portfolio.controller.ts b/apps/api/src/app/portfolio/portfolio.controller.ts index 6e42b1304..1c022ba17 100644 --- a/apps/api/src/app/portfolio/portfolio.controller.ts +++ b/apps/api/src/app/portfolio/portfolio.controller.ts @@ -323,7 +323,8 @@ export class PortfolioController { @Query('accounts') filterByAccounts?: string, @Query('assetClasses') filterByAssetClasses?: string, @Query('range') dateRange: DateRange = 'max', - @Query('tags') filterByTags?: string + @Query('tags') filterByTags?: string, + @Query('withExcludedAccounts') withExcludedAccounts = false ): Promise { const filters = this.apiService.buildFiltersFromQueryParams({ filterByAccounts, @@ -335,6 +336,7 @@ export class PortfolioController { dateRange, filters, impersonationId, + withExcludedAccounts, userId: this.request.user.id }); diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index fcd2cb13c..b2538fb6a 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -372,20 +372,23 @@ export class PortfolioService { filters, impersonationId, userCurrency, - userId + userId, + withExcludedAccounts = false }: { dateRange?: DateRange; filters?: Filter[]; impersonationId: string; userCurrency: string; userId: string; + withExcludedAccounts?: boolean; }): Promise { userId = await this.getUserId(impersonationId, userId); const { portfolioOrders, transactionPoints } = await this.getTransactionPoints({ filters, - userId + userId, + withExcludedAccounts }); const portfolioCalculator = new PortfolioCalculator({ @@ -1110,12 +1113,14 @@ export class PortfolioService { dateRange = 'max', filters, impersonationId, - userId + userId, + withExcludedAccounts = false }: { dateRange?: DateRange; filters?: Filter[]; impersonationId: string; userId: string; + withExcludedAccounts?: boolean; }): Promise { userId = await this.getUserId(impersonationId, userId); const user = await this.userService.user({ id: userId }); @@ -1124,7 +1129,8 @@ export class PortfolioService { const { portfolioOrders, transactionPoints } = await this.getTransactionPoints({ filters, - userId + userId, + withExcludedAccounts }); const portfolioCalculator = new PortfolioCalculator({ @@ -1174,7 +1180,8 @@ export class PortfolioService { filters, impersonationId, userCurrency, - userId + userId, + withExcludedAccounts }); const itemOfToday = historicalDataContainer.items.find((item) => { @@ -1763,7 +1770,7 @@ export class PortfolioService { filters, includeDrafts = false, userId, - withExcludedAccounts + withExcludedAccounts = false }: { filters?: Filter[]; includeDrafts?: boolean; @@ -1851,7 +1858,7 @@ export class PortfolioService { portfolioItemsNow, userCurrency, userId, - withExcludedAccounts + withExcludedAccounts = false }: { filters?: Filter[]; orders: OrderWithAccount[]; diff --git a/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts b/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts index 756df74cf..d232cb3df 100644 --- a/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts +++ b/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts @@ -116,7 +116,8 @@ export class AccountDetailDialog implements OnDestroy, OnInit { type: 'ACCOUNT' } ], - range: 'max' + range: 'max', + withExcludedAccounts: true }) .pipe(takeUntil(this.unsubscribeSubject)) .subscribe(({ chart }) => { diff --git a/apps/client/src/app/services/data.service.ts b/apps/client/src/app/services/data.service.ts index f5cafb57a..a83c423fe 100644 --- a/apps/client/src/app/services/data.service.ts +++ b/apps/client/src/app/services/data.service.ts @@ -386,14 +386,20 @@ export class DataService { public fetchPortfolioPerformance({ filters, - range + range, + withExcludedAccounts = false }: { filters?: Filter[]; range: DateRange; + withExcludedAccounts?: boolean; }): Observable { let params = this.buildFiltersAsQueryParams({ filters }); params = params.append('range', range); + if (withExcludedAccounts) { + params = params.append('withExcludedAccounts', withExcludedAccounts); + } + return this.http .get(`/api/v2/portfolio/performance`, { params