From c8703adbc156a1bbc4f0d06dbd5250e37934aaac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Alberto=20Hern=C3=A1ndez?= <44206706+josehernandezfintecheandomx@users.noreply.github.com> Date: Thu, 14 Sep 2023 11:29:09 -0600 Subject: [PATCH] Loan product extend schedule setting (#1866) Co-authored-by: Jose Alberto Hernandez --- src/app/pipes/pipes.module.ts | 7 ++- src/app/pipes/yesno.pipe.spec.ts | 8 +++ src/app/pipes/yesno.pipe.ts | 15 +++++ .../loan-product-preview-step.component.html | 62 +++++++++++-------- .../loan-product-settings-step.component.html | 9 ++- .../loan-product-settings-step.component.ts | 8 ++- .../general-tab/general-tab.component.html | 62 +++++++++++-------- 7 files changed, 114 insertions(+), 57 deletions(-) create mode 100644 src/app/pipes/yesno.pipe.spec.ts create mode 100644 src/app/pipes/yesno.pipe.ts diff --git a/src/app/pipes/pipes.module.ts b/src/app/pipes/pipes.module.ts index 83d5a502d..713a1abea 100644 --- a/src/app/pipes/pipes.module.ts +++ b/src/app/pipes/pipes.module.ts @@ -10,13 +10,14 @@ import { DateFormatPipe } from './date-format.pipe'; import { DatetimeFormatPipe } from './datetime-format.pipe'; import { ExternalIdentifierPipe } from './external-identifier.pipe'; import { FormatNumberPipe } from './format-number.pipe'; +import { YesnoPipe } from './yesno.pipe'; @NgModule({ imports: [ CommonModule ], - declarations: [StatusLookupPipe, AccountsFilterPipe, ChargesFilterPipe, ChargesPenaltyFilterPipe, FindPipe, UrlToStringPipe, DateFormatPipe, DatetimeFormatPipe, ExternalIdentifierPipe, FormatNumberPipe ], - providers: [StatusLookupPipe, AccountsFilterPipe, ChargesFilterPipe, ChargesPenaltyFilterPipe, FindPipe, UrlToStringPipe, DateFormatPipe, DatetimeFormatPipe, ExternalIdentifierPipe, FormatNumberPipe ], - exports: [StatusLookupPipe, AccountsFilterPipe, ChargesFilterPipe, ChargesPenaltyFilterPipe, FindPipe, UrlToStringPipe, DateFormatPipe, DatetimeFormatPipe, ExternalIdentifierPipe, FormatNumberPipe ] + declarations: [StatusLookupPipe, AccountsFilterPipe, ChargesFilterPipe, ChargesPenaltyFilterPipe, FindPipe, UrlToStringPipe, DateFormatPipe, DatetimeFormatPipe, ExternalIdentifierPipe, FormatNumberPipe, YesnoPipe ], + providers: [StatusLookupPipe, AccountsFilterPipe, ChargesFilterPipe, ChargesPenaltyFilterPipe, FindPipe, UrlToStringPipe, DateFormatPipe, DatetimeFormatPipe, ExternalIdentifierPipe, FormatNumberPipe, YesnoPipe ], + exports: [StatusLookupPipe, AccountsFilterPipe, ChargesFilterPipe, ChargesPenaltyFilterPipe, FindPipe, UrlToStringPipe, DateFormatPipe, DatetimeFormatPipe, ExternalIdentifierPipe, FormatNumberPipe, YesnoPipe ] }) export class PipesModule { } diff --git a/src/app/pipes/yesno.pipe.spec.ts b/src/app/pipes/yesno.pipe.spec.ts new file mode 100644 index 000000000..33436e85f --- /dev/null +++ b/src/app/pipes/yesno.pipe.spec.ts @@ -0,0 +1,8 @@ +import { YesnoPipe } from './yesno.pipe'; + +describe('YesnoPipe', () => { + it('create an instance', () => { + const pipe = new YesnoPipe(); + expect(pipe).toBeTruthy(); + }); +}); diff --git a/src/app/pipes/yesno.pipe.ts b/src/app/pipes/yesno.pipe.ts new file mode 100644 index 000000000..5450535b7 --- /dev/null +++ b/src/app/pipes/yesno.pipe.ts @@ -0,0 +1,15 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ + name: 'yesNo' +}) +export class YesnoPipe implements PipeTransform { + + transform(value: boolean, ...args: unknown[]): string { + if (value == null) { + return null; + } + return value ? 'Yes' : 'No'; + } + +} diff --git a/src/app/products/loan-products/loan-product-stepper/loan-product-preview-step/loan-product-preview-step.component.html b/src/app/products/loan-products/loan-product-stepper/loan-product-preview-step/loan-product-preview-step.component.html index 27a02a7f7..cb209026d 100644 --- a/src/app/products/loan-products/loan-product-stepper/loan-product-preview-step/loan-product-preview-step.component.html +++ b/src/app/products/loan-products/loan-product-stepper/loan-product-preview-step/loan-product-preview-step.component.html @@ -20,7 +20,7 @@
Include in Customer Loan Counter: - {{ loanProduct.includeInBorrowerCycle ? 'Yes' : 'No' }} + {{ loanProduct.includeInBorrowerCycle | yesNo }}
@@ -75,7 +75,7 @@
Allow Approved / Disbursed Amounts Over Applied: - {{ loanProduct.allowApprovedDisbursedAmountsOverApplied ? 'Yes' : 'No' }} + {{ loanProduct.allowApprovedDisbursedAmountsOverApplied | yesNo }}
@@ -101,7 +101,7 @@
Linked to floating interest rates: - {{ loanProduct.isLinkedToFloatingInterestRates ? 'Yes' : 'No' }} + {{ loanProduct.isLinkedToFloatingInterestRates | yesNo }}
@@ -120,7 +120,7 @@ Interest Rate Differential: {{ loanProduct.interestRateDifferential }} Floating Interest Rate Calculation Allowed: - {{ loanProduct.isFloatingInterestRateCalculationAllowed ? 'Yes' : 'No' }} + {{ loanProduct.isFloatingInterestRateCalculationAllowed | yesNo }} Floating Interest Rate: {{ loanProduct.defaultDifferentialLendingRate + ' (Min: ' + (loanProduct.minDifferentialLendingRate ? loanProduct.minDifferentialLendingRate : @@ -130,7 +130,7 @@
Terms vary based on loan cycle: - {{ loanProduct.useBorrowerCycle ? 'Yes' : 'No' }} + {{ loanProduct.useBorrowerCycle | yesNo }}
@@ -302,7 +302,7 @@
Is Equal Amortization: - {{ loanProduct.isEqualAmortization ? 'Yes' : 'No' }} + {{ loanProduct.isEqualAmortization | yesNo }}
@@ -319,7 +319,7 @@
Allow Partial Interest Calculation with same as repayment: - {{ loanProduct.allowPartialPeriodInterestCalcualtion ? 'Yes' : 'No' }} + {{ loanProduct.allowPartialPeriodInterestCalcualtion | yesNo }}
@@ -396,7 +396,7 @@
Allow fixing of the installment amount: - {{ loanProduct.canDefineInstallmentAmount ? 'Yes' : 'No' }} + {{ loanProduct.canDefineInstallmentAmount | yesNo }}
@@ -411,12 +411,12 @@
Delinquency Bucket: - {{ loanProduct.delinquencyBucketId ? 'Yes' : 'No' }} + {{ loanProduct.delinquencyBucketId | yesNo }}
Account moves out of NPA only after all arrears have been cleared: - {{ loanProduct.accountMovesOutOfNPAOnlyOnArrearsCompletion ? 'Yes' : 'No' }} + {{ loanProduct.accountMovesOutOfNPAOnlyOnArrearsCompletion | yesNo }}
@@ -426,7 +426,7 @@
Variable Installments allowed: - {{ loanProduct.allowVariableInstallments ? 'Yes' : 'No' }} + {{ loanProduct.allowVariableInstallments | yesNo }}
@@ -437,7 +437,7 @@
Allowed to be used for providing Topup Loans: - {{ loanProduct.canUseForTopup ? 'Yes' : 'No' }} + {{ loanProduct.canUseForTopup | yesNo }}

Interest Recalculation

@@ -446,7 +446,7 @@
Recalculate Interest: - {{ loanProduct.isInterestRecalculationEnabled ? 'Yes' : 'No' }} + {{ loanProduct.isInterestRecalculationEnabled | yesNo }}
@@ -510,7 +510,7 @@
Is Arrears recognization based on original schedule: - {{ loanProduct.isArrearsBasedOnOriginalSchedule ? 'Yes' : 'No' }} + {{ loanProduct.isArrearsBasedOnOriginalSchedule | yesNo }}
@@ -520,7 +520,7 @@
Place Guarantee Funds On-Hold: - {{ loanProduct.holdGuaranteeFunds ? 'Yes' : 'No' }} + {{ loanProduct.holdGuaranteeFunds | yesNo }}
@@ -542,7 +542,7 @@
Enable Multiple Disbursals: - {{ loanProduct.multiDisburseLoan ? 'Yes' : 'No' }} + {{ loanProduct.multiDisburseLoan | yesNo }}
@@ -556,7 +556,7 @@
Disallow Expected Disbursements: - {{ loanProduct.disallowExpectedDisbursements ? 'Yes' : 'No' }} + {{ loanProduct.disallowExpectedDisbursements | yesNo }}

Down Payments

@@ -565,7 +565,7 @@
Enable Down Payments: - {{ loanProduct.enableDownPayment ? 'Yes' : 'No' }} + {{ loanProduct.enableDownPayment | yesNo }}
@@ -573,6 +573,16 @@ {{ loanProduct.disbursedAmountPercentageForDownPayment }} %
+
+ Enable Auto Repayment for Down Payment: + {{ loanProduct.enableAutoRepaymentForDownPayment | yesNo }} +
+ +
+ Do not extend loan schedule for multi disbursal: + {{ loanProduct.disableScheduleExtensionForDownPayment | yesNo }} +
+

Event Settings

@@ -591,27 +601,27 @@
Allow overriding select terms and settings in loan accounts: - {{ loanProduct.allowAttributeConfiguration ? 'Yes' : 'No' }} + {{ loanProduct.allowAttributeConfiguration | yesNo }}
Amortization: - {{ loanProduct.allowAttributeOverrides.amortizationType ? 'Yes' : 'No' }} + {{ loanProduct.allowAttributeOverrides.amortizationType | yesNo }} Interest method: - {{ loanProduct.allowAttributeOverrides.interestType ? 'Yes' : 'No' }} + {{ loanProduct.allowAttributeOverrides.interestType | yesNo }} Repayment strategy: - {{ loanProduct.allowAttributeOverrides.transactionProcessingStrategyCode ? 'Yes' : 'No' }} + {{ loanProduct.allowAttributeOverrides.transactionProcessingStrategyCode | yesNo }} Interest calculation period: - {{ loanProduct.allowAttributeOverrides.interestCalculationPeriodType ? 'Yes' : 'No' }} + {{ loanProduct.allowAttributeOverrides.interestCalculationPeriodType | yesNo }} Arrears tolerance: - {{ loanProduct.allowAttributeOverrides.inArrearsTolerance ? 'Yes' : 'No' }} + {{ loanProduct.allowAttributeOverrides.inArrearsTolerance | yesNo }} Repaid every: - {{ loanProduct.allowAttributeOverrides.repaymentEvery ? 'Yes' : 'No' }} + {{ loanProduct.allowAttributeOverrides.repaymentEvery | yesNo }} Moratorium: {{ loanProduct.allowAttributeOverrides.graceOnPrincipalAndInterestPayment ? 'Yes' : 'No' }} Number of days a loan may be overdue before moving into arrears: - {{ loanProduct.allowAttributeOverrides.graceOnArrearsAgeing ? 'Yes' : 'No' }} + {{ loanProduct.allowAttributeOverrides.graceOnArrearsAgeing | yesNo }}
diff --git a/src/app/products/loan-products/loan-product-stepper/loan-product-settings-step/loan-product-settings-step.component.html b/src/app/products/loan-products/loan-product-stepper/loan-product-settings-step/loan-product-settings-step.component.html index cfdb096e2..56b0cddec 100644 --- a/src/app/products/loan-products/loan-product-stepper/loan-product-settings-step/loan-product-settings-step.component.html +++ b/src/app/products/loan-products/loan-product-stepper/loan-product-settings-step/loan-product-settings-step.component.html @@ -435,12 +435,19 @@ - Enable Auto Repayment for Down Payment
+
+ + Do not extend loan schedule for multi disbursal + +
+

Event Settings Include in Customer Loan Counter: - {{ loanProduct.includeInBorrowerCycle ? 'Yes' : 'No' }} + {{ loanProduct.includeInBorrowerCycle | yesNo }}

@@ -83,7 +83,7 @@
Allow Approved / Disbursed Amounts Over Applied: - {{ loanProduct.allowApprovedDisbursedAmountsOverApplied ? 'Yes' : 'No' }} + {{ loanProduct.allowApprovedDisbursedAmountsOverApplied | yesNo }}
@@ -111,7 +111,7 @@
Linked to floating interest rates: - {{ loanProduct.isLinkedToFloatingInterestRates ? 'Yes' : 'No' }} + {{ loanProduct.isLinkedToFloatingInterestRates | yesNo }}
@@ -128,7 +128,7 @@ Interest Rate Differential: {{ loanProduct.interestRateDifferential }} Floating Interest Rate Calculation Allowed: - {{ loanProduct.isFloatingInterestRateCalculationAllowed ? 'Yes' : 'No' }} + {{ loanProduct.isFloatingInterestRateCalculationAllowed | yesNo }} Floating Interest Rate: {{ loanProduct.defaultDifferentialLendingRate + ' (Min: ' + (loanProduct.minDifferentialLendingRate ? loanProduct.minDifferentialLendingRate : @@ -138,7 +138,7 @@
Terms vary based on loan cycle: - {{ loanProduct.useBorrowerCycle ? 'Yes' : 'No' }} + {{ loanProduct.useBorrowerCycle | yesNo }}
@@ -308,7 +308,7 @@
Is Equal Amortization: - {{ loanProduct.isEqualAmortization ? 'Yes' : 'No' }} + {{ loanProduct.isEqualAmortization | yesNo }}
@@ -323,7 +323,7 @@
Allow Partial Interest Calculation with same as repayment: - {{ loanProduct.allowPartialPeriodInterestCalculation ? 'Yes' : 'No' }} + {{ loanProduct.allowPartialPeriodInterestCalculation | yesNo }}
@@ -397,7 +397,7 @@
Allow fixing of the installment amount: - {{ loanProduct.canDefineInstallmentAmount ? 'Yes' : 'No' }} + {{ loanProduct.canDefineInstallmentAmount | yesNo }}
@@ -412,7 +412,7 @@
Account moves out of NPA only after all arrears have been cleared: - {{ loanProduct.accountMovesOutOfNPAOnlyOnArrearsCompletion ? 'Yes' : 'No' }} + {{ loanProduct.accountMovesOutOfNPAOnlyOnArrearsCompletion | yesNo }}
@@ -422,7 +422,7 @@
Variable Installments allowed: - {{ loanProduct.allowVariableInstallments ? 'Yes' : 'No' }} + {{ loanProduct.allowVariableInstallments | yesNo }}
@@ -433,7 +433,7 @@
Allowed to be used for providing Topup Loans: - {{ loanProduct.canUseForTopup ? 'Yes' : 'No' }} + {{ loanProduct.canUseForTopup | yesNo }}

Interest Recalculation

@@ -442,7 +442,7 @@
Recalculate Interest: - {{ loanProduct.isInterestRecalculationEnabled ? 'Yes' : 'No' }} + {{ loanProduct.isInterestRecalculationEnabled | yesNo }}
@@ -499,7 +499,7 @@
Is Arrears recognization based on original schedule: - {{ loanProduct.isArrearsBasedOnOriginalSchedule ? 'Yes' : 'No' }} + {{ loanProduct.isArrearsBasedOnOriginalSchedule | yesNo }}
@@ -509,7 +509,7 @@
Place Guarantee Funds On-Hold: - {{ loanProduct.holdGuaranteeFunds ? 'Yes' : 'No' }} + {{ loanProduct.holdGuaranteeFunds | yesNo }}
@@ -531,7 +531,7 @@
Enable Multiple Disbursals: - {{ loanProduct.multiDisburseLoan ? 'Yes' : 'No' }} + {{ loanProduct.multiDisburseLoan | yesNo }}
@@ -543,7 +543,7 @@
Disallow Expected Disbursements: - {{ loanProduct.disallowExpectedDisbursements ? 'Yes' : 'No' }} + {{ loanProduct.disallowExpectedDisbursements | yesNo }}
@@ -553,7 +553,7 @@
Enable Down Payments: - {{ loanProduct.enableDownPayment ? 'Yes' : 'No' }} + {{ loanProduct.enableDownPayment | yesNo }}
@@ -561,6 +561,16 @@ {{ loanProduct.disbursedAmountPercentageForDownPayment }} %
+
+ Enable Auto Repayment for Down Payment: + {{ loanProduct.enableAutoRepaymentForDownPayment | yesNo }} +
+ +
+ Do not extend loan schedule for multi disbursal: + {{ loanProduct.disableScheduleExtensionForDownPayment | yesNo }} +
+

Event Settings

@@ -579,29 +589,29 @@
Allow overriding select terms and settings in loan accounts: - {{ loanProduct.allowAttributeConfiguration ? 'Yes' : 'No' }} + {{ loanProduct.allowAttributeConfiguration | yesNo }}
Amortization: - {{ loanProduct.allowAttributeOverrides.amortizationType ? 'Yes' : 'No' }} + {{ loanProduct.allowAttributeOverrides.amortizationType | yesNo }} Interest method: - {{ loanProduct.allowAttributeOverrides.interestType ? 'Yes' : 'No' }} + {{ loanProduct.allowAttributeOverrides.interestType | yesNo }} Repayment strategy: - {{ loanProduct.allowAttributeOverrides.transactionProcessingStrategyCode ? 'Yes' : 'No' }} + {{ loanProduct.allowAttributeOverrides.transactionProcessingStrategyCode | yesNo }} Interest calculation period: - {{ loanProduct.allowAttributeOverrides.interestCalculationPeriodType ? 'Yes' : 'No' }} + {{ loanProduct.allowAttributeOverrides.interestCalculationPeriodType | yesNo }} Arrears tolerance: - {{ loanProduct.allowAttributeOverrides.inArrearsTolerance ? 'Yes' : 'No' }} + {{ loanProduct.allowAttributeOverrides.inArrearsTolerance | yesNo }} Repaid every: - {{ loanProduct.allowAttributeOverrides.repaymentEvery ? 'Yes' : 'No' }} + {{ loanProduct.allowAttributeOverrides.repaymentEvery | yesNo }} Moratorium: {{ loanProduct.allowAttributeOverrides.graceOnPrincipalAndInterestPayment ? 'Yes' : 'No' }} Number of days a loan may be overdue before moving into arrears: - {{ loanProduct.allowAttributeOverrides.graceOnArrearsAgeing ? 'Yes' : 'No' }} + {{ loanProduct.allowAttributeOverrides.graceOnArrearsAgeing | yesNo }} Delinquency Bucket: - {{ loanProduct.delinquencyBucket.id ? 'Yes' : 'No' }} + {{ loanProduct.delinquencyBucket.id | yesNo }}