Skip to content

Commit f6cc7cf

Browse files
Merge pull request #2405 from alberto-art3ch/fix/loan_product_capitalized_income_edit_values
fix: Loan Product Capitalized Income values
2 parents 941cb57 + ab07af6 commit f6cc7cf

File tree

4 files changed

+46
-10
lines changed

4 files changed

+46
-10
lines changed

src/app/loans/loans-view/account-details/account-details.component.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,15 +81,15 @@ <h3>{{ 'labels.heading.Loan Details' | translate }}</h3>
8181

8282
<div fxFlexFill>
8383
<span fxFlex="50%"> {{ 'labels.inputs.Enable income capitalization' | translate }}</span>
84-
<span fxFlex="50%"> {{ loanDetails.enableAutoRepaymentForDownPayment | yesNo }} </span>
84+
<span fxFlex="50%"> {{ loanDetails.enableIncomeCapitalization | yesNo }} </span>
8585
</div>
8686

87-
<div fxFlexFill *ngIf="loanDetails.enableAutoRepaymentForDownPayment">
87+
<div fxFlexFill *ngIf="loanDetails.enableIncomeCapitalization">
8888
<span fxFlex="50%"> {{ 'labels.inputs.Income capitalization calculation type' | translate }}</span>
8989
<span fxFlex="50%"> {{ loanDetails.capitalizedIncomeCalculationType?.value | translateKey: 'catalogs' }} </span>
9090
</div>
9191

92-
<div fxFlexFill *ngIf="loanDetails.enableAutoRepaymentForDownPayment">
92+
<div fxFlexFill *ngIf="loanDetails.enableIncomeCapitalization">
9393
<span fxFlex="50%"> {{ 'labels.inputs.Income capitalization strategy' | translate }}</span>
9494
<span fxFlex="50%"> {{ loanDetails.capitalizedIncomeStrategy?.value | translateKey: 'catalogs' }} </span>
9595
</div>

src/app/products/loan-products/common/loan-product-summary/loan-product-summary.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -859,7 +859,7 @@ <h3 class="mat-h3" fxFlexFill>{{ 'labels.inputs.Overdue Charges' | translate }}<
859859
</table>
860860
</div>
861861

862-
<div fxFlexFill *ngIf="isAdvancedAccountingEnabled()" fxLayout="row wrap" fxLayout.lt-md="column">
862+
<div fxFlexFill *ngIf="isAdvancedPaymentAllocation" fxLayout="row wrap" fxLayout.lt-md="column">
863863
<h3 class="mat-h3" fxFlexFill>{{ 'labels.inputs.Income capitalization' | translate }}</h3>
864864

865865
<mat-divider [inset]="true"></mat-divider>

src/app/products/loan-products/create-loan-product/create-loan-product.component.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,12 @@ export class CreateLoanProductComponent implements OnInit {
144144
this.supportedInterestRefundTypes = supportedInterestRefundTypes;
145145
}
146146

147+
setCapitalizedIncome(capitalizedIncome: CapitalizedIncome): void {
148+
if (this.isAdvancedPaymentStrategy) {
149+
this.capitalizedIncome = capitalizedIncome;
150+
}
151+
}
152+
147153
get loanProductSettingsForm() {
148154
return this.loanProductSettingsStep.loanProductSettingsForm;
149155
}
@@ -181,6 +187,13 @@ export class CreateLoanProductComponent implements OnInit {
181187
loanProduct['paymentAllocation'] = this.paymentAllocation;
182188
loanProduct['creditAllocation'] = this.creditAllocation;
183189
loanProduct['supportedInterestRefundTypes'] = this.supportedInterestRefundTypes;
190+
if (this.capitalizedIncome != null) {
191+
loanProduct['enableIncomeCapitalization'] = this.capitalizedIncome.enableIncomeCapitalization;
192+
if (this.capitalizedIncome.enableIncomeCapitalization) {
193+
loanProduct['capitalizedIncomeCalculationType'] = this.capitalizedIncome.incomeCapitalizationCalculationType;
194+
loanProduct['capitalizedIncomeStrategy'] = this.capitalizedIncome.incomeCapitalizationStrategy;
195+
}
196+
}
184197
}
185198
return loanProduct;
186199
}

src/app/products/loan-products/loan-product-stepper/loan-product-capitalized-income-step/loan-product-capitalized-income-step.component.ts

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Component, EventEmitter, Input, Output } from '@angular/core';
1+
import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';
22
import { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';
33
import { CapitalizedIncome } from '../loan-product-payment-strategy-step/payment-allocation-model';
44
import { StringEnumOptionData } from 'app/shared/models/option-data.model';
@@ -8,7 +8,7 @@ import { StringEnumOptionData } from 'app/shared/models/option-data.model';
88
templateUrl: './loan-product-capitalized-income-step.component.html',
99
styleUrls: ['./loan-product-capitalized-income-step.component.scss']
1010
})
11-
export class LoanProductCapitalizedIncomeStepComponent {
11+
export class LoanProductCapitalizedIncomeStepComponent implements OnChanges {
1212
@Input() capitalizedIncome: CapitalizedIncome;
1313
@Input() capitalizedIncomeCalculationTypeOptions: StringEnumOptionData[];
1414
@Input() capitalizedIncomeStrategyOptions: StringEnumOptionData[];
@@ -46,22 +46,45 @@ export class LoanProductCapitalizedIncomeStepComponent {
4646
}
4747
}
4848

49+
ngOnChanges(changes: SimpleChanges): void {
50+
this.enableIncomeCapitalization = this.capitalizedIncome.enableIncomeCapitalization;
51+
if (this.enableIncomeCapitalization) {
52+
this.loanIncomeCapitalizationForm.patchValue({
53+
enableIncomeCapitalization: this.enableIncomeCapitalization,
54+
incomeCapitalizationCalculationType: this.capitalizedIncome.incomeCapitalizationCalculationType,
55+
incomeCapitalizationStrategy: this.capitalizedIncome.incomeCapitalizationStrategy
56+
});
57+
}
58+
}
59+
4960
setConditionalControls() {
5061
this.loanIncomeCapitalizationForm.get('enableIncomeCapitalization').valueChanges.subscribe((enabled: boolean) => {
5162
this.enableIncomeCapitalization = enabled;
5263
if (this.enableIncomeCapitalization) {
64+
const incomeCapitalizationCalculationType =
65+
this.capitalizedIncome.incomeCapitalizationCalculationType == ''
66+
? this.capitalizedIncomeCalculationTypeOptions[0].id
67+
: this.capitalizedIncome.incomeCapitalizationCalculationType;
5368
this.loanIncomeCapitalizationForm.addControl(
5469
'incomeCapitalizationCalculationType',
55-
new UntypedFormControl(this.capitalizedIncome.incomeCapitalizationCalculationType, Validators.required)
70+
new UntypedFormControl(
71+
this.capitalizedIncome.incomeCapitalizationCalculationType ||
72+
this.capitalizedIncomeCalculationTypeOptions[0].id,
73+
Validators.required
74+
)
5675
);
76+
const incomeCapitalizationStrategy =
77+
this.capitalizedIncome.incomeCapitalizationStrategy == ''
78+
? this.capitalizedIncomeStrategyOptions[0].id
79+
: this.capitalizedIncome.incomeCapitalizationStrategy;
5780
this.loanIncomeCapitalizationForm.addControl(
5881
'incomeCapitalizationStrategy',
59-
new UntypedFormControl(this.capitalizedIncome.incomeCapitalizationStrategy, Validators.required)
82+
new UntypedFormControl(incomeCapitalizationStrategy, Validators.required)
6083
);
6184
this.setCapitalizedIncome.emit({
6285
enableIncomeCapitalization: true,
63-
incomeCapitalizationCalculationType: '',
64-
incomeCapitalizationStrategy: ''
86+
incomeCapitalizationCalculationType: incomeCapitalizationCalculationType,
87+
incomeCapitalizationStrategy: incomeCapitalizationStrategy
6588
});
6689

6790
this.loanIncomeCapitalizationForm

0 commit comments

Comments
 (0)