Browse Source

Eliminate accounts from PortfolioPosition

pull/308/head
Thomas 4 years ago
parent
commit
ddbb507c80
  1. 11
      apps/api/src/app/portfolio/portfolio.controller.ts
  2. 12
      apps/api/src/app/portfolio/portfolio.service.ts
  3. 3
      libs/common/src/lib/interfaces/portfolio-position.interface.ts

11
apps/api/src/app/portfolio/portfolio.controller.ts

@ -157,15 +157,12 @@ export class PortfolioController {
portfolioPosition.investment =
portfolioPosition.investment / totalInvestment;
for (const [account, { current, original }] of Object.entries(
portfolioPosition.accounts
)) {
portfolioPosition.accounts[account].current = current / totalValue;
portfolioPosition.accounts[account].original =
original / totalInvestment;
portfolioPosition.quantity = null;
}
portfolioPosition.quantity = null;
for (const [name, { current, original }] of Object.entries(accounts)) {
accounts[name].current = current / totalValue;
accounts[name].original = original / totalInvestment;
}
}

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

@ -216,7 +216,6 @@ export class PortfolioService {
const symbolProfile = symbolProfileMap[item.symbol];
const dataProviderResponse = dataProviderResponses[item.symbol];
holdings[item.symbol] = {
accounts,
allocationCurrent: value.div(totalValue).toNumber(),
allocationInvestment: item.investment.div(totalInvestment).toNumber(),
assetClass: symbolProfile.assetClass,
@ -702,18 +701,9 @@ export class PortfolioService {
investment: Big;
value: Big;
}) {
const accounts = {};
const cashValue = new Big(cashDetails.balance);
cashDetails.accounts.forEach((account) => {
accounts[account.name] = {
current: account.balance,
original: account.balance
};
});
return {
accounts,
allocationCurrent: cashValue.div(value).toNumber(),
allocationInvestment: cashValue.div(investment).toNumber(),
assetClass: AssetClass.CASH,
@ -800,7 +790,7 @@ export class PortfolioService {
portfolioItemsNow: { [p: string]: TimelinePosition },
userCurrency
) {
const accounts: PortfolioPosition['accounts'] = {};
const accounts: PortfolioDetails['accounts'] = {};
for (const order of orders) {
let currentValueOfSymbol = this.exchangeRateDataService.toCurrency(
order.quantity * portfolioItemsNow[order.symbol].marketPrice,

3
libs/common/src/lib/interfaces/portfolio-position.interface.ts

@ -5,9 +5,6 @@ import { Country } from './country.interface';
import { Sector } from './sector.interface';
export interface PortfolioPosition {
accounts: {
[name: string]: { current: number; original: number };
};
allocationCurrent: number;
allocationInvestment: number;
assetClass?: AssetClass;

Loading…
Cancel
Save