From aa9756d44e7ecc9f7442f1a2b84f9e51a223d831 Mon Sep 17 00:00:00 2001 From: Thomas <4159106+dtslvr@users.noreply.github.com> Date: Thu, 11 Nov 2021 20:16:53 +0100 Subject: [PATCH] Increase decimal places for cryptocurrencies --- .../interfaces/portfolio-position-detail.interface.ts | 4 ++++ apps/api/src/app/portfolio/portfolio.service.ts | 8 ++++++-- .../position-detail-dialog.component.ts | 4 ++++ .../position-detail-dialog/position-detail-dialog.html | 2 +- 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/apps/api/src/app/portfolio/interfaces/portfolio-position-detail.interface.ts b/apps/api/src/app/portfolio/interfaces/portfolio-position-detail.interface.ts index 45d27dbef..c3824802c 100644 --- a/apps/api/src/app/portfolio/interfaces/portfolio-position-detail.interface.ts +++ b/apps/api/src/app/portfolio/interfaces/portfolio-position-detail.interface.ts @@ -1,4 +1,8 @@ +import { AssetClass, AssetSubClass } from '@prisma/client'; + export interface PortfolioPositionDetail { + assetClass?: AssetClass; + assetSubClass?: AssetSubClass; averagePrice: number; currency: string; firstBuyDate: string; diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index 2f5f77bca..eebab24cc 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -1,5 +1,3 @@ -// TODO /////////// - import { AccountService } from '@ghostfolio/api/app/account/account.service'; import { CashDetails } from '@ghostfolio/api/app/account/interfaces/cash-details.interface'; import { OrderService } from '@ghostfolio/api/app/order/order.service'; @@ -299,6 +297,8 @@ export class PortfolioService { }; } + const assetClass = orders[0].SymbolProfile?.assetClass; + const assetSubClass = orders[0].SymbolProfile?.assetSubClass; const positionCurrency = orders[0].currency; const name = orders[0].SymbolProfile?.name ?? ''; @@ -412,6 +412,8 @@ export class PortfolioService { } return { + assetClass, + assetSubClass, currency, firstBuyDate, grossPerformance, @@ -467,6 +469,8 @@ export class PortfolioService { } return { + assetClass, + assetSubClass, marketPrice, maxPrice, minPrice, diff --git a/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.ts b/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.ts index 38ab958ac..51daec553 100644 --- a/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.ts +++ b/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.ts @@ -9,6 +9,7 @@ import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { DataService } from '@ghostfolio/client/services/data.service'; import { DATE_FORMAT } from '@ghostfolio/common/helper'; import { LineChartItem } from '@ghostfolio/ui/line-chart/interfaces/line-chart.interface'; +import { AssetSubClass } from '@prisma/client'; import { format, isSameMonth, isToday, parseISO } from 'date-fns'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; @@ -23,6 +24,7 @@ import { PositionDetailDialogParams } from './interfaces/interfaces'; styleUrls: ['./position-detail-dialog.component.scss'] }) export class PositionDetailDialog implements OnDestroy { + public assetSubClass: AssetSubClass; public averagePrice: number; public benchmarkDataItems: LineChartItem[]; public currency: string; @@ -54,6 +56,7 @@ export class PositionDetailDialog implements OnDestroy { .pipe(takeUntil(this.unsubscribeSubject)) .subscribe( ({ + assetSubClass, averagePrice, currency, firstBuyDate, @@ -71,6 +74,7 @@ export class PositionDetailDialog implements OnDestroy { symbol, transactionCount }) => { + this.assetSubClass = assetSubClass; this.averagePrice = averagePrice; this.benchmarkDataItems = []; this.currency = currency; diff --git a/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html b/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html index 0994e50cf..75358616b 100644 --- a/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html +++ b/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -82,7 +82,7 @@ label="Quantity" size="medium" [locale]="data.locale" - [precision]="2" + [precision]="assetSubClass === 'CRYPTOCURRENCY' ? 5 : 2" [value]="quantity" >