Fix Loan Product Delinquency bucket
This commit is contained in:
committed by
Adam Saghy
parent
479d6af8b3
commit
9600e8ed56
+7
-1
@@ -384,7 +384,13 @@
|
||||
|
||||
<div fxFlexFill *ngIf="loanProduct.delinquencyBucket">
|
||||
<span fxFlex="47%">Delinquency Bucket:</span>
|
||||
<span fxFlex="53%">{{ loanProduct.delinquencyBucket.name }}</span>
|
||||
<span fxFlex="53%" *ngIf="loanProduct.delinquencyBucket.name">{{ loanProduct.delinquencyBucket.name }}</span>
|
||||
<span fxFlex="53%" *ngIf="!loanProduct.delinquencyBucket.name">{{ 'labels.inputs.Unassigned' | translate }}</span>
|
||||
</div>
|
||||
|
||||
<div fxFlexFill *ngIf="!loanProduct.delinquencyBucket">
|
||||
<span fxFlex="47%">Delinquency Bucket:</span>
|
||||
<span fxFlex="53%">{{ 'labels.inputs.Unassigned' | translate }}</span>
|
||||
</div>
|
||||
|
||||
<div fxFlexFill>
|
||||
|
||||
+18
-1
@@ -1,5 +1,5 @@
|
||||
import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';
|
||||
import { LoanProduct } from '../../models/loan-product.model';
|
||||
import { DelinquencyBucket, LoanProduct } from '../../models/loan-product.model';
|
||||
import { AccountingMapping, Charge, ChargeToIncomeAccountMapping, GLAccount, PaymentChannelToFundSourceMapping, PaymentType, PaymentTypeOption } from '../../../../shared/models/general.model';
|
||||
import { AdvancePaymentAllocationData, PaymentAllocation } from '../../loan-product-stepper/loan-product-payment-strategy-step/payment-allocation-model';
|
||||
import { LoanProducts } from '../../loan-products';
|
||||
@@ -62,6 +62,7 @@ export class LoanProductSummaryComponent implements OnInit, OnChanges {
|
||||
|
||||
} else {
|
||||
this.accountingMappings = {};
|
||||
|
||||
if ((this.loanProduct.accountingRule && this.loanProduct.accountingRule > 1) || this.loanProductsTemplate.accountingRule.value !== 'NONE') {
|
||||
const assetAccountData = this.loanProductsTemplate.accountingMappingOptions.assetAccountOptions || [];
|
||||
const incomeAccountData = this.loanProductsTemplate.accountingMappingOptions.incomeAccountOptions || [];
|
||||
@@ -162,6 +163,10 @@ export class LoanProductSummaryComponent implements OnInit, OnChanges {
|
||||
optionValue = this.optionDataLookUp(this.loanProduct.repaymentStartDateType, this.loanProductsTemplate.repaymentStartDateTypeOptions);
|
||||
this.loanProduct.repaymentStartDateType = optionValue;
|
||||
|
||||
if (this.loanProduct.delinquencyBucketId) {
|
||||
this.loanProduct.delinquencyBucket = this.delinquencyBucketLookUp(this.loanProduct.delinquencyBucketId, this.loanProductsTemplate.delinquencyBucketOptions);
|
||||
}
|
||||
|
||||
const codeValue: CodeName = this.codeNameLookUpByCode(this.loanProduct.transactionProcessingStrategyCode,
|
||||
this.loanProductsTemplate.transactionProcessingStrategyOptions);
|
||||
this.loanProduct.transactionProcessingStrategyName = codeValue.name;
|
||||
@@ -275,6 +280,18 @@ export class LoanProductSummaryComponent implements OnInit, OnChanges {
|
||||
return paymentType;
|
||||
}
|
||||
|
||||
delinquencyBucketLookUp(delinquencyBucketId: any, delinquencyBuckets: DelinquencyBucket[]): DelinquencyBucket {
|
||||
let delinquencyBucketData: DelinquencyBucket | null = null;
|
||||
if (delinquencyBucketId) {
|
||||
delinquencyBuckets.some((delinquencyBucket: DelinquencyBucket) => {
|
||||
if (delinquencyBucket.id === delinquencyBucketId) {
|
||||
delinquencyBucketData = { id: delinquencyBucket.id, name: delinquencyBucket.name };
|
||||
}
|
||||
});
|
||||
}
|
||||
return delinquencyBucketData;
|
||||
}
|
||||
|
||||
accountingRule(): number {
|
||||
return this.loanProduct.accountingRule.id ?
|
||||
this.loanProduct.accountingRule.id : this.loanProduct.accountingRule;
|
||||
|
||||
+4
@@ -168,6 +168,10 @@
|
||||
{{ delinquencyBucket.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<button mat-button *ngIf="loanProductSettingsForm.controls.delinquencyBucketId" matSuffix mat-icon-button
|
||||
aria-label="Clear" (click)="clearProperty($event, 'delinquencyBucketId')">
|
||||
<mat-icon>close</mat-icon>
|
||||
</button>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-checkbox fxFlex="48%" labelPosition="before" formControlName="enableInstallmentLevelDelinquency" class="margin-v">
|
||||
|
||||
+13
@@ -496,6 +496,16 @@ export class LoanProductSettingsStepComponent implements OnInit {
|
||||
return value;
|
||||
}
|
||||
|
||||
clearProperty($event: Event, propertyName: string): void {
|
||||
if (propertyName === 'delinquencyBucketId') {
|
||||
this.loanProductSettingsForm.patchValue({
|
||||
'delinquencyBucketId': ''
|
||||
});
|
||||
}
|
||||
this.loanProductSettingsForm.markAsDirty();
|
||||
$event.stopPropagation();
|
||||
}
|
||||
|
||||
get loanProductSettings() {
|
||||
const productSettings = this.loanProductSettingsForm.value;
|
||||
if (!this.loanProductSettingsForm.value.multiDisburseLoan) {
|
||||
@@ -505,6 +515,9 @@ export class LoanProductSettingsStepComponent implements OnInit {
|
||||
productSettings['dueDaysForRepaymentEvent'] = null;
|
||||
productSettings['overDueDaysForRepaymentEvent'] = null;
|
||||
}
|
||||
if (productSettings['delinquencyBucketId'] === '') {
|
||||
delete productSettings['delinquencyBucketId'];
|
||||
}
|
||||
return productSettings;
|
||||
}
|
||||
|
||||
|
||||
@@ -82,6 +82,7 @@ export interface LoanProduct {
|
||||
isEqualAmortization: boolean;
|
||||
delinquencyBucketOptions: DelinquencyBucket[];
|
||||
delinquencyBucket: DelinquencyBucket;
|
||||
delinquencyBucketId?: number;
|
||||
graceOnPrincipalPayment?: number;
|
||||
graceOnInterestPayment?: number;
|
||||
graceOnInterestCharged?: number;
|
||||
@@ -137,9 +138,9 @@ export interface AllowAttributeOverrides {
|
||||
}
|
||||
|
||||
export interface DelinquencyBucket {
|
||||
id: number;
|
||||
name: string;
|
||||
ranges: Range[];
|
||||
id: number;
|
||||
name: string;
|
||||
ranges?: Range[];
|
||||
}
|
||||
|
||||
export interface Range {
|
||||
|
||||
Reference in New Issue
Block a user