Browse Source

feat(api): add synthetic activities into calculator

pull/5650/head
KenTandrian 5 days ago
parent
commit
2bfd92cb9c
  1. 21
      apps/api/src/app/portfolio/portfolio.service.ts

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

@ -575,6 +575,7 @@ export class PortfolioService {
(user.settings?.settings as UserSettings)?.emergencyFund ?? 0 (user.settings?.settings as UserSettings)?.emergencyFund ?? 0
); );
// Activities for non-cash assets
const { activities } = const { activities } =
await this.orderService.getOrdersForPortfolioCalculator({ await this.orderService.getOrdersForPortfolioCalculator({
filters, filters,
@ -582,23 +583,29 @@ export class PortfolioService {
userId userId
}); });
const portfolioCalculator = this.calculatorFactory.createCalculator({ // Synthetic activities for cash
activities, const cashDetails = await this.accountService.getCashDetails({
filters, filters,
userId, userId,
calculationType: this.getUserPerformanceCalculationType(user),
currency: userCurrency currency: userCurrency
}); });
const cashActivities = await this.getCashActivities({
cashDetails,
userCurrency,
userId
});
const { createdAt, currentValueInBaseCurrency, hasErrors, positions } = const portfolioCalculator = this.calculatorFactory.createCalculator({
await portfolioCalculator.getSnapshot();
const cashDetails = await this.accountService.getCashDetails({
filters, filters,
userId, userId,
activities: [...activities, ...cashActivities],
calculationType: this.getUserPerformanceCalculationType(user),
currency: userCurrency currency: userCurrency
}); });
const { createdAt, currentValueInBaseCurrency, hasErrors, positions } =
await portfolioCalculator.getSnapshot();
const holdings: PortfolioDetails['holdings'] = {}; const holdings: PortfolioDetails['holdings'] = {};
const totalValueInBaseCurrency = currentValueInBaseCurrency.plus( const totalValueInBaseCurrency = currentValueInBaseCurrency.plus(

Loading…
Cancel
Save