Browse Source

non-investment activities not included in holdings

pull/5182/head
Attila Cseh 1 week ago
parent
commit
230e11acc3
  1. 5
      apps/api/src/app/portfolio/calculator/portfolio-calculator.ts
  2. 9
      libs/common/src/lib/config.ts

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

@ -13,6 +13,7 @@ import { IDataGatheringItem } from '@ghostfolio/api/services/interfaces/interfac
import { PortfolioSnapshotService } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service';
import { getIntervalFromDateRange } from '@ghostfolio/common/calculation-helper';
import {
INVESTMENT_ACTIVITY_TYPES,
PORTFOLIO_SNAPSHOT_PROCESS_JOB_NAME,
PORTFOLIO_SNAPSHOT_PROCESS_JOB_OPTIONS,
PORTFOLIO_SNAPSHOT_COMPUTATION_QUEUE_PRIORITY_HIGH,
@ -898,6 +899,7 @@ export abstract class PortfolioCalculator {
} of this.activities) {
let currentTransactionPointItem: TransactionPointSymbol;
if (INVESTMENT_ACTIVITY_TYPES.includes(type)) {
const currency = SymbolProfile.currency;
const dataSource = SymbolProfile.dataSource;
const factor = getFactor(type);
@ -962,6 +964,7 @@ export abstract class PortfolioCalculator {
);
symbols[SymbolProfile.symbol] = currentTransactionPointItem;
}
const items = lastTransactionPoint?.items ?? [];
@ -969,7 +972,9 @@ export abstract class PortfolioCalculator {
return symbol !== SymbolProfile.symbol;
});
if (currentTransactionPointItem) {
newItems.push(currentTransactionPointItem);
}
newItems.sort((a, b) => {
return a.symbol?.localeCompare(b.symbol);

9
libs/common/src/lib/config.ts

@ -1,4 +1,4 @@
import { AssetClass, AssetSubClass, DataSource } from '@prisma/client';
import { AssetClass, AssetSubClass, DataSource, Type } from '@prisma/client';
import { JobOptions, JobStatus } from 'bull';
import ms from 'ms';
@ -128,6 +128,13 @@ export const HEADER_KEY_TIMEZONE = 'Timezone';
export const HEADER_KEY_TOKEN = 'Authorization';
export const HEADER_KEY_SKIP_INTERCEPTOR = 'X-Skip-Interceptor';
export const INVESTMENT_ACTIVITY_TYPES = [
Type.BUY,
Type.DIVIDEND,
Type.ITEM,
Type.SELL
] as Type[];
export const MAX_TOP_HOLDINGS = 50;
export const NUMERICAL_PRECISION_THRESHOLD = 100000;

Loading…
Cancel
Save