some update logic update on showing option

This commit is contained in:
Nitesh Yadav
2026-04-21 13:19:19 +05:30
parent 800e114a4d
commit 98dd941712
15 changed files with 22874 additions and 39956 deletions
@@ -27,6 +27,7 @@ import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import lombok.Getter;
import lombok.Setter;
@@ -123,6 +124,26 @@ public final class SavingsAccountData implements Serializable {
private List<DatatableData> datatables = null;
// CBS Product fields (populated in template response from selected product)
private String accountType;
private String customerSegment;
private String productCode;
private Boolean introducerRequired;
private Boolean shareLinkingEnabled;
private Boolean nominationFacility;
private Boolean dormancyAlert;
private Boolean enableLockinPeriod;
private String balanceFrequency;
private Boolean accountClosedZeroBalanceInDayClosing;
private Map<String, Object> accountFacilityConfig;
private Collection<Map<String, Object>> accountFacilityLimits;
private Map<String, Object> depositLimitKyc;
// CBS Term fields
private Integer interestCalculateSelector;
private String averagePeriod;
private Boolean autoPost;
private Integer frequencyFixDay;
// import field
private Long productId;
private String locale;
@@ -134,6 +134,7 @@ public final class SavingsProductData implements Serializable {
@Getter @Setter private Boolean nominationFacility;
@Getter @Setter private Boolean dormancyAlert;
@Getter @Setter private Integer interestCalculateSelector;
@Getter @Setter private String interestCalculationTypeName;
@Getter @Setter private String averagePeriod;
@Getter @Setter private Boolean autoPost;
@Getter @Setter private Integer frequencyFixDay;
@@ -360,6 +361,7 @@ public final class SavingsProductData implements Serializable {
target.setNominationFacility(source.getNominationFacility());
target.setDormancyAlert(source.getDormancyAlert());
target.setInterestCalculateSelector(source.getInterestCalculateSelector());
target.setInterestCalculationTypeName(source.getInterestCalculationTypeName());
target.setAveragePeriod(source.getAveragePeriod());
target.setAutoPost(source.getAutoPost());
target.setFrequencyFixDay(source.getFrequencyFixDay());
@@ -449,12 +449,6 @@ public class CurrentProductDataValidator {
if (this.fromApiJsonHelper.parameterExists(taxGroupIdParamName, element)) {
final Long taxGroupId = this.fromApiJsonHelper.extractLongNamed(taxGroupIdParamName, element);
baseDataValidator.reset().parameter(taxGroupIdParamName).value(taxGroupId).ignoreIfNull().longGreaterThanZero();
if (withHoldTax) {
baseDataValidator.reset().parameter(taxGroupIdParamName).value(taxGroupId).notBlank();
}
} else if (withHoldTax && isCreate) {
final Long taxGroupId = null;
baseDataValidator.reset().parameter(taxGroupIdParamName).value(taxGroupId).notBlank();
}
}
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -216,8 +216,9 @@ public class DepositProductDataValidator {
validateRecurringDepositUpdate(element, baseDataValidator);
// RD products now use the CBS base chart as a read-only template, so
// product updates no longer require a charts payload.
if (!hasRdSlabsForUpdate) {
validateChartsData(element, baseDataValidator);
validateDepositAmountForUpdate(element, baseDataValidator);
}
@@ -304,7 +304,7 @@ public class DepositProductReadPlatformServiceImpl implements DepositProductRead
sqlBuilder.append("sp.effective_date as effectiveDate, sp.effective_to as effectiveTo, sp.end_date as endDate, ");
sqlBuilder.append("sp.introducer_required as introducerRequired, sp.share_linking_enabled as shareLinkingEnabled, ");
sqlBuilder.append("sp.nomination_facility as nominationFacility, sp.dormancy_alert as dormancyAlert, ");
sqlBuilder.append("sp.interest_calculate_selector as interestCalculateSelector, ");
sqlBuilder.append("sp.interest_calculate_selector as interestCalculateSelector, icv.code_value as interestCalculationTypeName, ");
sqlBuilder.append("sp.average_period as averagePeriod, ");
sqlBuilder.append("sp.auto_post as autoPost, sp.frequency_fix_day as frequencyFixDay, ");
sqlBuilder.append("sp.last_interest_date as lastInterestDate, sp.enable_lockin_period as enableLockinPeriod, ");
@@ -325,7 +325,8 @@ public class DepositProductReadPlatformServiceImpl implements DepositProductRead
sqlBuilder.append("left join m_deposit_product_term_and_preclosure dptp on sp.id=dptp.savings_product_id ");
sqlBuilder.append("left join m_deposit_product_recurring_detail dprd on sp.id=dprd.savings_product_id ");
sqlBuilder.append("join m_currency curr on curr.code = sp.currency_code ");
sqlBuilder.append(" left join m_tax_group tg on tg.id = sp.tax_group_id ");
sqlBuilder.append(" left join m_tax_group tg on tg.id = sp.tax_group_id ");
sqlBuilder.append("left join m_code_value icv on icv.id = sp.interest_calculate_selector ");
this.schemaSql = sqlBuilder.toString();
}
@@ -414,6 +415,7 @@ public class DepositProductReadPlatformServiceImpl implements DepositProductRead
result.setNominationFacility(nominationFacility);
result.setDormancyAlert(dormancyAlert);
result.setInterestCalculateSelector(interestCalculateSelector);
result.setInterestCalculationTypeName(rs.getString("interestCalculationTypeName"));
result.setAveragePeriod(averagePeriod);
result.setAutoPost(autoPost);
result.setFrequencyFixDay(frequencyFixDay);
@@ -176,6 +176,29 @@ public class SavingsAccountTemplateReadPlatformServiceImpl implements SavingsAcc
interestCompoundingPeriodTypeOptions, interestPostingPeriodTypeOptions, interestCalculationTypeOptions,
interestCalculationDaysInYearTypeOptions, lockinPeriodFrequencyTypeOptions, withdrawalFeeTypeOptions, transactions,
charges, chargeOptions);
// Enrich template with full CBS product data (classification, digital facilities, etc.)
final SavingsProductData fullProduct = this.savingsProductReadPlatformService.retrieveOne(productId);
if (fullProduct != null) {
template.setAccountType(fullProduct.getAccountType());
template.setCustomerSegment(fullProduct.getCustomerSegment());
template.setProductCode(fullProduct.getProductCode());
template.setIntroducerRequired(fullProduct.getIntroducerRequired());
template.setShareLinkingEnabled(fullProduct.getShareLinkingEnabled());
template.setNominationFacility(fullProduct.getNominationFacility());
template.setDormancyAlert(fullProduct.getDormancyAlert());
template.setEnableLockinPeriod(fullProduct.getEnableLockinPeriod());
template.setBalanceFrequency(fullProduct.getBalanceFrequency());
template.setAccountClosedZeroBalanceInDayClosing(fullProduct.getAccountClosedZeroBalanceInDayClosing());
template.setAccountFacilityConfig(fullProduct.getAccountFacilityConfig());
template.setAccountFacilityLimits(fullProduct.getAccountFacilityLimits());
template.setDepositLimitKyc(fullProduct.getDepositLimitKyc());
// CBS Term fields
template.setInterestCalculateSelector(fullProduct.getInterestCalculateSelector());
template.setAveragePeriod(fullProduct.getAveragePeriod());
template.setAutoPost(fullProduct.getAutoPost());
template.setFrequencyFixDay(fullProduct.getFrequencyFixDay());
}
} else {
String clientName = null;
@@ -213,7 +213,7 @@ public class SavingsProductReadPlatformServiceImpl implements SavingsProductRead
sqlBuilder.append("sp.effective_date as effectiveDate, sp.effective_to as effectiveTo, sp.end_date as endDate, ");
sqlBuilder.append("sp.introducer_required as introducerRequired, sp.share_linking_enabled as shareLinkingEnabled, ");
sqlBuilder.append("sp.nomination_facility as nominationFacility, sp.dormancy_alert as dormancyAlert, ");
sqlBuilder.append("sp.interest_calculate_selector as interestCalculateSelector, sp.average_period as averagePeriod, ");
sqlBuilder.append("sp.interest_calculate_selector as interestCalculateSelector, icv.code_value as interestCalculationTypeName, sp.average_period as averagePeriod, ");
sqlBuilder.append("sp.auto_post as autoPost, sp.frequency_fix_day as frequencyFixDay, sp.last_interest_date as lastInterestDate, ");
sqlBuilder.append("sp.enable_lockin_period as enableLockinPeriod, ");
sqlBuilder.append("sp.balance_frequency as balanceFrequency, ");
@@ -221,7 +221,8 @@ public class SavingsProductReadPlatformServiceImpl implements SavingsProductRead
sqlBuilder.append("from m_savings_product sp ");
sqlBuilder.append("join m_currency curr on curr.code = sp.currency_code ");
sqlBuilder.append("left join m_tax_group tg on tg.id = sp.tax_group_id ");
sqlBuilder.append("left join m_tax_group tg on tg.id = sp.tax_group_id ");
sqlBuilder.append("left join m_code_value icv on icv.id = sp.interest_calculate_selector ");
this.schemaSql = sqlBuilder.toString();
}
@@ -328,6 +329,7 @@ public class SavingsProductReadPlatformServiceImpl implements SavingsProductRead
productData.setNominationFacility(rs.getBoolean("nominationFacility"));
productData.setDormancyAlert(rs.getBoolean("dormancyAlert"));
productData.setInterestCalculateSelector(JdbcSupport.getInteger(rs, "interestCalculateSelector"));
productData.setInterestCalculationTypeName(rs.getString("interestCalculationTypeName"));
productData.setAveragePeriod(rs.getString("averagePeriod"));
productData.setAutoPost(rs.getBoolean("autoPost"));
productData.setFrequencyFixDay(JdbcSupport.getInteger(rs, "frequencyFixDay"));
@@ -73,6 +73,7 @@ public final class RecurringDepositProductData extends DepositProductData {
private Boolean nominationFacility;
private Boolean dormancyAlert;
private Integer interestCalculateSelector;
private String interestCalculationTypeName;
private String averagePeriod;
private Boolean autoPost;
private Integer frequencyFixDay;
@@ -112,6 +113,7 @@ public final class RecurringDepositProductData extends DepositProductData {
public void setNominationFacility(Boolean v) { this.nominationFacility = v; }
public void setDormancyAlert(Boolean v) { this.dormancyAlert = v; }
public void setInterestCalculateSelector(Integer v) { this.interestCalculateSelector = v; }
public void setInterestCalculationTypeName(String v) { this.interestCalculationTypeName = 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; }
@@ -149,6 +151,7 @@ public final class RecurringDepositProductData extends DepositProductData {
this.nominationFacility = src.nominationFacility;
this.dormancyAlert = src.dormancyAlert;
this.interestCalculateSelector = src.interestCalculateSelector;
this.interestCalculationTypeName = src.interestCalculationTypeName;
this.averagePeriod = src.averagePeriod;
this.autoPost = src.autoPost;
this.frequencyFixDay = src.frequencyFixDay;