diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/charge/service/ChargeReadPlatformService.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/charge/service/ChargeReadPlatformService.java index b223a8830..6247d750c 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/charge/service/ChargeReadPlatformService.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/charge/service/ChargeReadPlatformService.java @@ -77,7 +77,7 @@ public interface ChargeReadPlatformService { * @param feeChargesOnly * @return */ - Collection retrieveSavingsApplicableCharges(boolean feeChargesOnly); + Collection retrieveSavingsProductApplicableCharges(boolean feeChargesOnly); /** * Returns all penalties applicable for savings @@ -93,5 +93,8 @@ public interface ChargeReadPlatformService { * @return */ Collection retrieveSavingsProductCharges(Long savingsProductId); + + /** Retrieve savings account charges **/ + Collection retrieveSavingsAccountApplicableCharges(Long savingsId); } diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/charge/service/ChargeReadPlatformServiceImpl.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/charge/service/ChargeReadPlatformServiceImpl.java index 4149a1510..2eed617a9 100755 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/charge/service/ChargeReadPlatformServiceImpl.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/charge/service/ChargeReadPlatformServiceImpl.java @@ -309,7 +309,7 @@ public class ChargeReadPlatformServiceImpl implements ChargeReadPlatformService } @Override - public Collection retrieveSavingsApplicableCharges(final boolean feeChargesOnly) { + public Collection retrieveSavingsProductApplicableCharges(final boolean feeChargesOnly) { final ChargeMapper rm = new ChargeMapper(); String sql = "select " + rm.chargeSchema() @@ -345,5 +345,17 @@ public class ChargeReadPlatformServiceImpl implements ChargeReadPlatformService return this.jdbcTemplate.query(sql, rm, new Object[] { savingsProductId }); } + + @Override + public Collection retrieveSavingsAccountApplicableCharges(Long savingsAccountId) { + + final ChargeMapper rm = new ChargeMapper(); + + String sql = "select " + rm.chargeSchema() + " join m_savings_account sa on sa.currency_code = c.currency_code" + + " where c.is_deleted=0 and c.is_active=1 and c.charge_applies_to_enum=? " + " and sa.account_no = ?"; + + return this.jdbcTemplate.query(sql, rm, new Object[] { ChargeAppliesTo.SAVINGS.getValue(), savingsAccountId }); + + } } \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/api/FixedDepositProductsApiResource.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/api/FixedDepositProductsApiResource.java index 18cabbe78..d4dce10cf 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/api/FixedDepositProductsApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/api/FixedDepositProductsApiResource.java @@ -268,7 +268,7 @@ public class FixedDepositProductsApiResource { // charges final boolean feeChargesOnly = true; - Collection chargeOptions = this.chargeReadPlatformService.retrieveSavingsApplicableCharges(feeChargesOnly); + Collection chargeOptions = this.chargeReadPlatformService.retrieveSavingsProductApplicableCharges(feeChargesOnly); chargeOptions = CollectionUtils.isEmpty(chargeOptions) ? null : chargeOptions; Collection penaltyOptions = this.chargeReadPlatformService.retrieveSavingsApplicablePenalties(); diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/api/RecurringDepositProductsApiResource.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/api/RecurringDepositProductsApiResource.java index 8a7558881..e278c1d17 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/api/RecurringDepositProductsApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/api/RecurringDepositProductsApiResource.java @@ -264,7 +264,7 @@ public class RecurringDepositProductsApiResource { // charges final boolean feeChargesOnly = true; - Collection chargeOptions = this.chargeReadPlatformService.retrieveSavingsApplicableCharges(feeChargesOnly); + Collection chargeOptions = this.chargeReadPlatformService.retrieveSavingsProductApplicableCharges(feeChargesOnly); chargeOptions = CollectionUtils.isEmpty(chargeOptions) ? null : chargeOptions; Collection penaltyOptions = this.chargeReadPlatformService.retrieveSavingsApplicablePenalties(); diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/api/SavingsAccountChargesApiResource.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/api/SavingsAccountChargesApiResource.java index b358e2650..cd2b04887 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/api/SavingsAccountChargesApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/api/SavingsAccountChargesApiResource.java @@ -100,12 +100,11 @@ public class SavingsAccountChargesApiResource { @Path("template") @Consumes({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON }) - public String retrieveTemplate(@Context final UriInfo uriInfo) { + public String retrieveTemplate(@PathParam("savingsAccountId") final Long savingsAccountId, @Context final UriInfo uriInfo) { this.context.authenticatedUser().validateHasReadPermission(SAVINGS_ACCOUNT_CHARGE_RESOURCE_NAME); - final boolean feeChargesOnly = false; - final Collection chargeOptions = this.chargeReadPlatformService.retrieveSavingsApplicableCharges(feeChargesOnly); + final Collection chargeOptions = this.chargeReadPlatformService.retrieveSavingsAccountApplicableCharges(savingsAccountId); final SavingsAccountChargeData savingsAccountChargeTemplate = SavingsAccountChargeData.template(chargeOptions); final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters()); diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/api/SavingsProductsApiResource.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/api/SavingsProductsApiResource.java index 53d90c060..ede9ec6da 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/api/SavingsProductsApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/api/SavingsProductsApiResource.java @@ -237,7 +237,7 @@ public class SavingsProductsApiResource { // charges final boolean feeChargesOnly = true; - Collection chargeOptions = this.chargeReadPlatformService.retrieveSavingsApplicableCharges(feeChargesOnly); + Collection chargeOptions = this.chargeReadPlatformService.retrieveSavingsProductApplicableCharges(feeChargesOnly); chargeOptions = CollectionUtils.isEmpty(chargeOptions) ? null : chargeOptions; Collection penaltyOptions = this.chargeReadPlatformService.retrieveSavingsApplicablePenalties(); diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/service/DepositAccountReadPlatformServiceImpl.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/service/DepositAccountReadPlatformServiceImpl.java index 950cee8c9..55398a60e 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/service/DepositAccountReadPlatformServiceImpl.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/service/DepositAccountReadPlatformServiceImpl.java @@ -358,7 +358,7 @@ public class DepositAccountReadPlatformServiceImpl implements DepositAccountRead final Collection charges = fromChargesToSavingsCharges(productCharges); final boolean feeChargesOnly = false; - final Collection chargeOptions = this.chargeReadPlatformService.retrieveSavingsApplicableCharges(feeChargesOnly); + final Collection chargeOptions = this.chargeReadPlatformService.retrieveSavingsProductApplicableCharges(feeChargesOnly); Collection fieldOfficerOptions = null; @@ -434,7 +434,7 @@ public class DepositAccountReadPlatformServiceImpl implements DepositAccountRead final Collection charges = null; final boolean feeChargesOnly = true; - final Collection chargeOptions = this.chargeReadPlatformService.retrieveSavingsApplicableCharges(feeChargesOnly); + final Collection chargeOptions = this.chargeReadPlatformService.retrieveSavingsProductApplicableCharges(feeChargesOnly); if (depositAccountType.isFixedDeposit()) { diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/service/SavingsAccountReadPlatformServiceImpl.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/service/SavingsAccountReadPlatformServiceImpl.java index 0739b8fd1..4de7156c6 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/service/SavingsAccountReadPlatformServiceImpl.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/service/SavingsAccountReadPlatformServiceImpl.java @@ -520,7 +520,7 @@ public class SavingsAccountReadPlatformServiceImpl implements SavingsAccountRead final Collection charges = fromChargesToSavingsCharges(productCharges); final boolean feeChargesOnly = false; - final Collection chargeOptions = this.chargeReadPlatformService.retrieveSavingsApplicableCharges(feeChargesOnly); + final Collection chargeOptions = this.chargeReadPlatformService.retrieveSavingsProductApplicableCharges(feeChargesOnly); Collection fieldOfficerOptions = null; @@ -578,7 +578,7 @@ public class SavingsAccountReadPlatformServiceImpl implements SavingsAccountRead final Collection charges = null; final boolean feeChargesOnly = true; - final Collection chargeOptions = this.chargeReadPlatformService.retrieveSavingsApplicableCharges(feeChargesOnly); + final Collection chargeOptions = this.chargeReadPlatformService.retrieveSavingsProductApplicableCharges(feeChargesOnly); template = SavingsAccountData.withTemplateOptions(template, productOptions, fieldOfficerOptions, interestCompoundingPeriodTypeOptions, interestPostingPeriodTypeOptions, interestCalculationTypeOptions,