saving , current and RD account code update
This commit is contained in:
+85
-7
@@ -140,7 +140,7 @@ public class CurrentAccountTemplateReadPlatformServiceImpl implements CurrentAcc
|
||||
final Collection<EnumOptionData> withdrawalFeeTypeOptions = this.dropdownReadPlatformService.retrievewithdrawalFeeTypeOptions();
|
||||
|
||||
final Collection<SavingsAccountTransactionData> transactions = null;
|
||||
final Collection<ChargeData> productCharges = this.chargeReadPlatformService.retrieveSavingsProductCharges(productId);
|
||||
final Collection<ChargeData> productCharges = this.chargeReadPlatformService.retrieveCurrentProductCharges(productId);
|
||||
final Collection<SavingsAccountChargeData> charges = fromChargesToSavingsCharges(productCharges);
|
||||
|
||||
final boolean feeChargesOnly = false;
|
||||
@@ -170,6 +170,44 @@ public class CurrentAccountTemplateReadPlatformServiceImpl implements CurrentAcc
|
||||
interestCompoundingPeriodTypeOptions, interestPostingPeriodTypeOptions, interestCalculationTypeOptions,
|
||||
interestCalculationDaysInYearTypeOptions, lockinPeriodFrequencyTypeOptions, withdrawalFeeTypeOptions, transactions,
|
||||
charges, chargeOptions);
|
||||
|
||||
// Re-apply CBS fields from full product data (withTemplateOptions creates a new object and loses setter fields)
|
||||
final SavingsProductData productData = this.currentProductReadPlatformService.retrieveOne(productId);
|
||||
if (productData != null) {
|
||||
// Feature flags
|
||||
template.setDormancyAlert(productData.getDormancyAlert() != null && productData.getDormancyAlert());
|
||||
template.setBalanceSwapOption(productData.getBalanceSwapOption() != null && productData.getBalanceSwapOption());
|
||||
template.setMsme(productData.getMsme() != null && productData.getMsme());
|
||||
template.setNominationFacility(productData.getNominationFacility() != null && productData.getNominationFacility());
|
||||
template.setAutoDebitFacility(productData.getAutoDebitFacility() != null && productData.getAutoDebitFacility());
|
||||
template.setAutoPost(productData.getAutoPost() != null && productData.getAutoPost());
|
||||
template.setFrequencyFixDay(productData.getFrequencyFixDay());
|
||||
template.setLastInterestDate(productData.getLastInterestDate());
|
||||
template.setInterestCalculateSelector(productData.getInterestCalculateSelector());
|
||||
template.setAveragePeriod(productData.getAveragePeriod());
|
||||
template.setAccountClosedZeroBalanceInDayClosing(
|
||||
productData.getAccountClosedZeroBalanceInDayClosing() != null && productData.getAccountClosedZeroBalanceInDayClosing());
|
||||
// Facility data
|
||||
template.setAccountFacilityConfig(productData.getAccountFacilityConfig());
|
||||
template.setAccountFacilityLimits(productData.getAccountFacilityLimits());
|
||||
template.setDepositLimitKyc(productData.getDepositLimitKyc());
|
||||
// Classification fields
|
||||
template.setAccountType(productData.getAccountType());
|
||||
template.setCustomerSegment(productData.getCustomerSegment());
|
||||
template.setProductCode(productData.getProductCode());
|
||||
template.setEffectiveDate(productData.getEffectiveDate());
|
||||
template.setEffectiveTo(productData.getEffectiveTo());
|
||||
template.setEndDate(productData.getEndDate());
|
||||
template.setIntroducerRequired(productData.getIntroducerRequired());
|
||||
template.setShareLinkingEnabled(productData.getShareLinkingEnabled());
|
||||
// Settings fields
|
||||
template.setEnableLockinPeriod(productData.getEnableLockinPeriod());
|
||||
template.setBalanceFrequency(productData.getBalanceFrequency());
|
||||
template.setAvgBalanceCalcPeriod(productData.getAvgBalanceCalcPeriod());
|
||||
template.setValidForPeriod(productData.getValidForPeriod());
|
||||
template.setOdAccountClosedZeroBalanceInDayClosing(
|
||||
productData.getOdAccountClosedZeroBalanceInDayClosing() != null && productData.getOdAccountClosedZeroBalanceInDayClosing());
|
||||
}
|
||||
} else {
|
||||
|
||||
String clientName = null;
|
||||
@@ -247,7 +285,22 @@ public class CurrentAccountTemplateReadPlatformServiceImpl implements CurrentAcc
|
||||
sqlBuilder.append("cp.min_required_balance as minRequiredBalance, ");
|
||||
sqlBuilder.append("cp.enforce_min_required_balance as enforceMinRequiredBalance, ");
|
||||
sqlBuilder.append("0 as maxAllowedLienLimit, ");
|
||||
sqlBuilder.append("0 as lienAllowed ");
|
||||
sqlBuilder.append("0 as lienAllowed, ");
|
||||
sqlBuilder.append("cp.dormancy_alert as dormancyAlert, ");
|
||||
sqlBuilder.append("cp.balance_swap_option as balanceSwapOption, ");
|
||||
sqlBuilder.append("cp.msme as msme, ");
|
||||
sqlBuilder.append("cp.nomination_facility as nominationFacility, ");
|
||||
sqlBuilder.append("cp.auto_debit_facility as autoDebitFacility, ");
|
||||
sqlBuilder.append("cp.auto_post as autoPost, ");
|
||||
sqlBuilder.append("cp.frequency_fix_day as frequencyFixDay, ");
|
||||
sqlBuilder.append("cp.last_interest_date as lastInterestDate, ");
|
||||
sqlBuilder.append("cp.interest_calculate_selector as interestCalculateSelector, ");
|
||||
sqlBuilder.append("cp.average_period as averagePeriod, ");
|
||||
sqlBuilder.append("cp.account_closed_zero_balance_in_day_closing as accountClosedZeroBalanceInDayClosing, ");
|
||||
sqlBuilder.append("cp.is_dormancy_tracking_active as isDormancyTrackingActive, ");
|
||||
sqlBuilder.append("cp.days_to_inactive as daysToInactive, ");
|
||||
sqlBuilder.append("cp.days_to_dormancy as daysToDormancy, ");
|
||||
sqlBuilder.append("cp.days_to_escheat as daysToEscheat ");
|
||||
sqlBuilder.append("from m_current_product cp ");
|
||||
sqlBuilder.append("join m_currency curr on curr.code = cp.currency_code ");
|
||||
sqlBuilder.append("left join m_tax_group tg on tg.id = cp.tax_group_id ");
|
||||
@@ -346,14 +399,26 @@ public class CurrentAccountTemplateReadPlatformServiceImpl implements CurrentAcc
|
||||
final SavingsAccountSubStatusEnumData subStatus = null;
|
||||
final String reasonForBlock = null;
|
||||
final LocalDate lastActiveTransactionDate = null;
|
||||
final boolean isDormancyTrackingActive = false;
|
||||
final Integer daysToInactive = null;
|
||||
final Integer daysToDormancy = null;
|
||||
final Integer daysToEscheat = null;
|
||||
final boolean isDormancyTrackingActive = rs.getBoolean("isDormancyTrackingActive");
|
||||
final Integer daysToInactive = JdbcSupport.getInteger(rs, "daysToInactive");
|
||||
final Integer daysToDormancy = JdbcSupport.getInteger(rs, "daysToDormancy");
|
||||
final Integer daysToEscheat = JdbcSupport.getInteger(rs, "daysToEscheat");
|
||||
|
||||
final boolean dormancyAlert = rs.getBoolean("dormancyAlert");
|
||||
final boolean balanceSwapOption = rs.getBoolean("balanceSwapOption");
|
||||
final boolean msme = rs.getBoolean("msme");
|
||||
final boolean nominationFacility = rs.getBoolean("nominationFacility");
|
||||
final boolean autoDebitFacility = rs.getBoolean("autoDebitFacility");
|
||||
final boolean autoPost = rs.getBoolean("autoPost");
|
||||
final Integer frequencyFixDay = JdbcSupport.getInteger(rs, "frequencyFixDay");
|
||||
final LocalDate lastInterestDate = JdbcSupport.getLocalDate(rs, "lastInterestDate");
|
||||
final Integer interestCalculateSelector = JdbcSupport.getInteger(rs, "interestCalculateSelector");
|
||||
final String averagePeriod = rs.getString("averagePeriod");
|
||||
final boolean accountClosedZeroBalanceInDayClosing = rs.getBoolean("accountClosedZeroBalanceInDayClosing");
|
||||
|
||||
final SavingsAccountApplicationTimelineData timeline = SavingsAccountApplicationTimelineData.templateDefault();
|
||||
final EnumOptionData depositType = null;
|
||||
return SavingsAccountData.instance(null, null, depositType, null, groupId, groupName, clientId, clientName, productId,
|
||||
final SavingsAccountData accountData = SavingsAccountData.instance(null, null, depositType, null, groupId, groupName, clientId, clientName, productId,
|
||||
productName, fieldOfficerId, fieldOfficerName, status, subStatus, reasonForBlock, timeline, currency,
|
||||
nominalAnnualIterestRate, interestCompoundingPeriodType, interestPostingPeriodType, interestCalculationType,
|
||||
interestCalculationDaysInYearType, minRequiredOpeningBalance, lockinPeriodFrequency, lockinPeriodFrequencyType,
|
||||
@@ -361,6 +426,19 @@ public class CurrentAccountTemplateReadPlatformServiceImpl implements CurrentAcc
|
||||
maxAllowedLienLimit, lienAllowed, minBalanceForInterestCalculation, onHoldFunds, nominalAnnualInterestRateOverdraft,
|
||||
minOverdraftForInterestCalculation, withHoldTax, taxGroupData, lastActiveTransactionDate, isDormancyTrackingActive,
|
||||
daysToInactive, daysToDormancy, daysToEscheat, savingsAmountOnHold);
|
||||
|
||||
accountData.setDormancyAlert(dormancyAlert);
|
||||
accountData.setBalanceSwapOption(balanceSwapOption);
|
||||
accountData.setMsme(msme);
|
||||
accountData.setNominationFacility(nominationFacility);
|
||||
accountData.setAutoDebitFacility(autoDebitFacility);
|
||||
accountData.setAutoPost(autoPost);
|
||||
accountData.setFrequencyFixDay(frequencyFixDay);
|
||||
accountData.setLastInterestDate(lastInterestDate);
|
||||
accountData.setInterestCalculateSelector(interestCalculateSelector);
|
||||
accountData.setAveragePeriod(averagePeriod);
|
||||
accountData.setAccountClosedZeroBalanceInDayClosing(accountClosedZeroBalanceInDayClosing);
|
||||
return accountData;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+70
-3
@@ -396,13 +396,17 @@ public class DepositAccountReadPlatformServiceImpl implements DepositAccountRead
|
||||
|
||||
template = FixedDepositAccountData.withInterestChart((FixedDepositAccountData) template, accountChart);
|
||||
} else if (depositAccountType.isRecurringDeposit()) {
|
||||
template = RecurringDepositAccountData.withTemplateOptions((RecurringDepositAccountData) template, productOptions,
|
||||
// Save CBS fields from mapper result before factory methods create new objects
|
||||
final RecurringDepositAccountData rdTemplateWithCbs = (RecurringDepositAccountData) template;
|
||||
template = RecurringDepositAccountData.withTemplateOptions(rdTemplateWithCbs, productOptions,
|
||||
fieldOfficerOptions, interestCompoundingPeriodTypeOptions, interestPostingPeriodTypeOptions,
|
||||
interestCalculationTypeOptions, interestCalculationDaysInYearTypeOptions, lockinPeriodFrequencyTypeOptions,
|
||||
withdrawalFeeTypeOptions, transactions, charges, chargeOptions, preClosurePenalInterestOnTypeOptions,
|
||||
periodFrequencyTypeOptions);
|
||||
template = RecurringDepositAccountData.withInterestChartAndRecurringDetails((RecurringDepositAccountData) template,
|
||||
accountChart, null, null);
|
||||
// Re-apply CBS product fields lost during factory method object creation
|
||||
((RecurringDepositAccountData) template).copyCbsFieldsFrom(rdTemplateWithCbs);
|
||||
|
||||
}
|
||||
|
||||
@@ -1475,10 +1479,33 @@ public class DepositAccountReadPlatformServiceImpl implements DepositAccountRead
|
||||
sqlBuilder.append("dptp.min_deposit_term_type_enum as minDepositTermTypeId, ");
|
||||
sqlBuilder.append("dptp.max_deposit_term_type_enum as maxDepositTermTypeId, ");
|
||||
sqlBuilder.append("dptp.in_multiples_of_deposit_term as inMultiplesOfDepositTerm, ");
|
||||
sqlBuilder.append("dptp.in_multiples_of_deposit_term_type_enum as inMultiplesOfDepositTermTypeId ");
|
||||
sqlBuilder.append("dptp.in_multiples_of_deposit_term_type_enum as inMultiplesOfDepositTermTypeId, ");
|
||||
sqlBuilder.append("sa.account_type as accountType, sa.customer_segment as customerSegment, ");
|
||||
sqlBuilder.append("sa.product_code as productCode, ");
|
||||
sqlBuilder.append("sa.effective_date as effectiveDate, sa.effective_to as effectiveTo, sa.end_date as endDate, ");
|
||||
sqlBuilder.append("sa.introducer_required as introducerRequired, sa.share_linking_enabled as shareLinkingEnabled, ");
|
||||
sqlBuilder.append("sa.nomination_facility as nominationFacility, sa.dormancy_alert as dormancyAlert, ");
|
||||
sqlBuilder.append("sa.interest_calculate_selector as interestCalculateSelector, ");
|
||||
sqlBuilder.append("icv.code_value as interestCalculationTypeName, ");
|
||||
sqlBuilder.append("sa.average_period as averagePeriod, ");
|
||||
sqlBuilder.append("sa.auto_post as autoPost, sa.frequency_fix_day as frequencyFixDay, ");
|
||||
sqlBuilder.append("sa.last_interest_date as lastInterestDate, sa.enable_lockin_period as enableLockinPeriod, ");
|
||||
sqlBuilder.append("sa.balance_frequency as balanceFrequency, ");
|
||||
sqlBuilder.append("sa.account_closed_zero_balance_in_day_closing as accountClosedZeroBalanceInDayClosing, ");
|
||||
sqlBuilder.append("sa.balance_swap_option as balanceSwapOption, sa.msme as msme, ");
|
||||
sqlBuilder.append("sa.auto_debit_facility as autoDebitFacility, sa.loan_facility as loanFacility, ");
|
||||
sqlBuilder.append("sa.premature_withdrawal_option as prematureWithdrawalOption, sa.tenure_flexibility as tenureFlexibility, ");
|
||||
sqlBuilder.append("sa.lien_marked as lienMarked, sa.maturity_instructions as maturityInstructions, ");
|
||||
sqlBuilder.append("sa.credit_maturity_proceeds as creditMaturityProceeds, ");
|
||||
sqlBuilder.append("sa.penalty_grace_period_missed_installments as penaltyGracePeriodMissedInstallments, ");
|
||||
sqlBuilder.append("sa.panel_request_applicable as panelRequestApplicable, ");
|
||||
sqlBuilder.append("sa.no_penalty_nominee_heir_closure as noPenaltyNomineeHeirClosure, ");
|
||||
sqlBuilder.append("sa.deceased_settlement as deceasedSettlement, ");
|
||||
sqlBuilder.append("sa.allow_debit_txn_after_due_date as allowDebitTxnAfterDueDate ");
|
||||
|
||||
sqlBuilder.append(this.selectTablesSql());
|
||||
sqlBuilder.append("left join m_deposit_product_recurring_detail dprd on sa.id = dprd.savings_product_id ");
|
||||
sqlBuilder.append("left join m_code_value icv on icv.id = sa.interest_calculate_selector ");
|
||||
|
||||
this.schemaSql = sqlBuilder.toString();
|
||||
}
|
||||
@@ -1527,12 +1554,52 @@ public class DepositAccountReadPlatformServiceImpl implements DepositAccountRead
|
||||
final BigDecimal totalOverdueAmount = null;
|
||||
final Integer noOfOverdueInstallments = null;
|
||||
|
||||
return RecurringDepositAccountData.instance(depositAccountData, preClosurePenalApplicable, preClosurePenalInterest,
|
||||
final RecurringDepositAccountData result = RecurringDepositAccountData.instance(depositAccountData,
|
||||
preClosurePenalApplicable, preClosurePenalInterest,
|
||||
preClosurePenalInterestOnType, minDepositTerm, maxDepositTerm, minDepositTermType, maxDepositTermType,
|
||||
inMultiplesOfDepositTerm, inMultiplesOfDepositTermType, depositAmount, maturityAmount, maturityDate, depositPeriod,
|
||||
depositPeriodFrequencyType, mandatoryRecommendedDepositAmount, onAccountClosureType, expectedFirstDepositOnDate,
|
||||
totalOverdueAmount, noOfOverdueInstallments, isMandatoryDeposit, allowWithdrawal, adjustAdvanceTowardsFuturePayments,
|
||||
isCalendarInherited);
|
||||
|
||||
// CBS product fields
|
||||
result.setCbsProductFields(
|
||||
rs.getString("accountType"),
|
||||
rs.getString("customerSegment"),
|
||||
rs.getString("productCode"),
|
||||
JdbcSupport.getLocalDate(rs, "effectiveDate"),
|
||||
JdbcSupport.getLocalDate(rs, "effectiveTo"),
|
||||
JdbcSupport.getLocalDate(rs, "endDate"),
|
||||
rs.getBoolean("introducerRequired"),
|
||||
rs.getBoolean("shareLinkingEnabled"),
|
||||
rs.getBoolean("nominationFacility"),
|
||||
rs.getBoolean("dormancyAlert"),
|
||||
JdbcSupport.getInteger(rs, "interestCalculateSelector"),
|
||||
rs.getString("interestCalculationTypeName"),
|
||||
rs.getString("averagePeriod"),
|
||||
rs.getBoolean("autoPost"),
|
||||
JdbcSupport.getInteger(rs, "frequencyFixDay"),
|
||||
JdbcSupport.getLocalDate(rs, "lastInterestDate"),
|
||||
rs.getBoolean("enableLockinPeriod"),
|
||||
rs.getString("balanceFrequency"),
|
||||
rs.getBoolean("accountClosedZeroBalanceInDayClosing"),
|
||||
rs.getBoolean("balanceSwapOption"),
|
||||
rs.getBoolean("msme"),
|
||||
rs.getBoolean("autoDebitFacility"),
|
||||
rs.getBoolean("loanFacility"),
|
||||
rs.getBoolean("prematureWithdrawalOption"),
|
||||
rs.getBoolean("tenureFlexibility"),
|
||||
rs.getBoolean("lienMarked"),
|
||||
rs.getBoolean("maturityInstructions"),
|
||||
rs.getBoolean("creditMaturityProceeds"),
|
||||
rs.getBoolean("penaltyGracePeriodMissedInstallments"),
|
||||
rs.getBoolean("panelRequestApplicable"),
|
||||
rs.getBoolean("noPenaltyNomineeHeirClosure"),
|
||||
rs.getBoolean("deceasedSettlement"),
|
||||
rs.getBoolean("allowDebitTxnAfterDueDate")
|
||||
);
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user