diff --git a/src/app/loans/create-loans-account/create-loans-account.component.ts b/src/app/loans/create-loans-account/create-loans-account.component.ts
index b53d78c4e9..adcf1a96ff 100644
--- a/src/app/loans/create-loans-account/create-loans-account.component.ts
+++ b/src/app/loans/create-loans-account/create-loans-account.component.ts
@@ -168,6 +168,9 @@ export class CreateLoansAccountComponent extends LoanProductBaseComponent implem
setProductType($event: any): void {
this.productType = $event;
this.loanProductService.initialize(this.productType);
+ this.loansAccountProductTemplate = null;
+ this.productId = null;
+ this.cdr.detectChanges();
}
setDatatables(): void {
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 50afb4ce9b..c1bdc83779 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
@@ -120,7 +120,7 @@
{{ 'labels.heading.Terms' | translate }}
@if (loansAccount.delinquencyStartType) {
{{ 'labels.inputs.Delinquency Start Type' | translate }}:
- {{ camalize(loansAccount.delinquencyStartType) | translateKey: 'catalogs' }}
+ {{ camalize(delinquencyStartTypeOption?.value) | translateKey: 'catalogs' }}
}
@@ -151,7 +151,7 @@ {{ 'labels.heading.Terms' | translate }}
{{ 'labels.inputs.Period Payment Frequency' | translate }}:
{{ loansAccount.repaymentEvery }}
- {{ camalize(loansAccount.repaymentFrequencyType) | translateKey: 'catalogs' }}
}
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 2cd322e5a2..285904896e 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
@@ -45,6 +45,7 @@ import { LoanProductBasicDetails } from 'app/loans/models/loan-product.model';
import { LongTextComponent } from 'app/shared/long-text/long-text.component';
import { Breach, NearBreach } from 'app/products/loan-products/models/loan-product.model';
import { BreachDisplayComponent } from 'app/shared/loan/breach-display/breach-display.component';
+import { OptionData, StringEnumOptionData } from 'app/shared/models/option-data.model';
/**
* Create Loans Account Preview Step
@@ -124,11 +125,17 @@ export class LoansAccountPreviewStepComponent extends LoanProductBaseComponent i
dataSource: any;
productEnableDownPayment = false;
+ repaymentFrequencyTypeOption: OptionData | null = null;
+ delinquencyStartTypeOption: StringEnumOptionData | null = null;
+
constructor() {
super();
}
ngOnChanges(changes: SimpleChanges): void {
+ if (!this.loansAccountProductTemplate?.product) {
+ return;
+ }
this.productEnableDownPayment = this.loansAccountProductTemplate.product.enableDownPayment;
if (this.activeClientMembers) {
this.loanPurposeOptions = this.loansAccountProductTemplate.loanPurposeOptions;
@@ -144,6 +151,30 @@ export class LoansAccountPreviewStepComponent extends LoanProductBaseComponent i
.filter((member: any) => member.selected)
.reduce((acc: number, member: any) => acc + (member.principal ?? 0), 0);
}
+ if (this.loanProductService.isWorkingCapital) {
+ const options = this.loansAccountProductTemplate.options ?? {};
+ this.repaymentFrequencyTypeOption = this.optionDataLookUp(
+ this.loansAccount?.repaymentFrequencyType,
+ options.periodFrequencyTypeOptions ?? []
+ );
+ this.delinquencyStartTypeOption = this.stringEnumOptionDataLookUp(
+ this.loansAccount?.delinquencyStartType,
+ options.delinquencyStartTypeOptions ?? []
+ );
+ } else {
+ this.repaymentFrequencyTypeOption = null;
+ this.delinquencyStartTypeOption = null;
+ }
+ }
+
+ private optionDataLookUp(itemId: any, optionsData: any[]): OptionData | null {
+ const match = optionsData.find((o: any) => o.id === itemId);
+ return match ? { id: match.id, code: match.code, value: match.value || match.name } : null;
+ }
+
+ private stringEnumOptionDataLookUp(itemId: any, optionsData: any[]): StringEnumOptionData | null {
+ const match = optionsData.find((o: any) => o.id === itemId || o.code === itemId);
+ return match ? { id: match.id, code: match.code, value: match.value } : null;
}
loanProductName(id: number): string {
@@ -164,7 +195,10 @@ export class LoansAccountPreviewStepComponent extends LoanProductBaseComponent i
return fund ? fund.name : '';
}
- camalize(word: string) {
+ camalize(word: unknown): string {
+ if (typeof word !== 'string' || word.length === 0) {
+ return '';
+ }
return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
}