From 20ba716f77ce87dc25cb1e52134167c7fa73c126 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 21 Jul 2026 20:45:08 +0200 Subject: [PATCH] Handle exception for cash positions --- .../src/app/portfolio/portfolio.service.ts | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index 6617b8f9b1..3aa274412d 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -863,19 +863,17 @@ export class PortfolioService { new Date() ); + const [firstActivity] = activitiesOfHolding; + const referenceUnitPrice = + firstActivity?.unitPriceInAssetProfileCurrency ?? marketPrice; + const historicalDataArray: HistoricalDataItem[] = []; - let marketPriceMax = Math.max( - activitiesOfHolding[0].unitPriceInAssetProfileCurrency, - marketPrice - ); + let marketPriceMax = Math.max(referenceUnitPrice, marketPrice); let marketPriceMaxDate = - marketPrice > activitiesOfHolding[0].unitPriceInAssetProfileCurrency + marketPrice > referenceUnitPrice ? new Date() - : activitiesOfHolding[0].date; - let marketPriceMin = Math.min( - activitiesOfHolding[0].unitPriceInAssetProfileCurrency, - marketPrice - ); + : (firstActivity?.date ?? new Date()); + let marketPriceMin = Math.min(referenceUnitPrice, marketPrice); const historicalDataItems = historicalData[getAssetProfileIdentifier({ dataSource, symbol })]; @@ -926,10 +924,10 @@ export class PortfolioService { } else { // Add historical entry for buy date, if no historical data available historicalDataArray.push({ - averagePrice: activitiesOfHolding[0].unitPriceInAssetProfileCurrency, + averagePrice: referenceUnitPrice, date: dateOfFirstActivity, - marketPrice: activitiesOfHolding[0].unitPriceInAssetProfileCurrency, - quantity: activitiesOfHolding[0].quantity + marketPrice: referenceUnitPrice, + quantity: firstActivity?.quantity ?? quantity.toNumber() }); }