diff --git a/src/app/core/utils/commons.ts b/src/app/core/utils/commons.ts
new file mode 100644
index 000000000..f10c4fb5f
--- /dev/null
+++ b/src/app/core/utils/commons.ts
@@ -0,0 +1,21 @@
+import { Injectable } from '@angular/core';
+
+@Injectable({
+ providedIn: 'root'
+})
+export class Commons {
+
+ constructor() {}
+
+ public dynamicSort(property: string) {
+ let sortOrder = 1;
+ if (property[0] === '-') {
+ sortOrder = -1;
+ property = property.substr(1);
+ }
+ return (a: any, b: any) => {
+ const result = (a[property] < b[property]) ? -1 : (a[property] > b[property]) ? 1 : 0;
+ return result * sortOrder;
+ };
+}
+}
diff --git a/src/app/deposits/fixed-deposits/fixed-deposit-account-stepper/fixed-deposit-account-settings-step/fixed-deposit-account-settings-step.component.ts b/src/app/deposits/fixed-deposits/fixed-deposit-account-stepper/fixed-deposit-account-settings-step/fixed-deposit-account-settings-step.component.ts
index 382b734d0..7f68b0407 100644
--- a/src/app/deposits/fixed-deposits/fixed-deposit-account-stepper/fixed-deposit-account-settings-step/fixed-deposit-account-settings-step.component.ts
+++ b/src/app/deposits/fixed-deposits/fixed-deposit-account-stepper/fixed-deposit-account-settings-step/fixed-deposit-account-settings-step.component.ts
@@ -123,7 +123,6 @@ export class FixedDepositAccountSettingsStepComponent implements OnInit, OnChang
}
});
this.fixedDepositAccountSettingsForm.get('maturityInstructionId').valueChanges.subscribe((value: number) => {
- console.log(value);
if (value > 100) {
this.fixedDepositAccountSettingsForm.addControl('transferToSavingsId', new UntypedFormControl('', Validators.required));
this.fixedDepositAccountSettingsForm.get('transferToSavingsId').patchValue(this.fixedDepositsAccountTemplate.transferToSavingsId && this.fixedDepositsAccountTemplate.transferToSavingsId.id);
diff --git a/src/app/loans/loans-account-stepper/loans-account-details-step/loans-account-details-step.component.html b/src/app/loans/loans-account-stepper/loans-account-details-step/loans-account-details-step.component.html
index 1184b551e..6ad87e4a7 100644
--- a/src/app/loans/loans-account-stepper/loans-account-details-step/loans-account-details-step.component.html
+++ b/src/app/loans/loans-account-stepper/loans-account-details-step/loans-account-details-step.component.html
@@ -2,7 +2,7 @@
-
+
{{"labels.inputs.Product Name" | translate}}
@@ -13,6 +13,14 @@
{{"labels.inputs.Product Name" | translate}} {{"labels.commons.is" | translate}} {{"labels.commons.required" | translate}}
+
+
+
+
+
+ {{"labels.inputs.External id" | translate}}
+
+
{{"labels.inputs.Loan officer" | translate}}
@@ -22,9 +30,6 @@
-
-
-
{{"labels.inputs.Loan Purpose" | translate}}
@@ -66,11 +71,6 @@
-
- {{"labels.inputs.External id" | translate}}
-
-
-
{{"labels.heading.Savings Linkage" | translate}}
diff --git a/src/app/loans/loans-account-stepper/loans-account-details-step/loans-account-details-step.component.ts b/src/app/loans/loans-account-stepper/loans-account-details-step/loans-account-details-step.component.ts
index d5e810153..7b9f1712a 100644
--- a/src/app/loans/loans-account-stepper/loans-account-details-step/loans-account-details-step.component.ts
+++ b/src/app/loans/loans-account-stepper/loans-account-details-step/loans-account-details-step.component.ts
@@ -7,6 +7,7 @@ import { TooltipPosition } from '@angular/material/tooltip';
/** Custom Services */
import { LoansService } from '../../loans.service';
+import { Commons } from 'app/core/utils/commons';
/**
* Loans Account Details Step
@@ -55,7 +56,8 @@ export class LoansAccountDetailsStepComponent implements OnInit {
constructor(private formBuilder: UntypedFormBuilder,
private loansService: LoansService,
private route: ActivatedRoute,
- private settingsService: SettingsService) {
+ private settingsService: SettingsService,
+ private commons: Commons) {
this.loanId = this.route.snapshot.params['loanId'];
}
@@ -64,7 +66,7 @@ export class LoansAccountDetailsStepComponent implements OnInit {
this.maxDate = this.settingsService.maxFutureDate;
this.buildDependencies();
if (this.loansAccountTemplate) {
- this.productData = this.loansAccountTemplate.productOptions;
+ this.productData = this.loansAccountTemplate.productOptions.sort(this.commons.dynamicSort('name'));
if (this.loansAccountTemplate.loanProductId) {
this.loansAccountDetailsForm.patchValue({
'productId': this.loansAccountTemplate.loanProductId,
diff --git a/src/app/loans/loans-account-stepper/loans-account-preview-step/loans-account-preview-step.component.html b/src/app/loans/loans-account-stepper/loans-account-preview-step/loans-account-preview-step.component.html
index 0744d0de0..9fb4b4108 100644
--- a/src/app/loans/loans-account-stepper/loans-account-preview-step/loans-account-preview-step.component.html
+++ b/src/app/loans/loans-account-stepper/loans-account-preview-step/loans-account-preview-step.component.html
@@ -129,7 +129,7 @@
{{"labels.inputs.Repayment strategy" | translate}}:
{{ loansAccount.transactionProcessingStrategyCode | find:loansAccountTemplate.transactionProcessingStrategyOptions:'code':'name' }}
+ fxFlex="60%">{{ loansAccount.transactionProcessingStrategyCode | find:loansAccountProductTemplate.transactionProcessingStrategyOptions:'code':'name' }}
{{"labels.heading.Moratorium" | translate}}
diff --git a/src/app/loans/loans-account-stepper/loans-account-preview-step/loans-account-preview-step.component.ts b/src/app/loans/loans-account-stepper/loans-account-preview-step/loans-account-preview-step.component.ts
index e0571c3c6..bc3d36f7b 100644
--- a/src/app/loans/loans-account-stepper/loans-account-preview-step/loans-account-preview-step.component.ts
+++ b/src/app/loans/loans-account-stepper/loans-account-preview-step/loans-account-preview-step.component.ts
@@ -9,7 +9,7 @@ import { Component, OnInit, Input, Output, EventEmitter, OnDestroy } from '@angu
templateUrl: './loans-account-preview-step.component.html',
styleUrls: ['./loans-account-preview-step.component.scss']
})
-export class LoansAccountPreviewStepComponent implements OnInit, OnDestroy {
+export class LoansAccountPreviewStepComponent implements OnInit {
/** Loans Account Template */
@Input() loansAccountTemplate: any = [];
@@ -29,6 +29,4 @@ export class LoansAccountPreviewStepComponent implements OnInit, OnDestroy {
ngOnInit() { }
- ngOnDestroy(): void { }
-
}
diff --git a/src/app/loans/loans-account-stepper/loans-account-terms-step/loans-account-terms-step.component.html b/src/app/loans/loans-account-stepper/loans-account-terms-step/loans-account-terms-step.component.html
index bcf515934..f025dd128 100644
--- a/src/app/loans/loans-account-stepper/loans-account-terms-step/loans-account-terms-step.component.html
+++ b/src/app/loans/loans-account-stepper/loans-account-terms-step/loans-account-terms-step.component.html
@@ -121,6 +121,23 @@
{{"labels.inputs.Is Equal Amortization" | translate}}
+
+
{{"labels.inputs.Loan Schedule Type" | translate}}
+
{{ loanScheduleType.value }}
+
+
+
+ {{"labels.inputs.Repayment Strategy" | translate}}
+
+
+ {{ transactionProcessingStrategy.name }}
+
+
+
+ {{"labels.inputs.Repayment Strategy" | translate}} {{"labels.commons.is" | translate}} {{"labels.commons.required" | translate}}
+
+
+
@@ -182,18 +199,6 @@
-
- {{"labels.inputs.Repayment strategy" | translate}}
-
-
- {{ transactionProcessingStrategy.name }}
-
-
-
- {{"labels.inputs.Repayment Strategy" | translate}} {{"labels.commons.is" | translate}} {{"labels.commons.required" | translate}}
-
-
-
{{"labels.heading.Moratorium" | translate}}
diff --git a/src/app/loans/loans-account-stepper/loans-account-terms-step/loans-account-terms-step.component.ts b/src/app/loans/loans-account-stepper/loans-account-terms-step/loans-account-terms-step.component.ts
index 483a06e55..10cd5c27a 100644
--- a/src/app/loans/loans-account-stepper/loans-account-terms-step/loans-account-terms-step.component.ts
+++ b/src/app/loans/loans-account-stepper/loans-account-terms-step/loans-account-terms-step.component.ts
@@ -4,12 +4,14 @@ import { UntypedFormGroup, UntypedFormBuilder, Validators, FormArray } from '@an
import { MatDialog } from '@angular/material/dialog';
import { ActivatedRoute } from '@angular/router';
import { LoansAccountAddCollateralDialogComponent } from 'app/loans/custom-dialog/loans-account-add-collateral-dialog/loans-account-add-collateral-dialog.component';
+import { LoanProducts } from 'app/products/loan-products/loan-products';
import { SettingsService } from 'app/settings/settings.service';
import { DeleteDialogComponent } from 'app/shared/delete-dialog/delete-dialog.component';
import { FormDialogComponent } from 'app/shared/form-dialog/form-dialog.component';
import { DatepickerBase } from 'app/shared/form-dialog/formfield/model/datepicker-base';
import { FormfieldBase } from 'app/shared/form-dialog/formfield/model/formfield-base';
import { InputBase } from 'app/shared/form-dialog/formfield/model/input-base';
+import { CodeName, OptionData } from 'app/shared/models/option-data.model';
/**
* Create Loans Account Terms Step
@@ -61,9 +63,9 @@ export class LoansAccountTermsStepComponent implements OnInit, OnChanges {
/** Multi Disbursement Data */
disbursementDataSource: {}[] = [];
currencyDisplaySymbol = '$';
- /** Loan Transaction strategies */
+ /** Loan repayment strategies */
transactionProcessingStrategyOptions: any = [];
-
+ repaymentStrategyDisabled = false;
/** Check if value of collateral added is more than principal amount */
isCollateralSufficient = false;
/** Total value of all collateral added to a loan */
@@ -83,6 +85,8 @@ export class LoansAccountTermsStepComponent implements OnInit, OnChanges {
loanId: any = null;
+ loanScheduleType: OptionData | null = null;
+
/**
* Create Loans Account Terms Form
* @param formBuilder FormBuilder
@@ -440,7 +444,24 @@ export class LoansAccountTermsStepComponent implements OnInit, OnChanges {
this.amortizationTypeData = this.loansAccountProductTemplate.amortizationTypeOptions;
this.interestCalculationPeriodTypeData = this.loansAccountProductTemplate.interestCalculationPeriodTypeOptions;
this.clientActiveLoanData = this.loansAccountProductTemplate.clientActiveLoanOptions;
- this.transactionProcessingStrategyOptions = this.loansAccountProductTemplate.transactionProcessingStrategyOptions;
+ this.loanScheduleType = this.loansAccountProductTemplate.loanScheduleType;
+ this.transactionProcessingStrategyOptions = [];
+ if (this.loanScheduleType.code === LoanProducts.LOAN_SCHEDULE_TYPE_CUMULATIVE) {
+ // Filter Advanced Payment Allocation Strategy
+ this.transactionProcessingStrategyOptions = this.loansAccountProductTemplate.transactionProcessingStrategyOptions.filter(
+ (cn: CodeName) => !LoanProducts.isAdvancedPaymentAllocationStrategy(cn.code)
+ );
+ this.repaymentStrategyDisabled = false;
+ } else {
+ // Only Advanced Payment Allocation Strategy
+ this.loansAccountProductTemplate.transactionProcessingStrategyOptions.some(
+ (cn: CodeName) => {
+ if (LoanProducts.isAdvancedPaymentAllocationStrategy(cn.code)) {
+ this.transactionProcessingStrategyOptions.push(cn);
+ }
+ });
+ this.repaymentStrategyDisabled = true;
+ }
}
/**
diff --git a/src/app/products/charges/view-charge/view-charge.component.ts b/src/app/products/charges/view-charge/view-charge.component.ts
index c4e3a971f..144a5a27c 100644
--- a/src/app/products/charges/view-charge/view-charge.component.ts
+++ b/src/app/products/charges/view-charge/view-charge.component.ts
@@ -36,7 +36,6 @@ export class ViewChargeComponent implements OnInit {
private router: Router,
private dialog: MatDialog) {
this.route.data.subscribe((data: { charge: any }) => {
- console.log(data.charge);
this.chargeData = data.charge;
if (this.chargeData.minCap) {
this.minCap = true;
diff --git a/src/assets/translations/cs-CS.json b/src/assets/translations/cs-CS.json
index 8f4606017..c177d2cf9 100644
--- a/src/assets/translations/cs-CS.json
+++ b/src/assets/translations/cs-CS.json
@@ -1479,6 +1479,8 @@
"Loan Product": "Úvěrový produkt",
"Loan Purpose": "Účel půjčky",
"Loan Reschedules": "Termíny půjček",
+ "Loan Schedule Processing Type": "Typ zpracování plánu úvěru",
+ "Loan Schedule Type": "Typ harmonogramu půjčky",
"Loan Screen Reports": "Zprávy obrazovky půjčky",
"Loan Status": "Stav půjčky",
"Loan Term": "Doba půjčky",
diff --git a/src/assets/translations/de-DE.json b/src/assets/translations/de-DE.json
index 2c79b3337..07f8608dc 100644
--- a/src/assets/translations/de-DE.json
+++ b/src/assets/translations/de-DE.json
@@ -1479,6 +1479,8 @@
"Loan Product": "Darlehensprodukt",
"Loan Purpose": "Darlehen Zweck",
"Loan Reschedules": "Kreditumschuldungen",
+ "Loan Schedule Processing Type": "Kredite Scheduleverarbeitungstyp",
+ "Loan Schedule Type": "Darlehensplan Typ",
"Loan Screen Reports": "Kreditbildschirmberichte",
"Loan Status": "Kreditstatus",
"Loan Term": "Kreditlaufzeit",
diff --git a/src/assets/translations/en-US.json b/src/assets/translations/en-US.json
index 8a86bb5c7..81c50ae32 100644
--- a/src/assets/translations/en-US.json
+++ b/src/assets/translations/en-US.json
@@ -1478,6 +1478,8 @@
"Loan Product": "Loan Product",
"Loan Purpose": "Loan Purpose",
"Loan Reschedules": "Loan Reschedules",
+ "Loan Schedule Processing Type": "Loan Schedule Processing Type",
+ "Loan Schedule Type": "Loan Schedule Type",
"Loan Screen Reports": "Loan Screen Reports",
"Loan Status": "Loan Status",
"Loan Term": "Loan Term",
diff --git a/src/assets/translations/es-MX.json b/src/assets/translations/es-MX.json
index 4049dac68..16573920e 100644
--- a/src/assets/translations/es-MX.json
+++ b/src/assets/translations/es-MX.json
@@ -847,7 +847,7 @@
"Total Withdrawals": "Retiros totales",
"Transaction Details": "Detalles de la transacción",
"Transaction Reverted": "Transacción revertida",
- "Transactions": "Actas",
+ "Transactions": "Transacciones",
"Transferred From": "Transferido desde",
"Transferred To": "Transferido a",
"Transferring From Details": "Transferir desde detalles",
@@ -1478,7 +1478,9 @@
"Loan Parameters": "Parámetros del Crédito",
"Loan Product": "Producto de Crédito",
"Loan Purpose": "Propósito del Crédito",
+ "Loan Schedule Processing Type": "Tipo de procesamiento del calendario de pagos",
"Loan Reschedules": "Reprogramaciones de Créditos",
+ "Loan Schedule Type": "Tipo de calendario de pagos",
"Loan Screen Reports": "Informes de pantalla de Créditos",
"Loan Status": "Estado del Crédito",
"Loan Term": "Plazo del Crédito",
@@ -1949,7 +1951,7 @@
"Transaction Reference": "Referencia de transacción",
"Transaction Type": "tipo de transacción",
"Transaction date": "Fecha de Transacción",
- "Transactions": "Actas",
+ "Transactions": "Transacciones",
"Transfer Date": "Fecha de transferencia",
"Transfer Date From": "Fecha de transferencia desde",
"Transfer Date To": "Fecha de transferencia a",
diff --git a/src/assets/translations/fr-FR.json b/src/assets/translations/fr-FR.json
index 7f0459bba..33803388c 100644
--- a/src/assets/translations/fr-FR.json
+++ b/src/assets/translations/fr-FR.json
@@ -1479,6 +1479,8 @@
"Loan Product": "Produit de prêt",
"Loan Purpose": "Objectif du prêt",
"Loan Reschedules": "Rééchelonnements de prêt",
+ "Loan Schedule Processing Type": "Type de traitement des horaires de prêt",
+ "Loan Schedule Type": "Type de calendrier de prêt",
"Loan Screen Reports": "Rapports d'écran de prêt",
"Loan Status": "Statut du prêt",
"Loan Term": "Durée du prêt",
diff --git a/src/assets/translations/it-IT.json b/src/assets/translations/it-IT.json
index 11da9d15c..dfeb61efa 100644
--- a/src/assets/translations/it-IT.json
+++ b/src/assets/translations/it-IT.json
@@ -1479,6 +1479,8 @@
"Loan Product": "Prodotto di prestito",
"Loan Purpose": "Scopo del prestito",
"Loan Reschedules": "Riprogrammazione del prestito",
+ "Loan Schedule Processing Type": "Tipo di elaborazione del programma di prestito",
+ "Loan Schedule Type": "Tipo di programma di prestito",
"Loan Screen Reports": "Rapporti sullo schermo del prestito",
"Loan Status": "Stato del prestito",
"Loan Term": "Durata del prestito",
diff --git a/src/assets/translations/ko-KO.json b/src/assets/translations/ko-KO.json
index 616d65b5e..dfdafc9d3 100644
--- a/src/assets/translations/ko-KO.json
+++ b/src/assets/translations/ko-KO.json
@@ -1479,6 +1479,8 @@
"Loan Product": "대출상품",
"Loan Purpose": "대출목적",
"Loan Reschedules": "대출 일정 조정",
+ "Loan Schedule Processing Type": "대출 일정 처리 유형",
+ "Loan Schedule Type": "대출 일정 유형",
"Loan Screen Reports": "대출 화면 보고서",
"Loan Status": "대출현황",
"Loan Term": "대출기간",
diff --git a/src/assets/translations/lt-LT.json b/src/assets/translations/lt-LT.json
index f505fd4b1..a928d3535 100644
--- a/src/assets/translations/lt-LT.json
+++ b/src/assets/translations/lt-LT.json
@@ -1479,6 +1479,8 @@
"Loan Product": "Paskolos produktas",
"Loan Purpose": "Paskolos tikslas",
"Loan Reschedules": "Paskolų atidėjimas",
+ "Loan Schedule Processing Type": "Paskolų grafiko apdorojimo tipas",
+ "Loan Schedule Type": "Paskolos grafiko tipas",
"Loan Screen Reports": "Paskolos ekrano ataskaitos",
"Loan Status": "Paskolos būsena",
"Loan Term": "Paskolos terminas",
diff --git a/src/assets/translations/lv-LV.json b/src/assets/translations/lv-LV.json
index 0bb9c5d62..b44b3ae6b 100644
--- a/src/assets/translations/lv-LV.json
+++ b/src/assets/translations/lv-LV.json
@@ -1479,6 +1479,8 @@
"Loan Product": "Aizdevuma produkts",
"Loan Purpose": "Aizdevuma mērķis",
"Loan Reschedules": "Aizdevuma grafiki",
+ "Loan Schedule Processing Type": "Aizdevumu grafika apstrādes veids",
+ "Loan Schedule Type": "Aizdevuma grafika tips",
"Loan Screen Reports": "Aizdevuma ekrāna pārskati",
"Loan Status": "Aizdevuma statuss",
"Loan Term": "Aizdevuma termiņš",
diff --git a/src/assets/translations/ne-NE.json b/src/assets/translations/ne-NE.json
index db8fef744..69855b24f 100644
--- a/src/assets/translations/ne-NE.json
+++ b/src/assets/translations/ne-NE.json
@@ -1479,6 +1479,8 @@
"Loan Product": "ऋण उत्पादन",
"Loan Purpose": "ऋण उद्देश्य",
"Loan Reschedules": "ऋण पुन: तालिका",
+ "Loan Schedule Processing Type": "ऋण ण अनुसूची प्रशोधन गर्ने प्रकार",
+ "Loan Schedule Type": "ऋण ण तालिका प्रकार",
"Loan Screen Reports": "ऋण स्क्रिन रिपोर्टहरू",
"Loan Status": "ऋण स्थिति",
"Loan Term": "ऋण अवधि",
diff --git a/src/assets/translations/pt-PT.json b/src/assets/translations/pt-PT.json
index 80f85df5d..66fdb2eb0 100644
--- a/src/assets/translations/pt-PT.json
+++ b/src/assets/translations/pt-PT.json
@@ -1479,6 +1479,8 @@
"Loan Product": "Produto de empréstimo",
"Loan Purpose": "Finalidade do empréstimo",
"Loan Reschedules": "Reprogramações de empréstimos",
+ "Loan Schedule Processing Type": "Tipo de processamento de cronograma de empréstimo",
+ "Loan Schedule Type": "Tipo de cronograma de empréstimo",
"Loan Screen Reports": "Relatórios de tela de empréstimo",
"Loan Status": "Situação do empréstimo",
"Loan Term": "Prazo do empréstimo",
diff --git a/src/assets/translations/sw-SW.json b/src/assets/translations/sw-SW.json
index bc95d3fe8..300220b96 100644
--- a/src/assets/translations/sw-SW.json
+++ b/src/assets/translations/sw-SW.json
@@ -1479,6 +1479,8 @@
"Loan Product": "Bidhaa ya Mkopo",
"Loan Purpose": "Madhumuni ya Mkopo",
"Loan Reschedules": "Ratiba za Mikopo",
+ "Loan Schedule Processing Type": "Aina ya usindikaji wa ratiba ya mkopo",
+ "Loan Schedule Type": "Aina ya ratiba ya mkopo",
"Loan Screen Reports": "Ripoti za skrini ya mkopo",
"Loan Status": "Hali ya Mkopo",
"Loan Term": "Muda wa Mkopo",