Skip to content

Commit a3cbdbd

Browse files
committed
fixup: perc. contribution calculation in annual analysis results
1 parent 752265a commit a3cbdbd

File tree

2 files changed

+78
-83
lines changed

2 files changed

+78
-83
lines changed
Lines changed: 76 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,85 +1,79 @@
11
<hr>
22

3-
@if (groupAnalysisData?.length > 0) {
4-
<div class="mt-3">
5-
@for (groupSummary of groupAnalysisData; track groupSummary; let i = $index) {
6-
<div>
7-
<h4>{{groupSummary.groupId | groupName}} Analysis</h4>
8-
<table class="table utility-data table-sm table-bordered table-hover mt-5" #savingsTable>
9-
<thead>
10-
<tr class="table-mh">
11-
<th class="text-center sortable-header" (click)="setOrderDataField('year')"
12-
[ngClass]="{'active': orderDataField == 'year'}">
13-
Year
14-
</th>
15-
<th class="text-center sortable-header" (click)="setOrderDataField('savings')"
16-
[ngClass]="{'active': orderDataField == 'savings'}">
17-
Savings
18-
</th>
19-
<th class="text-center sortable-header" (click)="setOrderDataField('totalSavingsPercentImprovement')"
20-
[ngClass]="{'active': orderDataField == 'totalSavingsPercentImprovement'}">
21-
% Savings
22-
</th>
23-
<th class="text-center sortable-header" (click)="setOrderDataField('contributionPercent')"
24-
[ngClass]="{'active': orderDataField == 'contributionPercent'}">
25-
% Contribution
26-
</th>
27-
</tr>
28-
</thead>
29-
<tbody class="table-group-divider">
30-
@for (data of groupSummary.data | orderBy: orderDataField: orderByDirection; track data; let i = $index) {
31-
<tr
32-
>
33-
<td class="text-center"> {{data.year}} </td>
34-
@if (data.savings) {
35-
<td class="text-center">
36-
<span [ngClass]="{'red': data.savings < 0}">
37-
{{data.savings | number:'1.0-2'}}
38-
</span>
39-
</td>
40-
}
41-
@if (!data.savings || data.savings == null) {
42-
<td class="text-center">
43-
&mdash;
44-
</td>
45-
}
46-
@if (data.totalSavingsPercentImprovement) {
47-
<td class="text-center"
48-
>
49-
<span [ngClass]="{'red': data.totalSavingsPercentImprovement < 0}">
50-
{{data.totalSavingsPercentImprovement | number:'1.0-3'}} %
51-
</span>
52-
</td>
53-
}
54-
@if (!data.totalSavingsPercentImprovement) {
55-
<td class="text-center"
56-
>
57-
&mdash;
58-
</td>
59-
}
60-
@if (data.savings && annualAnalysisSummary[i]?.adjusted) {
61-
<td class="text-center"
62-
>
63-
<span
64-
[ngClass]="{'red': (data.savings / annualAnalysisSummary[i].adjusted) < 0}">
65-
{{(data.savings / annualAnalysisSummary[i].adjusted) | number:'1.0-3'}} %</span>
66-
</td>
67-
}
68-
@if (!data.savings || !annualAnalysisSummary[i]?.adjusted) {
69-
<td class="text-center"
70-
>
71-
&mdash;
72-
</td>
73-
}
74-
</tr>
75-
}
76-
</tbody>
77-
</table>
78-
<button class="btn action-btn btn-sm mt-3" (click)="copyTable(i)">
79-
<span class="fa fa-copy"></span> Copy Table
80-
</button>
81-
<hr>
82-
</div>
3+
@if (groupAnalysisData?.length > 0) {
4+
<div class="mt-3">
5+
@for (groupSummary of groupAnalysisData; track groupSummary; let i = $index) {
6+
<div>
7+
<h4>{{groupSummary.groupId | groupName}} Analysis</h4>
8+
<table class="table utility-data table-sm table-bordered table-hover mt-5" #savingsTable>
9+
<thead>
10+
<tr class="table-mh">
11+
<th class="text-center sortable-header" (click)="setOrderDataField('year')"
12+
[ngClass]="{'active': orderDataField == 'year'}">
13+
Year
14+
</th>
15+
<th class="text-center sortable-header" (click)="setOrderDataField('savings')"
16+
[ngClass]="{'active': orderDataField == 'savings'}">
17+
Savings
18+
</th>
19+
<th class="text-center sortable-header" (click)="setOrderDataField('totalSavingsPercentImprovement')"
20+
[ngClass]="{'active': orderDataField == 'totalSavingsPercentImprovement'}">
21+
% Savings
22+
</th>
23+
<th class="text-center sortable-header" (click)="setOrderDataField('contributionPercent')"
24+
[ngClass]="{'active': orderDataField == 'contributionPercent'}">
25+
% Contribution
26+
</th>
27+
</tr>
28+
</thead>
29+
<tbody class="table-group-divider">
30+
@for (data of groupSummary.data | orderBy: orderDataField: orderByDirection; track data; let i = $index) {
31+
<tr>
32+
<td class="text-center"> {{data.year}} </td>
33+
@if (data.savings) {
34+
<td class="text-center">
35+
<span [ngClass]="{'red': data.savings < 0}">
36+
{{data.savings | number:'1.0-2'}}
37+
</span>
38+
</td>
39+
}
40+
@if (!data.savings || data.savings == null) {
41+
<td class="text-center">
42+
&mdash;
43+
</td>
44+
}
45+
@if (data.totalSavingsPercentImprovement) {
46+
<td class="text-center">
47+
<span [ngClass]="{'red': data.totalSavingsPercentImprovement < 0}">
48+
{{data.totalSavingsPercentImprovement | number:'1.0-3'}} %
49+
</span>
50+
</td>
51+
}
52+
@if (!data.totalSavingsPercentImprovement) {
53+
<td class="text-center">
54+
&mdash;
55+
</td>
56+
}
57+
@if (data.contributionPercent) {
58+
<td class="text-center">
59+
<span [ngClass]="{'red': data.contributionPercent < 0}">
60+
{{data.contributionPercent | number:'1.0-3'}} %</span>
61+
</td>
62+
}
63+
@if (!data.contributionPercent) {
64+
<td class="text-center">
65+
&mdash;
66+
</td>
67+
}
68+
</tr>
8369
}
84-
</div>
85-
}
70+
</tbody>
71+
</table>
72+
<button class="btn action-btn btn-sm mt-3" (click)="copyTable(i)">
73+
<span class="fa fa-copy"></span> Copy Table
74+
</button>
75+
<hr>
76+
</div>
77+
}
78+
</div>
79+
}

src/app/shared/shared-analysis/annual-analysis-group-savings-table/annual-analysis-group-savings-table.component.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,12 @@ export class AnnualAnalysisGroupSavingsTableComponent {
3333
this.groupSummaries.forEach(summary => {
3434
const grpId = summary.group.idbGroupId;
3535
const data = summary.annualAnalysisSummaryData.map(yearData => {
36+
let adjusted: number = this.annualAnalysisSummary.find(y => y.year == yearData.year).adjusted;
3637
return {
3738
year: yearData.year,
3839
savings: yearData.savings,
3940
totalSavingsPercentImprovement: yearData.totalSavingsPercentImprovement,
40-
contributionPercent: yearData.savings / this.annualAnalysisSummary.find(y => y.year == yearData.year).adjusted
41+
contributionPercent: yearData.savings / adjusted * 100
4142
}
4243
});
4344
this.groupAnalysisData.push({ groupId: grpId, data: data });

0 commit comments

Comments
 (0)