diff --git a/src/app/deposits/recurring-deposits/recurring-deposits-account-stepper/recurring-deposits-account-details-step/recurring-deposits-account-details-step.component.ts b/src/app/deposits/recurring-deposits/recurring-deposits-account-stepper/recurring-deposits-account-details-step/recurring-deposits-account-details-step.component.ts
index 50fb89362..6c484b099 100644
--- a/src/app/deposits/recurring-deposits/recurring-deposits-account-stepper/recurring-deposits-account-details-step/recurring-deposits-account-details-step.component.ts
+++ b/src/app/deposits/recurring-deposits/recurring-deposits-account-stepper/recurring-deposits-account-details-step/recurring-deposits-account-details-step.component.ts
@@ -8,7 +8,7 @@
/** Angular Imports */
import { Component, OnInit, Input, Output, EventEmitter, inject, ChangeDetectorRef } from '@angular/core';
-import { UntypedFormGroup, UntypedFormBuilder, Validators } from '@angular/forms';
+import { UntypedFormGroup, UntypedFormBuilder, Validators, FormsModule } from '@angular/forms';
import { SettingsService } from 'app/settings/settings.service';
import { Dates } from 'app/core/utils/dates';
@@ -33,7 +33,8 @@ import { IntroducerSearchComponent } from 'app/shared/introducer-search/introduc
MatStepperPrevious,
FaIconComponent,
MatStepperNext,
- IntroducerSearchComponent
+ IntroducerSearchComponent,
+ FormsModule
]
})
export class RecurringDepositsAccountDetailsStepComponent implements OnInit {
@@ -69,6 +70,10 @@ export class RecurringDepositsAccountDetailsStepComponent implements OnInit {
/** Local copy of product template for displaying classification info */
productTemplate: any = null;
+ accountTypeOptions: string[] = [];
+ customerSegmentOptions: string[] = [];
+ selectedAccountType: string | null = null;
+ selectedCustomerSegment: string | null = null;
constructor() {
this.createRecurringDepositsAccountDetailsForm();
@@ -140,6 +145,10 @@ export class RecurringDepositsAccountDetailsStepComponent implements OnInit {
}
}
this.productTemplate = response;
+ this.accountTypeOptions = this.extractOptions(response.accountTypeOptions, response.accountType);
+ this.customerSegmentOptions = this.extractOptions(response.customerSegmentOptions, response.customerSegment);
+ this.selectedAccountType = response.accountType ?? null;
+ this.selectedCustomerSegment = response.customerSegment ?? null;
this.recurringDepositsAccountProductTemplate.emit(response);
this.fieldOfficerData = response.fieldOfficerOptions;
this.isProductSelected = true;
@@ -173,6 +182,13 @@ export class RecurringDepositsAccountDetailsStepComponent implements OnInit {
* Formats template dates into the current CBS date format.
* Handles backend date arrays like [2026, 4, 20] as well as strings and Date objects.
*/
+ private extractOptions(options: any[], fallback?: string): string[] {
+ if (Array.isArray(options) && options.length > 0) {
+ return options.map((o: any) => o.value ?? o.name ?? o);
+ }
+ return fallback ? [fallback] : [];
+ }
+
formatTemplateDate(value: any): string {
if (!value) {
return '';
diff --git a/src/app/savings/savings-account-stepper/savings-account-details-step/savings-account-details-step.component.html b/src/app/savings/savings-account-stepper/savings-account-details-step/savings-account-details-step.component.html
index 4bce9f33d..8bf0e988a 100644
--- a/src/app/savings/savings-account-stepper/savings-account-details-step/savings-account-details-step.component.html
+++ b/src/app/savings/savings-account-stepper/savings-account-details-step/savings-account-details-step.component.html
@@ -78,12 +78,20 @@
Account Type
-
+
+ @for (opt of accountTypeOptions; track opt) {
+ {{ opt }}
+ }
+
Customer Segment
-
+
+ @for (opt of customerSegmentOptions; track opt) {
+ {{ opt }}
+ }
+
diff --git a/src/app/savings/savings-account-stepper/savings-account-details-step/savings-account-details-step.component.ts b/src/app/savings/savings-account-stepper/savings-account-details-step/savings-account-details-step.component.ts
index 7bdaefa68..f4af5679d 100644
--- a/src/app/savings/savings-account-stepper/savings-account-details-step/savings-account-details-step.component.ts
+++ b/src/app/savings/savings-account-stepper/savings-account-details-step/savings-account-details-step.component.ts
@@ -8,7 +8,7 @@
/** Angular Imports */
import { Component, OnInit, Input, Output, EventEmitter, inject, ChangeDetectorRef } from '@angular/core';
-import { UntypedFormGroup, UntypedFormBuilder, Validators, ReactiveFormsModule } from '@angular/forms';
+import { UntypedFormGroup, UntypedFormBuilder, Validators, ReactiveFormsModule, FormsModule } from '@angular/forms';
import { Dates } from 'app/core/utils/dates';
import { SettingsService } from 'app/settings/settings.service';
@@ -31,7 +31,8 @@ import { IntroducerSearchComponent } from 'app/shared/introducer-search/introduc
MatStepperPrevious,
FaIconComponent,
MatStepperNext,
- IntroducerSearchComponent
+ IntroducerSearchComponent,
+ FormsModule
]
})
export class SavingsAccountDetailsStepComponent implements OnInit {
@@ -67,6 +68,10 @@ export class SavingsAccountDetailsStepComponent implements OnInit {
/** Local copy of product template for displaying classification info */
productTemplate: any = null;
+ accountTypeOptions: string[] = [];
+ customerSegmentOptions: string[] = [];
+ selectedAccountType: string | null = null;
+ selectedCustomerSegment: string | null = null;
/**
* Sets share account details form.
@@ -127,6 +132,10 @@ export class SavingsAccountDetailsStepComponent implements OnInit {
.getSavingsAccountTemplate(entityId, productId, this.savingsAccountTemplate.groupId ? true : false)
.subscribe((response: any) => {
this.productTemplate = response;
+ this.accountTypeOptions = this.extractOptions(response.accountTypeOptions, response.accountType);
+ this.customerSegmentOptions = this.extractOptions(response.customerSegmentOptions, response.customerSegment);
+ this.selectedAccountType = response.accountType ?? null;
+ this.selectedCustomerSegment = response.customerSegment ?? null;
this.savingsAccountProductTemplate.emit(response);
this.fieldOfficerData = response.fieldOfficerOptions;
this.savingsProductSelected = true;
@@ -145,6 +154,13 @@ export class SavingsAccountDetailsStepComponent implements OnInit {
* Formats template dates into the current CBS date format.
* Handles backend date arrays like [2026, 4, 20] as well as strings and Date objects.
*/
+ private extractOptions(options: any[], fallback?: string): string[] {
+ if (Array.isArray(options) && options.length > 0) {
+ return options.map((o: any) => o.value ?? o.name ?? o);
+ }
+ return fallback ? [fallback] : [];
+ }
+
formatTemplateDate(value: any): string {
if (!value) {
return '';
diff --git a/src/environments/.env.ts b/src/environments/.env.ts
index 77fd662d8..6dc70b65f 100644
--- a/src/environments/.env.ts
+++ b/src/environments/.env.ts
@@ -5,13 +5,12 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
-
// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!
/* tslint:disable */
export default {
'mifos_x': {
'version': '260427',
- 'hash': '5fb25edc'
+ 'hash': '65345f99'
},
'allow_switching_backend_instance': true
};