Allow to set over amount setting for approval and disbursement
This commit is contained in:
committed by
Arnold Gálovics
parent
eef6fa31d3
commit
a2bd33f9b1
@@ -116,5 +116,4 @@ export class EditLoanProductComponent implements OnInit {
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
+11
@@ -71,6 +71,17 @@
|
||||
<span fxFlex="60%">{{ loanProduct.principal + ' (Min: ' + (loanProduct.minPrincipal ? loanProduct.minPrincipal : loanProduct.principal) + ', Max: ' + (loanProduct.maxPrincipal ? loanProduct.maxPrincipal : loanProduct.principal) + ')' }}</span>
|
||||
</div>
|
||||
|
||||
<div fxFlexFill>
|
||||
<span fxFlex="40%">Allow Approved / Disbursed Amounts Over Applied:</span>
|
||||
<span fxFlex="60%">{{ loanProduct.allowApprovedDisbursedAmountsOverApplied ? 'Yes' : 'No' }}</span>
|
||||
</div>
|
||||
|
||||
<div fxFlexFill *ngIf="loanProduct.allowApprovedDisbursedAmountsOverApplied">
|
||||
<span fxFlex="40%">Over Applied:</span>
|
||||
<span fxFlex="60%" *ngIf="loanProduct.overAppliedCalculationType === 'percentage'">{{ loanProduct.overAppliedNumber }} %</span>
|
||||
<span fxFlex="60%" *ngIf="loanProduct.overAppliedCalculationType === 'flat'">{{ loanProduct.overAppliedNumber }} {{ loanProduct.currencyCode }}</span>
|
||||
</div>
|
||||
|
||||
<div fxFlexFill>
|
||||
<span fxFlex="40%">Number of Repayments:</span>
|
||||
<span fxFlex="60%">{{ loanProduct.numberOfRepayments + ' (Min: ' + (loanProduct.minNumberOfRepayments ? loanProduct.minNumberOfRepayments : loanProduct.numberOfRepayments) + ', Max: ' + (loanProduct.maxNumberOfRepayments ? loanProduct.maxNumberOfRepayments : loanProduct.numberOfRepayments) + ')' }}</span>
|
||||
|
||||
+18
@@ -22,6 +22,24 @@
|
||||
<input type="number" matInput formControlName="maxPrincipal">
|
||||
</mat-form-field>
|
||||
|
||||
<mat-checkbox fxFlex="31%" labelPosition="before" formControlName="allowApprovedDisbursedAmountsOverApplied">
|
||||
Allow approval / disbursal above loan applied amount?
|
||||
</mat-checkbox>
|
||||
|
||||
<mat-form-field fxFlex="31%" *ngIf="loanProductTermsForm.value.allowApprovedDisbursedAmountsOverApplied">
|
||||
<mat-label>Over Amount Calculation Type</mat-label>
|
||||
<mat-select formControlName="overAppliedCalculationType" required>
|
||||
<mat-option *ngFor="let overAppliedCalculationType of overAppliedCalculationTypeData" [value]="overAppliedCalculationType.id">
|
||||
{{ overAppliedCalculationType.value }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="31%" *ngIf="loanProductTermsForm.value.allowApprovedDisbursedAmountsOverApplied">
|
||||
<mat-label>Over Amount</mat-label>
|
||||
<input type="number" matInput formControlName="overAppliedNumber" required>
|
||||
</mat-form-field>
|
||||
|
||||
<h4 fxFlex="98%" class="mat-h4">Number of repayments</h4>
|
||||
|
||||
<mat-form-field fxFlex="31%">
|
||||
|
||||
+25
@@ -23,6 +23,7 @@ export class LoanProductTermsStepComponent implements OnInit {
|
||||
valueConditionTypeData: any;
|
||||
floatingRateData: any;
|
||||
interestRateFrequencyTypeData: any;
|
||||
overAppliedCalculationTypeData: any;
|
||||
repaymentFrequencyTypeData: any;
|
||||
|
||||
displayedColumns: string[] = ['valueConditionType', 'borrowerCycleNumber', 'minValue', 'defaultValue', 'maxValue', 'actions'];
|
||||
@@ -38,6 +39,7 @@ export class LoanProductTermsStepComponent implements OnInit {
|
||||
this.floatingRateData = this.loanProductsTemplate.floatingRateOptions;
|
||||
this.interestRateFrequencyTypeData = this.loanProductsTemplate.interestRateFrequencyTypeOptions;
|
||||
this.repaymentFrequencyTypeData = this.loanProductsTemplate.repaymentFrequencyTypeOptions;
|
||||
this.overAppliedCalculationTypeData = [{id: 'percentage', value: 'Percentage'}, {id: 'flat', value: 'Fixed Amount'}];
|
||||
|
||||
this.loanProductTermsForm.patchValue({
|
||||
'minPrincipal': this.loanProductsTemplate.minPrincipal,
|
||||
@@ -54,6 +56,7 @@ export class LoanProductTermsStepComponent implements OnInit {
|
||||
'floatingRatesId': this.loanProductsTemplate.floatingRateId,
|
||||
'interestRateDifferential': this.loanProductsTemplate.interestRateDifferential,
|
||||
'isFloatingInterestRateCalculationAllowed': this.loanProductsTemplate.isFloatingInterestRateCalculationAllowed,
|
||||
'allowApprovedDisbursedAmountsOverApplied': this.loanProductsTemplate.allowApprovedDisbursedAmountsOverApplied,
|
||||
'minDifferentialLendingRate': this.loanProductsTemplate.minDifferentialLendingRate,
|
||||
'defaultDifferentialLendingRate': this.loanProductsTemplate.defaultDifferentialLendingRate,
|
||||
'maxDifferentialLendingRate': this.loanProductsTemplate.maxDifferentialLendingRate,
|
||||
@@ -63,6 +66,13 @@ export class LoanProductTermsStepComponent implements OnInit {
|
||||
'minimumDaysBetweenDisbursalAndFirstRepayment': this.loanProductsTemplate.minimumDaysBetweenDisbursalAndFirstRepayment
|
||||
});
|
||||
|
||||
if (this.loanProductsTemplate.allowApprovedDisbursedAmountsOverApplied) {
|
||||
this.loanProductTermsForm.patchValue({
|
||||
'overAppliedCalculationType': this.loanProductsTemplate.overAppliedCalculationType,
|
||||
'overAppliedNumber': this.loanProductsTemplate.overAppliedNumber,
|
||||
});
|
||||
}
|
||||
|
||||
this.loanProductTermsForm.setControl('principalVariationsForBorrowerCycle',
|
||||
this.formBuilder.array(this.loanProductsTemplate.principalVariationsForBorrowerCycle.map((variation: any) => ({ ...variation, valueConditionType: variation.valueConditionType.id }))));
|
||||
this.loanProductTermsForm.setControl('numberOfRepaymentVariationsForBorrowerCycle',
|
||||
@@ -81,6 +91,7 @@ export class LoanProductTermsStepComponent implements OnInit {
|
||||
'numberOfRepayments': ['', Validators.required],
|
||||
'maxNumberOfRepayments': [''],
|
||||
'isLinkedToFloatingInterestRates': [false],
|
||||
'allowApprovedDisbursedAmountsOverApplied': [false],
|
||||
'minInterestRatePerPeriod': [''],
|
||||
'interestRatePerPeriod': ['', Validators.required],
|
||||
'maxInterestRatePerPeriod': [''],
|
||||
@@ -92,6 +103,20 @@ export class LoanProductTermsStepComponent implements OnInit {
|
||||
}
|
||||
|
||||
setConditionalControls() {
|
||||
this.loanProductTermsForm.get('allowApprovedDisbursedAmountsOverApplied').valueChanges
|
||||
.subscribe(allowApprovedDisbursedAmountsOverApplied => {
|
||||
if (allowApprovedDisbursedAmountsOverApplied) {
|
||||
this.loanProductTermsForm.addControl('overAppliedCalculationType', new FormControl(''));
|
||||
this.loanProductTermsForm.addControl('overAppliedNumber', new FormControl(''));
|
||||
this.loanProductTermsForm.addControl('disallowExpectedDisbursements', new FormControl('true'));
|
||||
} else {
|
||||
this.loanProductTermsForm.removeControl('overAppliedCalculationType');
|
||||
this.loanProductTermsForm.removeControl('overAppliedNumber');
|
||||
this.loanProductTermsForm.removeControl('disallowExpectedDisbursements');
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
this.loanProductTermsForm.get('isLinkedToFloatingInterestRates').valueChanges
|
||||
.subscribe(isLinkedToFloatingInterestRates => {
|
||||
if (isLinkedToFloatingInterestRates) {
|
||||
|
||||
@@ -84,6 +84,17 @@
|
||||
<span fxFlex="60%">{{ loanProduct.principal + ' (Min: ' + (loanProduct.minPrincipal ? loanProduct.minPrincipal : loanProduct.principal) + ', Max: ' + (loanProduct.maxPrincipal ? loanProduct.maxPrincipal : loanProduct.principal) + ')' }}</span>
|
||||
</div>
|
||||
|
||||
<div fxFlexFill>
|
||||
<span fxFlex="40%">Allow Approved / Disbursed Amounts Over Applied:</span>
|
||||
<span fxFlex="60%">{{ loanProduct.allowApprovedDisbursedAmountsOverApplied ? 'Yes' : 'No' }}</span>
|
||||
</div>
|
||||
|
||||
<div fxFlexFill *ngIf="loanProduct.allowApprovedDisbursedAmountsOverApplied">
|
||||
<span fxFlex="40%">Over Applied Amount:</span>
|
||||
<span fxFlex="60%" *ngIf="loanProduct.overAppliedCalculationType === 'percentage'">{{ loanProduct.overAppliedNumber }} %</span>
|
||||
<span fxFlex="60%" *ngIf="loanProduct.overAppliedCalculationType === 'flat'">{{ loanProduct.overAppliedNumber }} {{ loanProduct.currencyCode }}</span>
|
||||
</div>
|
||||
|
||||
<div fxFlexFill>
|
||||
<span fxFlex="40%">Number of Repayments:</span>
|
||||
<span fxFlex="60%">{{ loanProduct.numberOfRepayments + ' (Min: ' + (loanProduct.minNumberOfRepayments ? loanProduct.minNumberOfRepayments : loanProduct.numberOfRepayments) + ', Max: ' + (loanProduct.maxNumberOfRepayments ? loanProduct.maxNumberOfRepayments : loanProduct.numberOfRepayments) + ')' }}</span>
|
||||
|
||||
Reference in New Issue
Block a user