Browse Source

Merge branch 'main' into feature/include-unavailable-data-in-allocations-by-market-chart

pull/2190/head
Thomas Kaul 2 years ago
committed by GitHub
parent
commit
c7ec4b4855
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      CHANGELOG.md
  2. 17
      apps/api/src/app/portfolio/portfolio.service.ts
  3. 13
      libs/ui/src/lib/activities-table/activities-table.component.ts

4
CHANGELOG.md

@ -11,6 +11,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Extended the allocations by market chart on the allocations page by unavailable data - Extended the allocations by market chart on the allocations page by unavailable data
### Fixed
- Considered liabilities in the total account value calculation
## 1.293.0 - 2023-07-26 ## 1.293.0 - 2023-07-26
### Added ### Added

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

@ -1842,12 +1842,12 @@ export class PortfolioService {
userId: string; userId: string;
withExcludedAccounts?: boolean; withExcludedAccounts?: boolean;
}) { }) {
const ordersOfTypeItem = await this.orderService.getOrders({ const ordersOfTypeItemOrLiability = await this.orderService.getOrders({
filters, filters,
userCurrency, userCurrency,
userId, userId,
withExcludedAccounts, withExcludedAccounts,
types: ['ITEM'] types: ['ITEM', 'LIABILITY']
}); });
const accounts: PortfolioDetails['accounts'] = {}; const accounts: PortfolioDetails['accounts'] = {};
@ -1887,13 +1887,14 @@ export class PortfolioService {
return accountId === account.id; return accountId === account.id;
}); });
const ordersOfTypeItemByAccount = ordersOfTypeItem.filter( const ordersOfTypeItemOrLiabilityByAccount =
({ accountId }) => { ordersOfTypeItemOrLiability.filter(({ accountId }) => {
return accountId === account.id; return accountId === account.id;
} });
);
ordersByAccount = ordersByAccount.concat(ordersOfTypeItemByAccount); ordersByAccount = ordersByAccount.concat(
ordersOfTypeItemOrLiabilityByAccount
);
accounts[account.id] = { accounts[account.id] = {
balance: account.balance, balance: account.balance,
@ -1933,7 +1934,7 @@ export class PortfolioService {
order.unitPrice ?? order.unitPrice ??
0); 0);
if (order.type === 'SELL') { if (order.type === 'LIABILITY' || order.type === 'SELL') {
currentValueOfSymbolInBaseCurrency *= -1; currentValueOfSymbolInBaseCurrency *= -1;
} }

13
libs/ui/src/lib/activities-table/activities-table.component.ts

@ -383,13 +383,14 @@ export class ActivitiesTableComponent implements OnChanges, OnDestroy, OnInit {
} }
private getTotalValue() { private getTotalValue() {
let totalValue = new Big(0);
const paginatedData = this.getPaginatedData(); const paginatedData = this.getPaginatedData();
for (const activity of paginatedData) { let totalValue = new Big(0);
if (isNumber(activity.valueInBaseCurrency)) {
if (activity.type === 'BUY' || activity.type === 'ITEM') { for (const { type, valueInBaseCurrency } of paginatedData) {
totalValue = totalValue.plus(activity.valueInBaseCurrency); if (isNumber(valueInBaseCurrency)) {
} else if (activity.type === 'SELL') { if (type === 'BUY' || type === 'ITEM') {
totalValue = totalValue.plus(valueInBaseCurrency);
} else if (type === 'LIABILITY' || type === 'SELL') {
return null; return null;
} }
} else { } else {

Loading…
Cancel
Save