Introduce interestChargedFromDisbursementDate to control when interest charging should start

This commit is contained in:
Jose Alberto Hernandez
2025-02-03 20:12:21 -05:00
parent 066a5ad9b8
commit 0f75e8e6c9
18 changed files with 49 additions and 7 deletions
@@ -326,6 +326,13 @@
<p>{{ 'labels.inputs.Calculate interest for exact days in partial period' | translate }}</p>
</mat-checkbox>
<mat-checkbox
fxFlex="48%"
formControlName="interestRecognitionOnDisbursementDate"
>
<p>{{ 'labels.inputs.Is interest recognition on disbursement date?' | translate }}</p>
</mat-checkbox>
<mat-form-field fxFlex="48%">
<mat-label>{{ 'labels.inputs.Arrears tolerance' | translate }} </mat-label>
<input
@@ -158,7 +158,8 @@ export class LoansAccountTermsStepComponent implements OnInit, OnChanges {
interestRateDifferential: this.loansAccountTermsData.interestRateDifferential,
multiDisburseLoan: this.loansAccountTermsData.multiDisburseLoan,
interestRateFrequencyType: this.loansAccountTermsData.interestRateFrequencyType.id,
balloonRepaymentAmount: this.loansAccountTermsData.balloonRepaymentAmount
balloonRepaymentAmount: this.loansAccountTermsData.balloonRepaymentAmount,
interestRecognitionOnDisbursementDate: this.loansAccountTermsData.interestRecognitionOnDisbursementDate || false
});
this.setAdvancedPaymentStrategyControls();
@@ -263,7 +264,8 @@ export class LoansAccountTermsStepComponent implements OnInit, OnChanges {
interestRateDifferential: this.loansAccountTermsData.interestRateDifferential,
multiDisburseLoan: this.loansAccountTermsData.multiDisburseLoan,
interestRateFrequencyType: this.loansAccountTermsData.interestRateFrequencyType.id,
balloonRepaymentAmount: this.loansAccountTermsData.balloonRepaymentAmount
balloonRepaymentAmount: this.loansAccountTermsData.balloonRepaymentAmount,
interestRecognitionOnDisbursementDate: this.loansAccountTermsData.interestRecognitionOnDisbursementDate || false
});
}
this.createloansAccountTermsForm();
@@ -413,7 +415,8 @@ export class LoansAccountTermsStepComponent implements OnInit, OnChanges {
],
multiDisburseLoan: [false],
interestRateFrequencyType: [''],
balloonRepaymentAmount: ['']
balloonRepaymentAmount: [''],
interestRecognitionOnDisbursementDate: [false]
});
}
@@ -122,6 +122,13 @@
<span fxFlex="50%"> {{ loanDetails.allowPartialPeriodInterestCalcualtion | yesNo }} </span>
</div>
<div fxFlexFill>
<span fxFlex="50%"
>{{ 'labels.inputs.Is interest recognition on disbursement date?' | translate }}:</span
>
<span fxFlex="50%">{{ loanDetails.interestRecognitionOnDisbursementDate | yesNo }}</span>
</div>
<div fxFlexFill>
<span fxFlex="50%"> {{ 'labels.inputs.Submitted on' | translate }}</span>
<span fxFlex="50%"> {{ loanDetails.timeline.submittedOnDate | dateFormat }} </span>
@@ -355,13 +355,20 @@
<span fxFlex="53%">{{ loanProduct.interestCalculationPeriodType?.value | translateKey: 'catalogs' }}</span>
</div>
<div fxFlexFill *ngIf="loanProduct.allowPartialPeriodInterestCalculation">
<div fxFlexFill>
<span fxFlex="47%"
>{{ 'labels.inputs.Allow Partial Interest Calculation with same as repayment' | translate }}:</span
>
<span fxFlex="53%">{{ loanProduct.allowPartialPeriodInterestCalculation | yesNo }}</span>
</div>
<div fxFlexFill>
<span fxFlex="47%"
>{{ 'labels.inputs.Is interest recognition on disbursement date?' | translate }}:</span
>
<span fxFlex="53%">{{ loanProduct.interestRecognitionOnDisbursementDate | yesNo }}</span>
</div>
<h3 class="mat-h3" fxFlexFill>{{ 'labels.inputs.Loan Schedule' | translate }}</h3>
<mat-divider [inset]="true"></mat-divider>
@@ -119,6 +119,10 @@
<mat-divider fxFlex="98%"></mat-divider>
<mat-checkbox fxFlex="96%" labelPosition="before" formControlName="interestRecognitionOnDisbursementDate">
{{ 'labels.inputs.Is interest recognition on disbursement date?' | translate }}
</mat-checkbox>
<h3 fxFlex="23%" class="mat-h3">{{ 'labels.inputs.Interest Rates' | translate }}</h3>
<mat-checkbox
@@ -129,7 +133,7 @@
>
{{ 'labels.inputs.Is Zero Interest Rate?' | translate }}
</mat-checkbox>
<mat-checkbox
fxFlex="32%"
labelPosition="before"
@@ -86,7 +86,8 @@ export class LoanProductTermsStepComponent implements OnInit, OnChanges {
repaymentFrequencyType: this.loanProductsTemplate.repaymentFrequencyType.id,
minimumDaysBetweenDisbursalAndFirstRepayment:
this.loanProductsTemplate.minimumDaysBetweenDisbursalAndFirstRepayment,
repaymentStartDateType: this.loanProductsTemplate.repaymentStartDateType.id || 1
repaymentStartDateType: this.loanProductsTemplate.repaymentStartDateType.id || 1,
interestRecognitionOnDisbursementDate: this.loanProductsTemplate.interestRecognitionOnDisbursementDate || false
});
if (this.loanProductsTemplate.allowApprovedDisbursedAmountsOverApplied) {
@@ -173,7 +174,8 @@ export class LoanProductTermsStepComponent implements OnInit, OnChanges {
],
minimumDaysBetweenDisbursalAndFirstRepayment: [''],
repaymentStartDateType: [1],
fixedLength: [null]
fixedLength: [null],
interestRecognitionOnDisbursementDate: [false]
});
}