add accountTypeOptions and customerSegmentOptions to savings/current/RD account templates

- Added accountTypeOptions and customerSegmentOptions fields to SavingsAccountData and RecurringDepositAccountData
- Added CodeValueReadPlatformService to SavingsAccountTemplateReadPlatformServiceImpl, CurrentAccountTemplateReadPlatformServiceImpl, and DepositAccountReadPlatformServiceImpl to fetch options from code values
- Added options to SAVINGS_ACCOUNT_RESPONSE_DATA_PARAMETERS and RD response parameters
- Updated SavingsConfiguration bean factory methods to pass new CodeValueReadPlatformService dependency
- Added validCheckSum for modified Liquibase changeset 0272
- Fixed AccountNumberGeneratorTest constructor to include GLAccountRepository and SavingsProductRepository

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Nitesh Yadav
2026-04-27 15:39:58 +05:30
co-authored by Claude Sonnet 4.6
parent 6ffcfff48e
commit 72adbf6305
10 changed files with 68 additions and 7 deletions
@@ -82,7 +82,7 @@ public class SavingsApiSetConstants extends SavingsApiConstants {
"minBalanceForInterestCalculation", "minOverdraftForInterestCalculation",
"periodFrequencyOptions",
// CBS Product fields
"accountType", "customerSegment", "productCode", "glAccountId", "glAccountName", "effectiveTo", "endDate", "introducerRequired", "shareLinkingEnabled",
"accountType", "customerSegment", "accountTypeOptions", "customerSegmentOptions", "productCode", "glAccountId", "glAccountName", "effectiveTo", "endDate", "introducerRequired", "shareLinkingEnabled",
"nominationFacility", "dormancyAlert", "enableLockinPeriod", "balanceFrequency",
"accountClosedZeroBalanceInDayClosing", "accountFacilityConfig", "accountFacilityLimits", "depositLimitKyc",
"interestCalculateSelector", "averagePeriod", "autoPost", "frequencyFixDay", "lastInterestDate",
@@ -21,6 +21,7 @@ package org.apache.fineract.portfolio.savings.data;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Collection;
import org.apache.fineract.infrastructure.codes.data.CodeValueData;
import lombok.Getter;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
@@ -86,6 +87,8 @@ public final class RecurringDepositAccountData extends DepositAccountData {
// CBS product fields (populated from product template)
private String accountType;
private String customerSegment;
private Collection<CodeValueData> accountTypeOptions;
private Collection<CodeValueData> customerSegmentOptions;
private String productCode;
private LocalDate effectiveDate;
private LocalDate effectiveTo;
@@ -122,10 +125,20 @@ public final class RecurringDepositAccountData extends DepositAccountData {
private Boolean deceasedSettlement;
private Boolean allowDebitTxnAfterDueDate;
public void setAccountTypeOptions(Collection<CodeValueData> accountTypeOptions) {
this.accountTypeOptions = accountTypeOptions;
}
public void setCustomerSegmentOptions(Collection<CodeValueData> customerSegmentOptions) {
this.customerSegmentOptions = customerSegmentOptions;
}
public void copyCbsFieldsFrom(final RecurringDepositAccountData src) {
if (src == null) return;
this.accountType = src.accountType;
this.customerSegment = src.customerSegment;
this.accountTypeOptions = src.accountTypeOptions;
this.customerSegmentOptions = src.customerSegmentOptions;
this.productCode = src.productCode;
this.effectiveDate = src.effectiveDate;
this.effectiveTo = src.effectiveTo;