Skip to content

Commit 7ab4b9b

Browse files
author
Jose Alberto Hernandez
committed
WEB-352: Re-Amortization Interest Handling configuration
1 parent bddeb56 commit 7ab4b9b

File tree

3 files changed

+55
-3
lines changed

3 files changed

+55
-3
lines changed

src/app/loans/common-resolvers/loan-action-button.resolver.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@ export class LoanActionButtonResolver {
8181
return this.loansService.getLoanActionTemplate(loanId, 'buyDownFee');
8282
} else if (loanActionButton === 'Re-Age') {
8383
return this.loansService.getLoanActionTemplate(loanId, 'reAge');
84+
} else if (loanActionButton === 'Re-Amortize') {
85+
return this.loansService.getLoanActionTemplate(loanId, 'reAmortization');
8486
} else {
8587
return undefined;
8688
}

src/app/loans/loans-view/loan-account-actions/loan-reamortize/loan-reamortize.component.html

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,34 @@
22
<mat-card>
33
<form [formGroup]="reamortizeLoanForm" (ngSubmit)="submit()">
44
<mat-card-content>
5+
<div class="layout-column">
6+
<mat-form-field>
7+
<mat-label>{{ 'labels.inputs.Interest Handling' | translate }}</mat-label>
8+
<mat-select formControlName="reAmortizationInterestHandling">
9+
<mat-option
10+
*ngFor="
11+
let reAmortizationInterestHandlingOption of reAmortizationInterestHandlingOptions;
12+
trackBy: trackByInterestHandlingOption
13+
"
14+
[value]="reAmortizationInterestHandlingOption.id"
15+
>
16+
{{ reAmortizationInterestHandlingOption.value | translateKey: 'catalogs' }}
17+
</mat-option>
18+
</mat-select>
19+
</mat-form-field>
20+
</div>
21+
522
<div class="layout-column">
623
<mat-form-field>
724
<mat-label>{{ 'labels.inputs.Reason' | translate }}</mat-label>
8-
<input matInput formControlName="note" />
25+
<mat-select formControlName="reasonCodeValueId">
26+
<mat-option
27+
*ngFor="let reAmortizationReasonOption of reAmortizationReasonOptions; trackBy: trackByReasonOption"
28+
[value]="reAmortizationReasonOption.id"
29+
>
30+
{{ reAmortizationReasonOption.name }}
31+
</mat-option>
32+
</mat-select>
933
</mat-form-field>
1034
</div>
1135

@@ -16,6 +40,13 @@
1640
</mat-form-field>
1741
</div>
1842

43+
<div class="layout-column">
44+
<mat-form-field>
45+
<mat-label>{{ 'labels.inputs.Note' | translate }}</mat-label>
46+
<input matInput formControlName="note" />
47+
</mat-form-field>
48+
</div>
49+
1950
<mat-card-actions class="layout-row align-center gap-5px responsive-column">
2051
<button type="button" mat-raised-button [routerLink]="['../../general']">
2152
{{ 'labels.buttons.Cancel' | translate }}

src/app/loans/loans-view/loan-account-actions/loan-reamortize/loan-reamortize.component.ts

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import { Component, Input, OnInit } from '@angular/core';
2-
import { UntypedFormBuilder, UntypedFormGroup, ReactiveFormsModule } from '@angular/forms';
3-
import { ActivatedRoute, Router, RouterLink } from '@angular/router';
2+
import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
3+
import { ActivatedRoute, Router } from '@angular/router';
44
import { LoansService } from 'app/loans/loans.service';
5+
import { CodeValue } from 'app/shared/models/general.model';
6+
import { OptionData } from 'app/shared/models/option-data.model';
57
import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module';
68

79
@Component({
@@ -18,6 +20,8 @@ export class LoanReamortizeComponent implements OnInit {
1820
loanId: string;
1921
/** ReAmortize Loan Form */
2022
reamortizeLoanForm: UntypedFormGroup;
23+
reAmortizationReasonOptions: CodeValue[] = [];
24+
reAmortizationInterestHandlingOptions: OptionData[] = [];
2125

2226
constructor(
2327
private formBuilder: UntypedFormBuilder,
@@ -29,11 +33,18 @@ export class LoanReamortizeComponent implements OnInit {
2933
}
3034

3135
ngOnInit(): void {
36+
this.reAmortizationReasonOptions = this.dataObject?.reAmortizationReasonOptions || [];
37+
this.reAmortizationInterestHandlingOptions = this.dataObject?.reAmortizationInterestHandlingOptions || [];
38+
3239
this.createReAmortizeLoanForm();
3340
}
3441

3542
createReAmortizeLoanForm() {
3643
this.reamortizeLoanForm = this.formBuilder.group({
44+
reAmortizationInterestHandling: [
45+
this.reAmortizationInterestHandlingOptions[0] || null
46+
],
47+
reasonCodeValueId: null,
3748
note: '',
3849
externalId: ''
3950
});
@@ -45,4 +56,12 @@ export class LoanReamortizeComponent implements OnInit {
4556
this.router.navigate(['../../transactions'], { relativeTo: this.route });
4657
});
4758
}
59+
60+
trackByInterestHandlingOption(index: number, option: OptionData): string | number {
61+
return option.id ?? index;
62+
}
63+
64+
trackByReasonOption(index: number, option: CodeValue): string | number {
65+
return option.id ?? index;
66+
}
4867
}

0 commit comments

Comments
 (0)