Browse Source

Refactoring

pull/2636/head
Thomas Kaul 1 year ago
parent
commit
bdcd301339
  1. 1
      apps/api/src/app/portfolio/interfaces/portfolio-position-detail.interface.ts
  2. 15
      apps/api/src/app/portfolio/portfolio.service.ts
  3. 7
      apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.ts
  4. 2
      apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html

1
apps/api/src/app/portfolio/interfaces/portfolio-position-detail.interface.ts

@ -13,6 +13,7 @@ export interface PortfolioPositionDetail {
dataProviderInfo: DataProviderInfo;
dividendInBaseCurrency: number;
dividendYieldPercent: number;
dividendYieldPercentWithCurrencyEffect: number;
feeInBaseCurrency: number;
firstBuyDate: string;
grossPerformance: number;

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

@ -711,6 +711,7 @@ export class PortfolioService {
dataProviderInfo: undefined,
dividendInBaseCurrency: undefined,
dividendYieldPercent: undefined,
dividendYieldPercentWithCurrencyEffect: undefined,
feeInBaseCurrency: undefined,
firstBuyDate: undefined,
grossPerformance: undefined,
@ -770,6 +771,7 @@ export class PortfolioService {
firstBuyDate,
marketPrice,
quantity,
timeWeightedInvestment,
timeWeightedInvestmentWithCurrencyEffect,
transactionCount
} = position;
@ -786,10 +788,18 @@ export class PortfolioService {
const dividendYieldPercent = this.getAnnualizedPerformancePercent({
daysInMarket: differenceInDays(new Date(), parseDate(firstBuyDate)),
netPerformancePercent: dividendInBaseCurrency.div(
timeWeightedInvestmentWithCurrencyEffect
timeWeightedInvestment
)
});
const dividendYieldPercentWithCurrencyEffect =
this.getAnnualizedPerformancePercent({
daysInMarket: differenceInDays(new Date(), parseDate(firstBuyDate)),
netPerformancePercent: dividendInBaseCurrency.div(
timeWeightedInvestmentWithCurrencyEffect
)
});
const historicalData = await this.dataProviderService.getHistorical(
[{ dataSource, symbol: aSymbol }],
'day',
@ -864,6 +874,8 @@ export class PortfolioService {
dataProviderInfo: portfolioCalculator.getDataProviderInfos()?.[0],
dividendInBaseCurrency: dividendInBaseCurrency.toNumber(),
dividendYieldPercent: dividendYieldPercent.toNumber(),
dividendYieldPercentWithCurrencyEffect:
dividendYieldPercentWithCurrencyEffect.toNumber(),
feeInBaseCurrency: this.exchangeRateDataService.toCurrency(
fee.toNumber(),
SymbolProfile.currency,
@ -941,6 +953,7 @@ export class PortfolioService {
dataProviderInfo: undefined,
dividendInBaseCurrency: 0,
dividendYieldPercent: 0,
dividendYieldPercentWithCurrencyEffect: 0,
feeInBaseCurrency: 0,
firstBuyDate: undefined,
grossPerformance: undefined,

7
apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.ts

@ -48,7 +48,7 @@ export class PositionDetailDialog implements OnDestroy, OnInit {
public dataProviderInfo: DataProviderInfo;
public dataSource: MatTableDataSource<Activity>;
public dividendInBaseCurrency: number;
public dividendYieldPercent: number;
public dividendYieldPercentWithCurrencyEffect: number;
public feeInBaseCurrency: number;
public firstBuyDate: string;
public historicalDataItems: LineChartItem[];
@ -96,7 +96,7 @@ export class PositionDetailDialog implements OnDestroy, OnInit {
averagePrice,
dataProviderInfo,
dividendInBaseCurrency,
dividendYieldPercent,
dividendYieldPercentWithCurrencyEffect,
feeInBaseCurrency,
firstBuyDate,
historicalData,
@ -121,7 +121,8 @@ export class PositionDetailDialog implements OnDestroy, OnInit {
this.dataProviderInfo = dataProviderInfo;
this.dataSource = new MatTableDataSource(orders.reverse());
this.dividendInBaseCurrency = dividendInBaseCurrency;
this.dividendYieldPercent = dividendYieldPercent;
this.dividendYieldPercentWithCurrencyEffect =
dividendYieldPercentWithCurrencyEffect;
this.feeInBaseCurrency = feeInBaseCurrency;
this.firstBuyDate = firstBuyDate;
this.historicalDataItems = historicalData.map(

2
apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html

@ -152,7 +152,7 @@
size="medium"
[isPercent]="true"
[locale]="data.locale"
[value]="dividendYieldPercent"
[value]="dividendYieldPercentWithCurrencyEffect"
>Dividend Yield</gf-value
>
</div>

Loading…
Cancel
Save