Merge remote-tracking branch 'self-hosted/feature/account-charges' into feature/Backend-DSC-MFA
# Conflicts: # fineract-provider/src/main/resources/db/changelog/tenant/changelog-tenant.xml
This commit is contained in:
+23
-9
@@ -41,22 +41,36 @@ public interface ClientNomineeRepository extends JpaRepository<ClientNominee, Lo
|
||||
@Query("SELECT n FROM ClientNominee n WHERE n.client.id = :clientId AND n.accountNo = :accountNo AND n.accountType = :accountType AND n.isDeleted = false ORDER BY n.id")
|
||||
List<ClientNominee> findByClientIdAndAccountNoAndAccountType(@Param("clientId") Long clientId, @Param("accountNo") String accountNo, @Param("accountType") String accountType);
|
||||
|
||||
@Query("SELECT COUNT(n) FROM ClientNominee n WHERE n.accountNo = :accountNo AND n.accountType = :accountType AND n.isDeleted = false")
|
||||
@Query("SELECT COUNT(n) FROM ClientNominee n WHERE n.accountNo = :accountNo AND n.accountType = :accountType")
|
||||
long countByAccountNoAndAccountType(@Param("accountNo") String accountNo, @Param("accountType") String accountType);
|
||||
|
||||
/**
|
||||
* Counts non-deleted nominee rows that link {@code nomineeClientId} as a nominee under
|
||||
* {@code clientId} for the given {@code accountType}. Backs the rule that the same person
|
||||
* may not be linked as a nominee more than once per (account owner, account type).
|
||||
* {@code excludeNomineeId} is set on update so a row doesn't conflict with itself.
|
||||
*/
|
||||
@Query("SELECT COUNT(n) FROM ClientNominee n "
|
||||
+ "WHERE n.client.id = :clientId "
|
||||
+ "AND n.nomineeClient.id = :nomineeClientId "
|
||||
+ "AND n.accountType = :accountType "
|
||||
+ "AND n.isDeleted = false")
|
||||
long countActiveByClientNomineeAndAccountType(@Param("clientId") Long clientId,
|
||||
@Param("nomineeClientId") Long nomineeClientId,
|
||||
@Param("accountType") String accountType);
|
||||
|
||||
@Query("SELECT COUNT(n) FROM ClientNominee n "
|
||||
+ "WHERE n.client.id = :clientId "
|
||||
+ "AND n.nomineeClient.id = :nomineeClientId "
|
||||
+ "AND n.accountNo = :accountNo "
|
||||
+ "AND n.accountType = :accountType "
|
||||
+ "AND n.isDeleted = false")
|
||||
long countActiveByClientNomineeAndAccountNoAndType(@Param("clientId") Long clientId,
|
||||
@Param("nomineeClientId") Long nomineeClientId,
|
||||
@Param("accountNo") String accountNo,
|
||||
@Param("accountType") String accountType);
|
||||
|
||||
@Query("SELECT COUNT(n) FROM ClientNominee n "
|
||||
+ "WHERE n.client.id = :clientId "
|
||||
+ "AND n.nomineeClient.id = :nomineeClientId "
|
||||
+ "AND n.accountType = :accountType "
|
||||
+ "AND n.isDeleted = false "
|
||||
+ "AND (:excludeNomineeId IS NULL OR n.id <> :excludeNomineeId)")
|
||||
long countActiveByClientNomineeAndAccountType(@Param("clientId") Long clientId,
|
||||
+ "AND n.id <> :excludeNomineeId")
|
||||
long countActiveByClientNomineeAndAccountTypeExcluding(@Param("clientId") Long clientId,
|
||||
@Param("nomineeClientId") Long nomineeClientId,
|
||||
@Param("accountType") String accountType,
|
||||
@Param("excludeNomineeId") Long excludeNomineeId);
|
||||
|
||||
+169
@@ -274,6 +274,46 @@ public final class DepositsApiConstants {
|
||||
fixedDepositRequestData.addAll(DEPOSIT_PRODUCT_REQUEST_DATA_PARAMETERS);
|
||||
fixedDepositRequestData.addAll(PRECLOSURE_REQUEST_DATA_PARAMETERS);
|
||||
fixedDepositRequestData.addAll(DEPOSIT_TERM_REQUEST_DATA_PARAMETERS);
|
||||
fixedDepositRequestData.add(SavingsApiConstants.minBalanceForInterestCalculationParamName);
|
||||
fixedDepositRequestData.add("accountType");
|
||||
fixedDepositRequestData.add("customerSegment");
|
||||
fixedDepositRequestData.add("productCode");
|
||||
fixedDepositRequestData.add("fdType");
|
||||
fixedDepositRequestData.add(SavingsApiConstants.glAccountIdParamName);
|
||||
fixedDepositRequestData.add("effectiveDate");
|
||||
fixedDepositRequestData.add("effectiveTo");
|
||||
fixedDepositRequestData.add("endDate");
|
||||
fixedDepositRequestData.add("introducerRequired");
|
||||
fixedDepositRequestData.add("shareLinkingEnabled");
|
||||
fixedDepositRequestData.add("nominationFacility");
|
||||
fixedDepositRequestData.add("dormancyAlert");
|
||||
fixedDepositRequestData.add(SavingsApiConstants.isDormancyTrackingActiveParamName);
|
||||
fixedDepositRequestData.add(SavingsApiConstants.daysToInactiveParamName);
|
||||
fixedDepositRequestData.add(SavingsApiConstants.daysToDormancyParamName);
|
||||
fixedDepositRequestData.add(SavingsApiConstants.daysToEscheatParamName);
|
||||
fixedDepositRequestData.add("interestCalculateSelector");
|
||||
fixedDepositRequestData.add("averagePeriod");
|
||||
fixedDepositRequestData.add("autoPost");
|
||||
fixedDepositRequestData.add("frequencyFixDay");
|
||||
fixedDepositRequestData.add("lastInterestDate");
|
||||
fixedDepositRequestData.add("enableLockinPeriod");
|
||||
fixedDepositRequestData.add("balanceFrequency");
|
||||
fixedDepositRequestData.add("accountClosedZeroBalanceInDayClosing");
|
||||
fixedDepositRequestData.add("autoDebitFacility");
|
||||
fixedDepositRequestData.add("loanFacility");
|
||||
fixedDepositRequestData.add("prematureWithdrawalOption");
|
||||
fixedDepositRequestData.add("tenureFlexibility");
|
||||
fixedDepositRequestData.add("lienMarked");
|
||||
fixedDepositRequestData.add("withdrawalFeeForTransfers");
|
||||
fixedDepositRequestData.add("maturityInstructions");
|
||||
fixedDepositRequestData.add("creditMaturityProceeds");
|
||||
fixedDepositRequestData.add("penaltyGracePeriodMissedInstallments");
|
||||
fixedDepositRequestData.add("panelRequestApplicable");
|
||||
fixedDepositRequestData.add("noPenaltyNomineeHeirClosure");
|
||||
fixedDepositRequestData.add("deceasedSettlement");
|
||||
fixedDepositRequestData.add("allowDebitTxnAfterDueDate");
|
||||
fixedDepositRequestData.add("escheatLiabilityId");
|
||||
fixedDepositRequestData.add("fdSlabs");
|
||||
return fixedDepositRequestData;
|
||||
}
|
||||
|
||||
@@ -282,6 +322,54 @@ public final class DepositsApiConstants {
|
||||
fixedDepositRequestData.addAll(DEPOSIT_PRODUCT_REQUEST_DATA_PARAMETERS);
|
||||
fixedDepositRequestData.addAll(PRECLOSURE_RESPONSE_DATA_PARAMETERS);
|
||||
fixedDepositRequestData.addAll(DEPOSIT_TERM_RESPONSE_DATA_PARAMETERS);
|
||||
fixedDepositRequestData.add(SavingsApiConstants.minBalanceForInterestCalculationParamName);
|
||||
fixedDepositRequestData.add("interestCalculationTypeOption");
|
||||
fixedDepositRequestData.add("periodFrequencyOptions");
|
||||
fixedDepositRequestData.add("yesNoOptions");
|
||||
fixedDepositRequestData.add("accountTypeOptions");
|
||||
fixedDepositRequestData.add("customerSegmentOptions");
|
||||
fixedDepositRequestData.add("accountType");
|
||||
fixedDepositRequestData.add("customerSegment");
|
||||
fixedDepositRequestData.add("productCode");
|
||||
fixedDepositRequestData.add("fdType");
|
||||
fixedDepositRequestData.add(SavingsApiConstants.glAccountIdParamName);
|
||||
fixedDepositRequestData.add("glAccountName");
|
||||
fixedDepositRequestData.add("effectiveDate");
|
||||
fixedDepositRequestData.add("effectiveTo");
|
||||
fixedDepositRequestData.add("endDate");
|
||||
fixedDepositRequestData.add("introducerRequired");
|
||||
fixedDepositRequestData.add("shareLinkingEnabled");
|
||||
fixedDepositRequestData.add("nominationFacility");
|
||||
fixedDepositRequestData.add("dormancyAlert");
|
||||
fixedDepositRequestData.add(SavingsApiConstants.isDormancyTrackingActiveParamName);
|
||||
fixedDepositRequestData.add(SavingsApiConstants.daysToInactiveParamName);
|
||||
fixedDepositRequestData.add(SavingsApiConstants.daysToDormancyParamName);
|
||||
fixedDepositRequestData.add(SavingsApiConstants.daysToEscheatParamName);
|
||||
fixedDepositRequestData.add("interestCalculateSelector");
|
||||
fixedDepositRequestData.add("averagePeriod");
|
||||
fixedDepositRequestData.add("autoPost");
|
||||
fixedDepositRequestData.add("frequencyFixDay");
|
||||
fixedDepositRequestData.add("lastInterestDate");
|
||||
fixedDepositRequestData.add("enableLockinPeriod");
|
||||
fixedDepositRequestData.add("balanceFrequency");
|
||||
fixedDepositRequestData.add("accountClosedZeroBalanceInDayClosing");
|
||||
fixedDepositRequestData.add("autoDebitFacility");
|
||||
fixedDepositRequestData.add("loanFacility");
|
||||
fixedDepositRequestData.add("prematureWithdrawalOption");
|
||||
fixedDepositRequestData.add("tenureFlexibility");
|
||||
fixedDepositRequestData.add("lienMarked");
|
||||
fixedDepositRequestData.add("withdrawalFeeForTransfers");
|
||||
fixedDepositRequestData.add("maturityInstructions");
|
||||
fixedDepositRequestData.add("creditMaturityProceeds");
|
||||
fixedDepositRequestData.add("penaltyGracePeriodMissedInstallments");
|
||||
fixedDepositRequestData.add("panelRequestApplicable");
|
||||
fixedDepositRequestData.add("noPenaltyNomineeHeirClosure");
|
||||
fixedDepositRequestData.add("deceasedSettlement");
|
||||
fixedDepositRequestData.add("allowDebitTxnAfterDueDate");
|
||||
fixedDepositRequestData.add("accountingMappings");
|
||||
fixedDepositRequestData.add("paymentChannelToFundSourceMappings");
|
||||
fixedDepositRequestData.add("feeToIncomeAccountMappings");
|
||||
fixedDepositRequestData.add("penaltyToIncomeAccountMappings");
|
||||
return fixedDepositRequestData;
|
||||
}
|
||||
|
||||
@@ -332,6 +420,7 @@ public final class DepositsApiConstants {
|
||||
recurringDepositRequestData.add("deceasedSettlement");
|
||||
recurringDepositRequestData.add("allowDebitTxnAfterDueDate");
|
||||
recurringDepositRequestData.add("accountClosedZeroBalanceInDayClosing");
|
||||
recurringDepositRequestData.add("escheatLiabilityId");
|
||||
// Custom CBS fields — Interest rate slabs (sent inline but ignored server-side; saved separately)
|
||||
recurringDepositRequestData.add("rdSlabs");
|
||||
return recurringDepositRequestData;
|
||||
@@ -387,6 +476,11 @@ public final class DepositsApiConstants {
|
||||
recurringDepositRequestData.add("noPenaltyNomineeHeirClosure");
|
||||
recurringDepositRequestData.add("deceasedSettlement");
|
||||
recurringDepositRequestData.add("allowDebitTxnAfterDueDate");
|
||||
recurringDepositRequestData.add("escheatLiabilityId");
|
||||
recurringDepositRequestData.add("accountingMappings");
|
||||
recurringDepositRequestData.add("paymentChannelToFundSourceMappings");
|
||||
recurringDepositRequestData.add("feeToIncomeAccountMappings");
|
||||
recurringDepositRequestData.add("penaltyToIncomeAccountMappings");
|
||||
return recurringDepositRequestData;
|
||||
}
|
||||
|
||||
@@ -428,6 +522,28 @@ public final class DepositsApiConstants {
|
||||
fixedDepositRequestData.addAll(DEPOSIT_TERM_REQUEST_DATA_PARAMETERS);
|
||||
fixedDepositRequestData.add(linkedAccountParamName);
|
||||
fixedDepositRequestData.add(transferInterestToSavingsParamName);
|
||||
fixedDepositRequestData.add("accountType");
|
||||
fixedDepositRequestData.add("customerSegment");
|
||||
fixedDepositRequestData.add(SavingsApiConstants.accountStatusParamName);
|
||||
fixedDepositRequestData.add(SavingsApiConstants.modeOfOperationParamName);
|
||||
fixedDepositRequestData.add(SavingsApiConstants.specialCategoryParamName);
|
||||
fixedDepositRequestData.add(SavingsApiConstants.weakerSectionParamName);
|
||||
fixedDepositRequestData.add(SavingsApiConstants.guardianNameParamName);
|
||||
fixedDepositRequestData.add(SavingsApiConstants.guardianCifNumberParamName);
|
||||
fixedDepositRequestData.add(SavingsApiConstants.guardianRelationshipParamName);
|
||||
fixedDepositRequestData.add(SavingsApiConstants.guardianClientIdParamName);
|
||||
fixedDepositRequestData.add(SavingsApiConstants.minorDateOfBirthParamName);
|
||||
fixedDepositRequestData.add(SavingsApiConstants.introducerIdParamName);
|
||||
fixedDepositRequestData.add(SavingsApiConstants.introducerNameParamName);
|
||||
fixedDepositRequestData.add(SavingsApiConstants.introducerCifNumberParamName);
|
||||
fixedDepositRequestData.add(SavingsApiConstants.nomineeParamName);
|
||||
fixedDepositRequestData.add("nominees");
|
||||
fixedDepositRequestData.add(SavingsApiConstants.linkedAccountIdParamName);
|
||||
fixedDepositRequestData.add(SavingsApiConstants.linkedAccountTypeParamName);
|
||||
fixedDepositRequestData.add(SavingsApiConstants.linkedAccountNoParamName);
|
||||
fixedDepositRequestData.add(SavingsApiConstants.jointHoldersParamName);
|
||||
fixedDepositRequestData.add(SavingsApiConstants.autoDebitFacilityParamName);
|
||||
fixedDepositRequestData.add(SavingsApiConstants.nominationFacilityParamName);
|
||||
return fixedDepositRequestData;
|
||||
}
|
||||
|
||||
@@ -438,6 +554,31 @@ public final class DepositsApiConstants {
|
||||
fixedDepositResponseData.addAll(DEPOSIT_TERM_RESPONSE_DATA_PARAMETERS);
|
||||
fixedDepositResponseData.add(linkedAccountParamName);
|
||||
fixedDepositResponseData.add(transferInterestToSavingsParamName);
|
||||
fixedDepositResponseData.add("accountType");
|
||||
fixedDepositResponseData.add("customerSegment");
|
||||
fixedDepositResponseData.add("accountTypeOptions");
|
||||
fixedDepositResponseData.add("customerSegmentOptions");
|
||||
fixedDepositResponseData.add("productCode");
|
||||
fixedDepositResponseData.add("previewAccountNo");
|
||||
fixedDepositResponseData.add(SavingsApiConstants.accountStatusParamName);
|
||||
fixedDepositResponseData.add(SavingsApiConstants.modeOfOperationParamName);
|
||||
fixedDepositResponseData.add(SavingsApiConstants.specialCategoryParamName);
|
||||
fixedDepositResponseData.add(SavingsApiConstants.weakerSectionParamName);
|
||||
fixedDepositResponseData.add(SavingsApiConstants.guardianNameParamName);
|
||||
fixedDepositResponseData.add(SavingsApiConstants.guardianCifNumberParamName);
|
||||
fixedDepositResponseData.add(SavingsApiConstants.guardianRelationshipParamName);
|
||||
fixedDepositResponseData.add(SavingsApiConstants.guardianClientIdParamName);
|
||||
fixedDepositResponseData.add(SavingsApiConstants.minorDateOfBirthParamName);
|
||||
fixedDepositResponseData.add(SavingsApiConstants.introducerIdParamName);
|
||||
fixedDepositResponseData.add(SavingsApiConstants.introducerNameParamName);
|
||||
fixedDepositResponseData.add(SavingsApiConstants.introducerCifNumberParamName);
|
||||
fixedDepositResponseData.add(SavingsApiConstants.nomineeParamName);
|
||||
fixedDepositResponseData.add(SavingsApiConstants.linkedAccountIdParamName);
|
||||
fixedDepositResponseData.add(SavingsApiConstants.linkedAccountTypeParamName);
|
||||
fixedDepositResponseData.add(SavingsApiConstants.linkedAccountNoParamName);
|
||||
fixedDepositResponseData.add(SavingsApiConstants.jointHoldersParamName);
|
||||
fixedDepositResponseData.add(SavingsApiConstants.nominationFacilityParamName);
|
||||
fixedDepositResponseData.add(SavingsApiConstants.autoDebitFacilityParamName);
|
||||
return fixedDepositResponseData;
|
||||
}
|
||||
|
||||
@@ -447,6 +588,30 @@ public final class DepositsApiConstants {
|
||||
recurringDepositRequestData.addAll(PRECLOSURE_REQUEST_DATA_PARAMETERS);
|
||||
recurringDepositRequestData.addAll(DEPOSIT_TERM_REQUEST_DATA_PARAMETERS);
|
||||
recurringDepositRequestData.addAll(RECURRING_DETAILS_REQUEST_DATA_PARAMETERS);
|
||||
// CBS Account fields
|
||||
recurringDepositRequestData.add("accountType");
|
||||
recurringDepositRequestData.add("customerSegment");
|
||||
recurringDepositRequestData.add(SavingsApiConstants.accountStatusParamName);
|
||||
recurringDepositRequestData.add(SavingsApiConstants.modeOfOperationParamName);
|
||||
recurringDepositRequestData.add(SavingsApiConstants.specialCategoryParamName);
|
||||
recurringDepositRequestData.add(SavingsApiConstants.weakerSectionParamName);
|
||||
recurringDepositRequestData.add(SavingsApiConstants.guardianNameParamName);
|
||||
recurringDepositRequestData.add(SavingsApiConstants.guardianCifNumberParamName);
|
||||
recurringDepositRequestData.add(SavingsApiConstants.guardianRelationshipParamName);
|
||||
recurringDepositRequestData.add(SavingsApiConstants.guardianClientIdParamName);
|
||||
recurringDepositRequestData.add(SavingsApiConstants.minorDateOfBirthParamName);
|
||||
recurringDepositRequestData.add(SavingsApiConstants.introducerIdParamName);
|
||||
recurringDepositRequestData.add(SavingsApiConstants.introducerNameParamName);
|
||||
recurringDepositRequestData.add(SavingsApiConstants.introducerCifNumberParamName);
|
||||
recurringDepositRequestData.add(SavingsApiConstants.nomineeParamName);
|
||||
recurringDepositRequestData.add("nominees");
|
||||
recurringDepositRequestData.add(SavingsApiConstants.linkedAccountIdParamName);
|
||||
recurringDepositRequestData.add(SavingsApiConstants.linkedAccountTypeParamName);
|
||||
recurringDepositRequestData.add(SavingsApiConstants.linkedAccountNoParamName);
|
||||
recurringDepositRequestData.add(SavingsApiConstants.jointHoldersParamName);
|
||||
recurringDepositRequestData.add(SavingsApiConstants.balanceSwapOptionParamName);
|
||||
recurringDepositRequestData.add(SavingsApiConstants.msmeParamName);
|
||||
recurringDepositRequestData.add(SavingsApiConstants.autoDebitFacilityParamName);
|
||||
return recurringDepositRequestData;
|
||||
}
|
||||
|
||||
@@ -494,6 +659,10 @@ public final class DepositsApiConstants {
|
||||
recurringDepositResponseData.add("noPenaltyNomineeHeirClosure");
|
||||
recurringDepositResponseData.add("deceasedSettlement");
|
||||
recurringDepositResponseData.add("allowDebitTxnAfterDueDate");
|
||||
recurringDepositResponseData.add("accountingMappings");
|
||||
recurringDepositResponseData.add("paymentChannelToFundSourceMappings");
|
||||
recurringDepositResponseData.add("feeToIncomeAccountMappings");
|
||||
recurringDepositResponseData.add("penaltyToIncomeAccountMappings");
|
||||
return recurringDepositResponseData;
|
||||
}
|
||||
|
||||
|
||||
+2
@@ -32,6 +32,8 @@ public class SavingsApiConstants {
|
||||
public static final String CURRENT_PRODUCT_CUSTOMER_SEGMENT = "CurrentProductCustomerSegment";
|
||||
public static final String RD_PRODUCT_ACCOUNT_TYPE = "RecurringDepositProductAccountType";
|
||||
public static final String RD_PRODUCT_CUSTOMER_SEGMENT = "RecurringDepositProductCustomerSegment";
|
||||
public static final String FD_PRODUCT_ACCOUNT_TYPE = "FixedDepositProductAccountType";
|
||||
public static final String FD_PRODUCT_CUSTOMER_SEGMENT = "FixedDepositProductCustomerSegment";
|
||||
public static final String PERIOD_FREQUENCY = "PeriodFrequency";
|
||||
public static final String INTEREST_CALCULATION_TYPE_OPTION = "InterestCalculationTypeOption";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user