Browse Source

fix(portfolio): use impersonation-aware date for Time in Market

Resolves #6052
pull/6103/head
VahantSharma 1 month ago
parent
commit
a6281765f1
  1. 1
      apps/api/src/app/portfolio/portfolio.service.ts
  2. 11
      apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
  3. 6
      apps/client/src/app/services/data.service.ts
  4. 1
      libs/common/src/lib/interfaces/portfolio-summary.interface.ts

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

@ -1954,6 +1954,7 @@ export class PortfolioService {
}).length, }).length,
committedFunds: committedFunds.toNumber(), committedFunds: committedFunds.toNumber(),
currentValueInBaseCurrency: currentValueInBaseCurrency.toNumber(), currentValueInBaseCurrency: currentValueInBaseCurrency.toNumber(),
dateOfFirstActivity: firstOrderDate,
dividendInBaseCurrency: dividendInBaseCurrency.toNumber(), dividendInBaseCurrency: dividendInBaseCurrency.toNumber(),
emergencyFund: { emergencyFund: {
assets: emergencyFundHoldingsValueInBaseCurrency, assets: emergencyFundHoldingsValueInBaseCurrency,

11
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts

@ -84,10 +84,13 @@ export class GfPortfolioSummaryComponent implements OnChanges {
this.precision = 0; this.precision = 0;
} }
if (this.user.dateOfFirstActivity) { if (this.summary.dateOfFirstActivity) {
this.timeInMarket = formatDistanceToNow(this.user.dateOfFirstActivity, { this.timeInMarket = formatDistanceToNow(
locale: getDateFnsLocale(this.language) this.summary.dateOfFirstActivity,
}); {
locale: getDateFnsLocale(this.language)
}
);
} else { } else {
this.timeInMarket = '-'; this.timeInMarket = '-';
} }

6
apps/client/src/app/services/data.service.ts

@ -564,6 +564,12 @@ export class DataService {
} }
} }
if (response.summary?.dateOfFirstActivity) {
response.summary.dateOfFirstActivity = parseISO(
response.summary.dateOfFirstActivity
);
}
return response; return response;
}) })
); );

1
libs/common/src/lib/interfaces/portfolio-summary.interface.ts

@ -7,6 +7,7 @@ export interface PortfolioSummary extends PortfolioPerformance {
annualizedPerformancePercentWithCurrencyEffect: number; annualizedPerformancePercentWithCurrencyEffect: number;
cash: number; cash: number;
committedFunds: number; committedFunds: number;
dateOfFirstActivity: Date;
dividendInBaseCurrency: number; dividendInBaseCurrency: number;
emergencyFund: { emergencyFund: {
assets: number; assets: number;

Loading…
Cancel
Save