diff --git a/src/app/loans/loans-view/account-details/account-details.component.html b/src/app/loans/loans-view/account-details/account-details.component.html index 823d05d4b..d3054f6b1 100644 --- a/src/app/loans/loans-view/account-details/account-details.component.html +++ b/src/app/loans/loans-view/account-details/account-details.component.html @@ -81,15 +81,15 @@
{{ 'labels.inputs.Enable income capitalization' | translate }} - {{ loanDetails.enableAutoRepaymentForDownPayment | yesNo }} + {{ loanDetails.enableIncomeCapitalization | yesNo }}
-
+
{{ 'labels.inputs.Income capitalization calculation type' | translate }} {{ loanDetails.capitalizedIncomeCalculationType?.value | translateKey: 'catalogs' }}
-
+
{{ 'labels.inputs.Income capitalization strategy' | translate }} {{ loanDetails.capitalizedIncomeStrategy?.value | translateKey: 'catalogs' }}
diff --git a/src/app/products/loan-products/common/loan-product-summary/loan-product-summary.component.html b/src/app/products/loan-products/common/loan-product-summary/loan-product-summary.component.html index 3f14c64eb..f9ce0a898 100644 --- a/src/app/products/loan-products/common/loan-product-summary/loan-product-summary.component.html +++ b/src/app/products/loan-products/common/loan-product-summary/loan-product-summary.component.html @@ -859,7 +859,7 @@
-
+

{{ 'labels.inputs.Income capitalization' | translate }}

diff --git a/src/app/products/loan-products/create-loan-product/create-loan-product.component.ts b/src/app/products/loan-products/create-loan-product/create-loan-product.component.ts index 9a22574ba..8839e9fb6 100644 --- a/src/app/products/loan-products/create-loan-product/create-loan-product.component.ts +++ b/src/app/products/loan-products/create-loan-product/create-loan-product.component.ts @@ -144,6 +144,12 @@ export class CreateLoanProductComponent implements OnInit { this.supportedInterestRefundTypes = supportedInterestRefundTypes; } + setCapitalizedIncome(capitalizedIncome: CapitalizedIncome): void { + if (this.isAdvancedPaymentStrategy) { + this.capitalizedIncome = capitalizedIncome; + } + } + get loanProductSettingsForm() { return this.loanProductSettingsStep.loanProductSettingsForm; } @@ -181,6 +187,13 @@ export class CreateLoanProductComponent implements OnInit { loanProduct['paymentAllocation'] = this.paymentAllocation; loanProduct['creditAllocation'] = this.creditAllocation; loanProduct['supportedInterestRefundTypes'] = this.supportedInterestRefundTypes; + if (this.capitalizedIncome != null) { + loanProduct['enableIncomeCapitalization'] = this.capitalizedIncome.enableIncomeCapitalization; + if (this.capitalizedIncome.enableIncomeCapitalization) { + loanProduct['capitalizedIncomeCalculationType'] = this.capitalizedIncome.incomeCapitalizationCalculationType; + loanProduct['capitalizedIncomeStrategy'] = this.capitalizedIncome.incomeCapitalizationStrategy; + } + } } return loanProduct; } diff --git a/src/app/products/loan-products/loan-product-stepper/loan-product-capitalized-income-step/loan-product-capitalized-income-step.component.ts b/src/app/products/loan-products/loan-product-stepper/loan-product-capitalized-income-step/loan-product-capitalized-income-step.component.ts index c5e6e762a..fff477878 100644 --- a/src/app/products/loan-products/loan-product-stepper/loan-product-capitalized-income-step/loan-product-capitalized-income-step.component.ts +++ b/src/app/products/loan-products/loan-product-stepper/loan-product-capitalized-income-step/loan-product-capitalized-income-step.component.ts @@ -1,4 +1,4 @@ -import { Component, EventEmitter, Input, Output } from '@angular/core'; +import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core'; import { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms'; import { CapitalizedIncome } from '../loan-product-payment-strategy-step/payment-allocation-model'; import { StringEnumOptionData } from 'app/shared/models/option-data.model'; @@ -8,7 +8,7 @@ import { StringEnumOptionData } from 'app/shared/models/option-data.model'; templateUrl: './loan-product-capitalized-income-step.component.html', styleUrls: ['./loan-product-capitalized-income-step.component.scss'] }) -export class LoanProductCapitalizedIncomeStepComponent { +export class LoanProductCapitalizedIncomeStepComponent implements OnChanges { @Input() capitalizedIncome: CapitalizedIncome; @Input() capitalizedIncomeCalculationTypeOptions: StringEnumOptionData[]; @Input() capitalizedIncomeStrategyOptions: StringEnumOptionData[]; @@ -46,22 +46,45 @@ export class LoanProductCapitalizedIncomeStepComponent { } } + ngOnChanges(changes: SimpleChanges): void { + this.enableIncomeCapitalization = this.capitalizedIncome.enableIncomeCapitalization; + if (this.enableIncomeCapitalization) { + this.loanIncomeCapitalizationForm.patchValue({ + enableIncomeCapitalization: this.enableIncomeCapitalization, + incomeCapitalizationCalculationType: this.capitalizedIncome.incomeCapitalizationCalculationType, + incomeCapitalizationStrategy: this.capitalizedIncome.incomeCapitalizationStrategy + }); + } + } + setConditionalControls() { this.loanIncomeCapitalizationForm.get('enableIncomeCapitalization').valueChanges.subscribe((enabled: boolean) => { this.enableIncomeCapitalization = enabled; if (this.enableIncomeCapitalization) { + const incomeCapitalizationCalculationType = + this.capitalizedIncome.incomeCapitalizationCalculationType == '' + ? this.capitalizedIncomeCalculationTypeOptions[0].id + : this.capitalizedIncome.incomeCapitalizationCalculationType; this.loanIncomeCapitalizationForm.addControl( 'incomeCapitalizationCalculationType', - new UntypedFormControl(this.capitalizedIncome.incomeCapitalizationCalculationType, Validators.required) + new UntypedFormControl( + this.capitalizedIncome.incomeCapitalizationCalculationType || + this.capitalizedIncomeCalculationTypeOptions[0].id, + Validators.required + ) ); + const incomeCapitalizationStrategy = + this.capitalizedIncome.incomeCapitalizationStrategy == '' + ? this.capitalizedIncomeStrategyOptions[0].id + : this.capitalizedIncome.incomeCapitalizationStrategy; this.loanIncomeCapitalizationForm.addControl( 'incomeCapitalizationStrategy', - new UntypedFormControl(this.capitalizedIncome.incomeCapitalizationStrategy, Validators.required) + new UntypedFormControl(incomeCapitalizationStrategy, Validators.required) ); this.setCapitalizedIncome.emit({ enableIncomeCapitalization: true, - incomeCapitalizationCalculationType: '', - incomeCapitalizationStrategy: '' + incomeCapitalizationCalculationType: incomeCapitalizationCalculationType, + incomeCapitalizationStrategy: incomeCapitalizationStrategy }); this.loanIncomeCapitalizationForm