update current product code and RD code

This commit is contained in:
Nitesh Yadav
2026-04-15 20:34:12 +05:30
parent d7821c7824
commit 2facd3744d
48 changed files with 32602 additions and 1551 deletions
@@ -41,7 +41,7 @@ public class SavingsApiSetConstants extends SavingsApiConstants {
"interestCalculationTypeOptions", "interestCalculationTypeOption", "interestCalculationDaysInYearTypeOptions", "lockinPeriodFrequencyTypeOptions",
"withdrawalFeeTypeOptions", nominalAnnualInterestRateOverdraftParamName, minOverdraftForInterestCalculationParamName,
withHoldTaxParamName, taxGroupIdParamName, isDormancyTrackingActiveParamName, daysToInactiveParamName,
daysToDormancyParamName, daysToInactiveParamName, accountMappingForPaymentParamName, "otherGlMappings", "accountTypeOptions",
daysToDormancyParamName, daysToInactiveParamName, accountMappingForPaymentParamName, "otherGlMappings", "otherGlMappingsMap", "accountTypeOptions",
"customerSegmentOptions", "yesNoOptions",
// Enhanced custom fields
"accountType", "customerSegment", "productCode", "effectiveDate", "effectiveTo", "endDate",
@@ -51,7 +51,13 @@ public class SavingsApiSetConstants extends SavingsApiConstants {
"accountFacilityConfig", "accountFacilityLimits", "depositLimitKyc",
"allowOverdraft", "overdraftLimit", "minRequiredBalance", "enforceMinRequiredBalance",
"maxAllowedLienLimit", "lienAllowed", "minBalanceForInterestCalculation",
"accountingRule", "accountingMappings", "charges", "periodFrequencyOptions"));
"accountingRule", "accountingMappings", "charges", "periodFrequencyOptions",
// New current product fields
"balanceSwapOption", "msme", "autoDebitFacility",
"avgBalanceCalcPeriod", "validForPeriod", "odAccountClosedZeroBalanceInDayClosing",
// Accounting detail mappings
"paymentChannelToFundSourceMappings", "feeToIncomeAccountMappings", "penaltyToIncomeAccountMappings",
"paymentTypeOptions", "taxGroup", "taxGroupOptions", "accountingMappingOptions"));
/**
* These parameters will match the class level parameters of {@link SavingsAccountData}. Where possible, we try to
@@ -56,6 +56,33 @@ public final class RecurringDepositProductData extends DepositProductData {
private Collection<EnumOptionData> preClosurePenalInterestOnTypeOptions;
private Collection<EnumOptionData> periodFrequencyTypeOptions;
// CBS extended fields
private Collection<EnumOptionData> interestCalculationTypeOption;
private Collection<EnumOptionData> periodFrequencyOptions;
private java.util.List<org.apache.fineract.infrastructure.codes.data.CodeValueData> yesNoOptions;
private java.util.List<org.apache.fineract.infrastructure.codes.data.CodeValueData> accountTypeOptions;
private java.util.List<org.apache.fineract.infrastructure.codes.data.CodeValueData> customerSegmentOptions;
private String accountType;
private String customerSegment;
private String productCode;
private Integer interestCalculateSelector;
private String averagePeriod;
private Boolean autoPost;
private Integer frequencyFixDay;
public void setInterestCalculationTypeOption(Collection<EnumOptionData> v) { this.interestCalculationTypeOption = v; }
public void setPeriodFrequencyOptions(Collection<EnumOptionData> v) { this.periodFrequencyOptions = v; }
public void setYesNoOptions(java.util.List<org.apache.fineract.infrastructure.codes.data.CodeValueData> v) { this.yesNoOptions = v; }
public void setAccountTypeOptions(java.util.List<org.apache.fineract.infrastructure.codes.data.CodeValueData> v) { this.accountTypeOptions = v; }
public void setCustomerSegmentOptions(java.util.List<org.apache.fineract.infrastructure.codes.data.CodeValueData> v) { this.customerSegmentOptions = v; }
public void setAccountType(String v) { this.accountType = v; }
public void setCustomerSegment(String v) { this.customerSegment = v; }
public void setProductCode(String v) { this.productCode = v; }
public void setInterestCalculateSelector(Integer v) { this.interestCalculateSelector = v; }
public void setAveragePeriod(String v) { this.averagePeriod = v; }
public void setAutoPost(Boolean v) { this.autoPost = v; }
public void setFrequencyFixDay(Integer v) { this.frequencyFixDay = v; }
public static RecurringDepositProductData template(final CurrencyData currency, final EnumOptionData interestCompoundingPeriodType,
final EnumOptionData interestPostingPeriodType, final EnumOptionData interestCalculationType,
final EnumOptionData interestCalculationDaysInYearType, final EnumOptionData accountingRule,
@@ -0,0 +1,27 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.fineract.portfolio.savings.service;
import org.apache.fineract.portfolio.savings.data.SavingsAccountData;
public interface CurrentAccountTemplateReadPlatformService {
SavingsAccountData retrieveTemplate(Long clientId, Long groupId, Long productId, boolean staffInSelectedOfficeOnly);
}
@@ -163,4 +163,29 @@
);
</sql>
</changeSet>
<changeSet author="fineract" id="2005-6-savings-product-customer-segment-remove-corporate">
<sql>
DELETE FROM m_code_value
WHERE code_value = 'Corporate'
AND code_id = (SELECT id FROM m_code WHERE code_name = 'SavingsProductCustomerSegment');
</sql>
</changeSet>
<changeSet author="fineract" id="2005-7-savings-product-customer-segment-add-non-individual">
<sql>
INSERT INTO m_code (code_name, is_system_defined)
SELECT 'SavingsProductCustomerSegment', TRUE
WHERE NOT EXISTS (SELECT 1 FROM m_code WHERE code_name = 'SavingsProductCustomerSegment');
INSERT INTO m_code_value (code_id, code_value, order_position, code_description, is_active, is_mandatory)
SELECT c.id, 'Non Individual', 3, 'Non Individual', TRUE, FALSE
FROM m_code c
WHERE c.code_name = 'SavingsProductCustomerSegment'
AND NOT EXISTS (
SELECT 1 FROM m_code_value cv
WHERE cv.code_id = c.id AND cv.code_value = 'Non Individual'
);
</sql>
</changeSet>
</databaseChangeLog>