Browse Source

fix(api): return cash asset name in holdings

pull/5650/head
KenTandrian 1 week ago
parent
commit
843a7d202e
  1. 1
      apps/api/src/app/portfolio/calculator/portfolio-calculator.ts
  2. 4
      apps/api/src/app/portfolio/interfaces/transaction-point-symbol.interface.ts
  3. 8
      apps/api/src/app/portfolio/portfolio.service.ts
  4. 4
      libs/common/src/lib/models/timeline-position.ts

1
apps/api/src/app/portfolio/calculator/portfolio-calculator.ts

@ -405,6 +405,7 @@ export abstract class PortfolioCalculator {
feeInBaseCurrency,
timeWeightedInvestment,
timeWeightedInvestmentWithCurrencyEffect,
assetSubClass: item.assetSubClass,
dividend: totalDividend,
dividendInBaseCurrency: totalDividendInBaseCurrency,
averagePrice: item.averagePrice,

4
apps/api/src/app/portfolio/interfaces/transaction-point-symbol.interface.ts

@ -1,8 +1,8 @@
import { DataSource, Tag } from '@prisma/client';
import { AssetSubClass, DataSource, Tag } from '@prisma/client';
import { Big } from 'big.js';
export interface TransactionPointSymbol {
assetSubClass?: string;
assetSubClass: AssetSubClass;
averagePrice: Big;
currency: string;
dataSource: DataSource;

8
apps/api/src/app/portfolio/portfolio.service.ts

@ -564,6 +564,7 @@ export class PortfolioService {
}
for (const {
assetSubClass,
currency,
dividend,
firstBuyDate,
@ -607,6 +608,7 @@ export class PortfolioService {
}
holdings[symbol] = {
assetSubClass,
currency,
markets,
marketsAdvanced,
@ -618,7 +620,6 @@ export class PortfolioService {
? 0
: valueInBaseCurrency.div(filteredValueInBaseCurrency).toNumber(),
assetClass: assetProfile?.assetClass,
assetSubClass: assetProfile?.assetSubClass,
countries: assetProfile?.countries,
dataSource: assetProfile?.dataSource,
dateOfFirstActivity: parseDate(firstBuyDate),
@ -640,7 +641,10 @@ export class PortfolioService {
};
}) ?? [],
investment: investment.toNumber(),
name: assetProfile?.name,
name:
assetSubClass === AssetSubClass.CASH
? `${symbol} (Cash)`
: assetProfile?.name,
netPerformance: netPerformance?.toNumber() ?? 0,
netPerformancePercent: netPerformancePercentage?.toNumber() ?? 0,
netPerformancePercentWithCurrencyEffect:

4
libs/common/src/lib/models/timeline-position.ts

@ -4,11 +4,13 @@ import {
} from '@ghostfolio/common/class-transformer';
import { DateRange } from '@ghostfolio/common/types';
import { DataSource, Tag } from '@prisma/client';
import { AssetSubClass, DataSource, Tag } from '@prisma/client';
import { Big } from 'big.js';
import { Transform, Type } from 'class-transformer';
export class TimelinePosition {
assetSubClass: AssetSubClass;
@Transform(transformToBig, { toClassOnly: true })
@Type(() => Big)
averagePrice: Big;

Loading…
Cancel
Save