+
+
Details
+
+
+
+
+ Name:
+ {{ loanProduct.name }}
+
+
+
+ Short Name:
+ {{ loanProduct.shortName }}
+
+
+
+ Fund Name:
+ {{ loanProduct.fundName }}
+
+
+
+ Include in Customer Loan Counter:
+ {{ loanProduct.includeInBorrowerCycle ? 'Yes' : 'No' }}
+
+
+
+ Start Date:
+ {{ loanProduct.startDate | dateFormat }}
+
+
+
+ Close Date:
+ {{ loanProduct.closeDate | dateFormat }}
+
+
+
+ Description:
+ {{ loanProduct.description }}
+
+
+
Currency
+
+
+
+
+ Currency:
+ {{ loanProduct.currency.name }}
+
+
+
+ Decimal Places:
+ {{ loanProduct.currency.decimalPlaces }}
+
+
+
+ Currency in multiples of:
+ {{ loanProduct.currency.inMultiplesOf }}
+
+
+
+ Installment in multiples of:
+ {{ loanProduct.installmentAmountInMultiplesOf }}
+
+
+
Terms
+
+
+
+
+ Principal:
+ {{ loanProduct.principal | number }}
+ (Min {{ (loanProduct.minPrincipal ? loanProduct.minPrincipal : loanProduct.principal) | number }}
+ : Max {{ (loanProduct.maxPrincipal ? loanProduct.maxPrincipal : loanProduct.principal) | number }})
+
+
+
+
+ Allow Approved / Disbursed Amounts Over Applied:
+ {{ loanProduct.allowApprovedDisbursedAmountsOverApplied ? 'Yes' : 'No' }}
+
+
+
+ Over Applied Amount:
+ {{ loanProduct.overAppliedNumber | number
+ }} %
+ {{ loanProduct.overAppliedNumber | number }} {{
+ loanProduct.currencyCode }}
+
+
+
+ Number of Repayments:
+ {{ loanProduct.numberOfRepayments + ' (Min: ' + (loanProduct.minNumberOfRepayments ?
+ loanProduct.minNumberOfRepayments : loanProduct.numberOfRepayments) + ', Max: ' +
+ (loanProduct.maxNumberOfRepayments ? loanProduct.maxNumberOfRepayments : loanProduct.numberOfRepayments) + ')'
+ }}
+
+
+
+ Linked to floating interest rates:
+ {{ loanProduct.isLinkedToFloatingInterestRates ? 'Yes' : 'No' }}
+
+
+
+ Nominal interest rate:
+ {{ loanProduct.interestRatePerPeriod + ' (Min: ' + (loanProduct.minInterestRatePerPeriod ?
+ loanProduct.minInterestRatePerPeriod : loanProduct.interestRatePerPeriod) + ', Max: ' +
+ (loanProduct.maxInterestRatePerPeriod ? loanProduct.maxInterestRatePerPeriod : loanProduct.interestRatePerPeriod)
+ + ')' + ' ' + loanProduct.interestRateFrequencyType.value }}
+
+
+
+ Floating Lending Interest Rate:
+ {{ loanProduct.floatingRateName }}
+ Interest Rate Differential:
+ {{ loanProduct.interestRateDifferential }}
+ Floating Interest Rate Calculation Allowed:
+ {{ loanProduct.isFloatingInterestRateCalculationAllowed ? 'Yes' : 'No' }}
+ Floating Interest Rate:
+ {{ loanProduct.defaultDifferentialLendingRate + ' (Min: ' +
+ (loanProduct.minDifferentialLendingRate ? loanProduct.minDifferentialLendingRate :
+ loanProduct.defaultDifferentialLendingRate) + ', Max: ' + (loanProduct.maxDifferentialLendingRate ?
+ loanProduct.maxDifferentialLendingRate : loanProduct.defaultDifferentialLendingRate) + ')' }}
+
+
+
+ Terms vary based on loan cycle:
+ {{ loanProduct.useBorrowerCycle ? 'Yes' : 'No' }}
+
+
+
+
+
Principal by loan cycle
+
+
+
+
+ | Condition |
+
+ {{ variation.valueConditionType.value }}
+ |
+
+
+
+ Loan Cycle |
+
+ {{ variation.borrowerCycleNumber }}
+ |
+
+
+
+ Minimum |
+
+ {{ variation.minValue }}
+ |
+
+
+
+ Default |
+
+ {{ variation.defaultValue }}
+ |
+
+
+
+ Maximum |
+
+ {{ variation.maxValue }}
+ |
+
+
+
+
+
+
+
+
+
+
+
+
Number of Repayments by loan cycle
+
+
+
+
+ | Condition |
+
+ {{ variation.valueConditionType.value }}
+ |
+
+
+
+ Loan Cycle |
+
+ {{ variation.borrowerCycleNumber }}
+ |
+
+
+
+ Minimum |
+
+ {{ variation.minValue }}
+ |
+
+
+
+ Default |
+
+ {{ variation.defaultValue }}
+ |
+
+
+
+ Maximum |
+
+ {{ variation.maxValue }}
+ |
+
+
+
+
+
+
+
+
+
+
+
+
Nominal Interest Rate by loan cycle
+
+
+
+
+ | Condition |
+
+ {{ variation.valueConditionType.value }}
+ |
+
+
+
+ Loan Cycle |
+
+ {{ variation.borrowerCycleNumber }}
+ |
+
+
+
+ Minimum |
+
+ {{ variation.minValue }}
+ |
+
+
+
+ Default |
+
+ {{ variation.defaultValue }}
+ |
+
+
+
+ Maximum |
+
+ {{ variation.maxValue }}
+ |
+
+
+
+
+
+
+
+
+
+
+ Repay Every:
+ {{ loanProduct.repaymentEvery + ' ' + loanProduct.repaymentFrequencyType.value }}
+
+
+
+ Minimum days between disbursal and first repayment date:
+ {{ loanProduct.minimumDaysBetweenDisbursalAndFirstRepayment }}
+
+
+
Settings
+
+
+
+
+ Amortization:
+ {{ loanProduct.amortizationType.value }}
+
+
+
+ Is Equal Amortization:
+ {{ loanProduct.isEqualAmortization ? 'Yes' : 'No' }}
+
+
+
+ Interest Method:
+ {{ loanProduct.interestType.value }}
+
+
+
+ Interest Calculation Period:
+ {{ loanProduct.interestCalculationPeriodType.value }}
+
+
+
+ Allow Partial Interest Calculation with same as repayment:
+ {{ loanProduct.allowPartialPeriodInterestCalcualtion ? 'Yes' : 'No' }}
+
+
+
+ Repayment Strategy:
+ {{ loanProduct.transactionProcessingStrategyName }}
+
+
+
+ Grace on principal payment:
+ {{ loanProduct.graceOnPrincipalPayment }}
+
+
+
+ Grace on interest payment:
+ {{ loanProduct.graceOnInterestPayment }}
+
+
+
+ Interest free period:
+ {{ loanProduct.graceOnInterestCharged }}
+
+
+
+ Arrears tolerance:
+ {{ loanProduct.inArrearsTolerance }}
+
+
+
+ Days in year:
+ {{ loanProduct.daysInYearType.value }}
+
+
+
+ Days in month:
+ {{ loanProduct.daysInMonthType.value }}
+
+
+
+ Allow fixing of the installment amount:
+ {{ loanProduct.canDefineInstallmentAmount ? 'Yes' : 'No' }}
+
+
+
+ Number of days a loan may be overdue before moving into arrears:
+ {{ loanProduct.graceOnArrearsAgeing }}
+
+
+
+ Maximum number of days a loan may be overdue before becoming a NPA (non performing asset):
+ {{ loanProduct.overdueDaysForNPA }}
+
+
+
+ Account moves out of NPA only after all arrears have been cleared:
+ {{ loanProduct.accountMovesOutOfNPAOnlyOnArrearsCompletion ? 'Yes' : 'No' }}
+
+
+
+ Principal Threshold (%) for Last Instalment:
+ {{ loanProduct.principalThresholdForLastInstallment }}
+
+
+
+ Variable Installments allowed:
+ {{ loanProduct.allowVariableInstallments ? 'Yes' : 'No' }}
+
+
+
+ Variable Installments:
+ {{ '(Min: ' + loanProduct.minimumGap + ', Max: ' + (loanProduct.maximumGap ?
+ loanProduct.maximumGap : loanProduct.minimumGap) + ')' }}
+
+
+
+ Allowed to be used for providing Topup Loans:
+ {{ loanProduct.canUseForTopup ? 'Yes' : 'No' }}
+
+
+
Interest Recalculation
+
+
+
+
+ Recalculate Interest:
+ {{ loanProduct.isInterestRecalculationEnabled ? 'Yes' : 'No' }}
+
+
+
+
Pre-closure interest calculation rule:
+
{{ loanProduct.interestRecalculationData.preClosureInterestCalculationStrategy.value }}
+
Advance payments adjustment type:
+
{{ loanProduct.interestRecalculationData.rescheduleStrategyType.value }}
+
Interest recalculation compounding on:
+
{{ loanProduct.interestRecalculationData.interestRecalculationCompoundingType.value }}
+
+
Frequency for compounding:
+
+ {{ loanProduct.interestRecalculationData.recalculationCompoundingFrequencyType.value }}
+ {{
+ 'on ' + loanProduct.interestRecalculationData.recalculationCompoundingFrequencyNthDay?.value }}
+ {{
+ loanProduct.interestRecalculationData.recalculationCompoundingFrequencyWeekday?.value }}
+ {{
+ 'on day ' + loanProduct.interestRecalculationData.recalculationCompoundingFrequencyOnDay }}
+
+
+ Frequency Interval for compounding:
+ {{ loanProduct.interestRecalculationData.recalculationCompoundingFrequencyInterval }}
+
+
+
+ Frequency for recalculate Outstanding Principal:
+
+ {{ loanProduct.interestRecalculationData.recalculationRestFrequencyType.value }}
+ {{
+ 'on ' + loanProduct.interestRecalculationData.recalculationRestFrequencyNthDay?.value }}
+ {{
+ loanProduct.interestRecalculationData.recalculationRestFrequencyWeekday?.value }}
+ {{
+ 'on day ' + loanProduct.interestRecalculationData.recalculationRestFrequencyOnDay }}
+
+
+
+
Frequency Interval for recalculation:
+
{{ loanProduct.interestRecalculationData.recalculationRestFrequencyInterval }}
+
+ Rest Frequency Date:
+ {{ loanProduct.interestRecalculationData.recalculationRestFrequencyDate }}
+
+
+
+ Is Arrears recognization based on original schedule:
+ {{ loanProduct.isArrearsBasedOnOriginalSchedule ? 'Yes' : 'No' }}
+
+
+
+
Guarantee Requirements
+
+
+
+
+ Place Guarantee Funds On-Hold:
+ {{ loanProduct.holdGuaranteeFunds ? 'Yes' : 'No' }}
+
+
+
+
Mandatory Guarantee(%):
+
{{ loanProduct.productGuaranteeData.mandatoryGuarantee }}
+
+ Minimum Guarantee from Own Funds(%):
+ {{ loanProduct.productGuaranteeData.minimumGuaranteeFromOwnFunds }}
+
+
+ Minimum Guarantee from Guarantor Funds(%):
+ {{ loanProduct.productGuaranteeData.minimumGuaranteeFromGuarantor }}
+
+
+
+
Loan Tranche Details
+
+
+
+
+ Enable Multiple Disbursals:
+ {{ loanProduct.multiDisburseLoan ? 'Yes' : 'No' }}
+
+
+
+
Maximum Tranche count:
+
{{ loanProduct.maxTrancheCount }}
+
+ Maximum allowed outstanding balance:
+ {{ loanProduct.outstandingLoanBalance }}
+
+
+ Disallow Expected Disbursements:
+ {{ loanProduct.disallowExpectedDisbursements ? 'Yes' : 'No' }}
+
+
+
+
Configurable Terms and Settings
+
+
+
+
+ Allow overriding select terms and settings in loan accounts:
+ {{ loanProduct.allowAttributeConfiguration ? 'Yes' : 'No' }}
+
+
+
+ Amortization:
+ {{ loanProduct.allowAttributeOverrides.amortizationType ? 'Yes' : 'No' }}
+ Interest method:
+ {{ loanProduct.allowAttributeOverrides.interestType ? 'Yes' : 'No' }}
+ Repayment strategy:
+ {{ loanProduct.allowAttributeOverrides.transactionProcessingStrategyCode ? 'Yes' : 'No' }}
+ Interest calculation period:
+ {{ loanProduct.allowAttributeOverrides.interestCalculationPeriodType ? 'Yes' : 'No' }}
+ Arrears tolerance:
+ {{ loanProduct.allowAttributeOverrides.inArrearsTolerance ? 'Yes' : 'No' }}
+ Repaid every:
+ {{ loanProduct.allowAttributeOverrides.repaymentEvery ? 'Yes' : 'No' }}
+ Moratorium:
+ {{ loanProduct.allowAttributeOverrides.graceOnPrincipalAndInterestPayment ? 'Yes' : 'No'
+ }}
+ Number of days a loan may be overdue before moving into arrears:
+ {{ loanProduct.allowAttributeOverrides.graceOnArrearsAgeing ? 'Yes' : 'No' }}
+ Delinquency Bucket:
+ {{ loanProduct.delinquencyBucket.id ? 'Yes' : 'No' }}
+
+
+
+
+
Charges
+
+
+
+
+
+
+ | Name |
+
+ {{ charge.name + ', ' + charge.currency.displaySymbol }}
+ |
+
+
+
+ Type |
+
+ {{ charge.chargeCalculationType.value }}
+ |
+
+
+
+ Amount |
+
+ {{ charge.amount }}
+ |
+
+
+
+ Collected On |
+
+ {{ charge.chargeTimeType.value }}
+ |
+
+
+
+
+
+
+
+
Overdue Charges
+
+
+
+
+
+
+ | Name |
+
+ {{ overdueCharge.name + ', ' + overdueCharge.currency.displaySymbol }}
+ |
+
+
+
+ Type |
+
+ {{ overdueCharge.chargeCalculationType.value }}
+ |
+
+
+
+ Amount |
+
+ {{ overdueCharge.amount }}
+ |
+
+
+
+ Collected On |
+
+ {{ overdueCharge.chargeTimeType.value }}
+ |
+
+
+
+
+
+
+
+
+
+
Accounting
+
+
+
+
+ Type:
+ {{ loanProduct.accountingRule.value }}
+
+
+
= 2 && loanProduct.accountingRule.id <= 4" fxLayout="row wrap"
+ fxLayout.lt-md="column">
+
+
Assets / Liabilities
+
+
+ Fund source:
+ ({{loanProduct.accountingMappings.fundSourceAccount.glCode}}) {{
+ loanProduct.accountingMappings.fundSourceAccount.name }}
+
+
+
Assets
+
+
+
Loan portfolio:
+
({{loanProduct.accountingMappings.loanPortfolioAccount.glCode}}) {{
+ loanProduct.accountingMappings.loanPortfolioAccount.name }}
+
+ Interest Receivable:
+ ({{loanProduct.accountingMappings.receivableInterestAccount.glCode}}) {{
+ loanProduct.accountingMappings.receivableInterestAccount.name }}
+ Fees Receivable:
+ ({{loanProduct.accountingMappings.receivableInterestAccount.glCode}}) {{
+ loanProduct.accountingMappings.receivableInterestAccount.name }}
+ Penalties Receivable:
+ ({{loanProduct.accountingMappings.receivablePenaltyAccount.glCode}}) {{
+ loanProduct.accountingMappings.receivablePenaltyAccount.name }}
+
+
Transfer in suspense:
+
({{loanProduct.accountingMappings.transfersInSuspenseAccount.glCode}}) {{
+ loanProduct.accountingMappings.transfersInSuspenseAccount.name }}
+
+
+
Income
+
+
+ Income from Interest:
+ ({{loanProduct.accountingMappings.interestOnLoanAccount.glCode}}) {{
+ loanProduct.accountingMappings.interestOnLoanAccount.name }}
+ Income from fees:
+ ({{loanProduct.accountingMappings.incomeFromFeeAccount.glCode}}) {{
+ loanProduct.accountingMappings.incomeFromFeeAccount.name }}
+ Income from penalties:
+ ({{loanProduct.accountingMappings.incomeFromPenaltyAccount.glCode}}) {{
+ loanProduct.accountingMappings.incomeFromPenaltyAccount.name }}
+ Income from Recovery Repayments:
+ ({{loanProduct.accountingMappings.incomeFromRecoveryAccount.glCode}}) {{
+ loanProduct.accountingMappings.incomeFromRecoveryAccount.name }}
+
+
+
Expenses
+
+
+ Losses written off:
+ ({{loanProduct.accountingMappings.writeOffAccount.glCode}}) {{
+ loanProduct.accountingMappings.writeOffAccount.name }}
+ Goodwill credit:
+ ({{loanProduct.accountingMappings.goodwillCreditAccount.glCode}}) {{
+ loanProduct.accountingMappings.goodwillCreditAccount.name }}
+
+
+
Liabilities
+
+
+ Over payment liability:
+ ({{loanProduct.accountingMappings.overpaymentLiabilityAccount.glCode}}) {{
+ loanProduct.accountingMappings.overpaymentLiabilityAccount.name }}
+
+
+
+
+
Advanced Accounting Rules
+
+
+
+
+
+
Fund Sources for Payment Channels
+
+
+
+
+ | Payment Type |
+
+ {{ paymentFundSource.paymentType.name }}
+ |
+
+
+
+ Fund Source |
+
+ {{ paymentFundSource.fundSourceAccount.name }}
+ |
+
+
+
+
+
+
+
+
+
+
+
+
Fees to Specific Income Accounts
+
+
+
+
+ | Fees |
+
+ {{ feesIncome.charge.name }}
+ |
+
+
+
+ Income Account |
+
+ {{ feesIncome.incomeAccount.name }}
+ |
+
+
+
+
+
+
+
+
+
+
+
+
Penalties to Specific Income Accounts
+
+
+
+
+ | Penalty |
+
+ {{ penaltyIncome.charge.name }}
+ |
+
+
+
+ Income Account |
+
+ {{ penaltyIncome.incomeAccount.name }}
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/app/products/loan-products/view-loan-product/general-tab/general-tab.component.scss b/src/app/products/loan-products/view-loan-product/general-tab/general-tab.component.scss
new file mode 100644
index 000000000..8f6633e58
--- /dev/null
+++ b/src/app/products/loan-products/view-loan-product/general-tab/general-tab.component.scss
@@ -0,0 +1,12 @@
+@import "assets/styles/helper";
+
+.tab-container {
+ padding: 1%;
+ margin: 1%;
+}
+
+.mat-h3 {
+ margin-top: 10px !important;
+ font-weight: 300;
+ color: $status-approved;
+}
diff --git a/src/app/products/loan-products/view-loan-product/general-tab/general-tab.component.spec.ts b/src/app/products/loan-products/view-loan-product/general-tab/general-tab.component.spec.ts
new file mode 100644
index 000000000..e1e449e17
--- /dev/null
+++ b/src/app/products/loan-products/view-loan-product/general-tab/general-tab.component.spec.ts
@@ -0,0 +1,25 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { GeneralTabComponent } from './general-tab.component';
+
+describe('GeneralTabComponent', () => {
+ let component: GeneralTabComponent;
+ let fixture: ComponentFixture