Browse Source

Add dividend yield

pull/2636/head
Thomas Kaul 1 year ago
parent
commit
b8c1c8831e
  1. 6
      apps/api/src/app/portfolio/portfolio.service.ts
  2. 3
      apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.ts
  3. 39
      apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html

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

@ -768,9 +768,9 @@ export class PortfolioService {
dividendInBaseCurrency, dividendInBaseCurrency,
fee, fee,
firstBuyDate, firstBuyDate,
investment,
marketPrice, marketPrice,
quantity, quantity,
timeWeightedInvestmentWithCurrencyEffect,
transactionCount transactionCount
} = position; } = position;
@ -785,7 +785,9 @@ export class PortfolioService {
const dividendYieldPercent = this.getAnnualizedPerformancePercent({ const dividendYieldPercent = this.getAnnualizedPerformancePercent({
daysInMarket: differenceInDays(new Date(), parseDate(firstBuyDate)), daysInMarket: differenceInDays(new Date(), parseDate(firstBuyDate)),
netPerformancePercent: dividendInBaseCurrency.mul(100).div(investment) netPerformancePercent: dividendInBaseCurrency.div(
timeWeightedInvestmentWithCurrencyEffect
)
}); });
const historicalData = await this.dataProviderService.getHistorical( const historicalData = await this.dataProviderService.getHistorical(

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

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

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

@ -134,17 +134,29 @@
>Investment</gf-value >Investment</gf-value
> >
</div> </div>
<div class="col-6 mb-3"> @if (dividendInBaseCurrency && user?.settings?.isExperimentalFeatures) {
<gf-value <div class="col-6 mb-3">
i18n <gf-value
size="medium" i18n
[isCurrency]="true" size="medium"
[locale]="data.locale" [isCurrency]="true"
[unit]="data.baseCurrency" [locale]="data.locale"
[value]="dividendInBaseCurrency" [unit]="data.baseCurrency"
>Dividend</gf-value [value]="dividendInBaseCurrency"
> >Dividend</gf-value
</div> >
</div>
<div class="col-6 mb-3">
<gf-value
i18n
size="medium"
[isPercent]="true"
[locale]="data.locale"
[value]="dividendYieldPercent"
>Dividend Yield</gf-value
>
</div>
}
<div class="col-6 mb-3"> <div class="col-6 mb-3">
<gf-value <gf-value
i18n i18n
@ -179,6 +191,9 @@
} }
</gf-value> </gf-value>
</div> </div>
@if (user?.settings?.isExperimentalFeatures) {
<div class="col-6 mb-3"></div>
}
<div class="col-6 mb-3"> <div class="col-6 mb-3">
<gf-value i18n size="medium" [hidden]="!assetClass" [value]="assetClass" <gf-value i18n size="medium" [hidden]="!assetClass" [value]="assetClass"
>Asset Class</gf-value >Asset Class</gf-value
@ -292,7 +307,7 @@
[deviceType]="data.deviceType" [deviceType]="data.deviceType"
[hasPermissionToCreateActivity]="false" [hasPermissionToCreateActivity]="false"
[hasPermissionToExportActivities]=" [hasPermissionToExportActivities]="
!data.hasImpersonationId && !user.settings.isRestrictedView !data.hasImpersonationId && !user?.settings?.isRestrictedView
" "
[hasPermissionToFilter]="false" [hasPermissionToFilter]="false"
[hasPermissionToOpenDetails]="false" [hasPermissionToOpenDetails]="false"

Loading…
Cancel
Save