Installment level delinquency setting at loan account level

This commit is contained in:
Jose Alberto Hernandez
2024-05-09 07:10:56 -06:00
committed by Jose Alberto Hernandez
parent 8fdf8fb10c
commit 7e607d63c0
33 changed files with 120 additions and 75 deletions
@@ -247,6 +247,12 @@
<input type="number" matInput formControlName="fixedEmiAmount">
</mat-form-field>
<ng-container *ngIf="isDelinquencyEnabled()">
<mat-checkbox fxFlex="48%" formControlName="enableInstallmentLevelDelinquency">
<p>{{'labels.inputs.Enable installment level Delinquency' | translate}}</p>
</mat-checkbox>
</ng-container>
<ng-container *ngIf="loansAccountTermsData?.isTopup">
<mat-checkbox fxFlex="20%" formControlName="isTopup">
@@ -5,6 +5,7 @@ import { MatDialog } from '@angular/material/dialog';
import { ActivatedRoute } from '@angular/router';
import { LoansAccountAddCollateralDialogComponent } from 'app/loans/custom-dialog/loans-account-add-collateral-dialog/loans-account-add-collateral-dialog.component';
import { LoanProducts } from 'app/products/loan-products/loan-products';
import { LoanProduct } from 'app/products/loan-products/models/loan-product.model';
import { SettingsService } from 'app/settings/settings.service';
import { DeleteDialogComponent } from 'app/shared/delete-dialog/delete-dialog.component';
import { FormDialogComponent } from 'app/shared/form-dialog/form-dialog.component';
@@ -86,6 +87,7 @@ export class LoansAccountTermsStepComponent implements OnInit, OnChanges {
loanId: any = null;
loanScheduleType: OptionData | null = null;
loanProduct: LoanProduct | null = null;
/**
* Create Loans Account Terms Form
@@ -110,6 +112,10 @@ export class LoansAccountTermsStepComponent implements OnInit, OnChanges {
this.loansAccountTermsData = this.loansAccountTemplate;
}
if (this.loansAccountTermsData.product) {
this.loanProduct = this.loansAccountTermsData.product;
}
this.loansAccountTermsForm.patchValue({
'principalAmount': this.loansAccountTermsData.principal,
'loanTermFrequency': this.loansAccountTermsData.termFrequency,
@@ -149,7 +155,9 @@ export class LoansAccountTermsStepComponent implements OnInit, OnChanges {
this.totalMultiDisbursed += item.principal;
});
}
if (this.isDelinquencyEnabled()) {
this.loansAccountTermsForm.addControl('enableInstallmentLevelDelinquency', new UntypedFormControl(this.loanProduct.enableInstallmentLevelDelinquency));
}
this.collateralDataSource = this.loansAccountTermsData.collateral || [];
const allowAttributeOverrides = this.loansAccountTermsData.product.allowAttributeOverrides;
@@ -502,6 +510,13 @@ export class LoansAccountTermsStepComponent implements OnInit, OnChanges {
}
}
isDelinquencyEnabled(): boolean {
if (!this.loanProduct || !this.loanProduct.delinquencyBucket) {
return false;
}
return true;
}
/**
* Returns loans account terms form value.
*/
@@ -213,7 +213,7 @@ export class LoansAccountButtonConfiguration {
case 'Submitted and pending approval':
this.optionArray = [
{
name: 'Withdrawn by client',
name: 'Withdrawn by Client',
taskPermissionName: 'WITHDRAW_LOAN',
},
{