From b0df80e2a2d041559c65147bab885dde97654fb6 Mon Sep 17 00:00:00 2001 From: Vishwas Babu A J Date: Tue, 1 Jul 2014 19:06:30 -0700 Subject: [PATCH] MIFOSX-1161 clean ups --- ...n_required_balance_for_savings_product.sql | 8 +++++ .../savings/SavingsApiConstants.java | 6 ++-- .../savings/data/SavingsAccountData.java | 26 +++++++------- .../savings/data/SavingsProductData.java | 24 ++++++------- .../savings/domain/SavingsAccount.java | 34 ++++++++----------- .../domain/SavingsAccountAssembler.java | 14 ++++---- .../savings/domain/SavingsProduct.java | 30 +++++++--------- .../domain/SavingsProductAssembler.java | 10 +++--- ...SavingsAccountReadPlatformServiceImpl.java | 12 +++---- ...SavingsProductReadPlatformServiceImpl.java | 6 ++-- 10 files changed, 85 insertions(+), 85 deletions(-) create mode 100644 mifosng-db/migrations/core_db/V184__update_min_required_balance_for_savings_product.sql diff --git a/mifosng-db/migrations/core_db/V184__update_min_required_balance_for_savings_product.sql b/mifosng-db/migrations/core_db/V184__update_min_required_balance_for_savings_product.sql new file mode 100644 index 000000000..d4c7e20a4 --- /dev/null +++ b/mifosng-db/migrations/core_db/V184__update_min_required_balance_for_savings_product.sql @@ -0,0 +1,8 @@ +ALTER TABLE `m_savings_product` + CHANGE COLUMN `allow_overdraft_min_balance` `enforce_min_required_balance` TINYINT(1) NOT NULL DEFAULT '0' AFTER `min_required_balance`; + +ALTER TABLE `m_savings_account` + CHANGE COLUMN `allow_overdraft_min_balance` `enforce_min_required_balance` TINYINT(1) NOT NULL DEFAULT '0' AFTER `min_required_balance`; + + + diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/SavingsApiConstants.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/SavingsApiConstants.java index 162c1f86c..54395a1d3 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/SavingsApiConstants.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/SavingsApiConstants.java @@ -96,7 +96,7 @@ public class SavingsApiConstants { public static final String allowOverdraftParamName = "allowOverdraft"; public static final String overdraftLimitParamName = "overdraftLimit"; public static final String minRequiredBalanceParamName = "minRequiredBalance"; - public static final String allowOverdraftMinBalanceParamName = "allowOverdraftMinBalance"; + public static final String enforceMinRequiredBalanceParamName = "enforceMinRequiredBalance"; public static final String minBalanceForInterestCalculationParamName = "minBalanceForInterestCalculation"; // transaction parameters @@ -153,7 +153,7 @@ public class SavingsApiConstants { SAVINGS_PRODUCT_ACCOUNTING_PARAMS.OVERDRAFT_PORTFOLIO_CONTROL.getValue(), SAVINGS_PRODUCT_ACCOUNTING_PARAMS.LOSSES_WRITTEN_OFF.getValue(), SAVINGS_PRODUCT_ACCOUNTING_PARAMS.INCOME_FROM_INTEREST.getValue(), allowOverdraftParamName, overdraftLimitParamName, - minRequiredBalanceParamName, allowOverdraftMinBalanceParamName, minBalanceForInterestCalculationParamName)); + minRequiredBalanceParamName, enforceMinRequiredBalanceParamName, minBalanceForInterestCalculationParamName)); /** * These parameters will match the class level parameters of @@ -177,7 +177,7 @@ public class SavingsApiConstants { lockinPeriodFrequencyTypeParamName, // withdrawalFeeAmountParamName, withdrawalFeeTypeParamName, withdrawalFeeForTransfersParamName, feeAmountParamName, feeOnMonthDayParamName, chargesParamName, allowOverdraftParamName, - overdraftLimitParamName, minRequiredBalanceParamName, allowOverdraftMinBalanceParamName)); + overdraftLimitParamName, minRequiredBalanceParamName, enforceMinRequiredBalanceParamName)); /** * These parameters will match the class level parameters of diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/data/SavingsAccountData.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/data/SavingsAccountData.java index 0e2f24938..8138b833a 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/data/SavingsAccountData.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/data/SavingsAccountData.java @@ -48,7 +48,7 @@ public class SavingsAccountData { private final boolean allowOverdraft; private final BigDecimal overdraftLimit; private final BigDecimal minRequiredBalance; - private final boolean allowOverdraftMinBalance; + private final boolean enforceMinRequiredBalance; private final BigDecimal minBalanceForInterestCalculation; // associations @@ -83,7 +83,7 @@ public class SavingsAccountData { final EnumOptionData interestCalculationDaysInYearType, final BigDecimal minRequiredOpeningBalance, final Integer lockinPeriodFrequency, final EnumOptionData lockinPeriodFrequencyType, final boolean withdrawalFeeForTransfers, final SavingsAccountSummaryData summary, final boolean allowOverdraft, final BigDecimal overdraftLimit, - final BigDecimal minRequiredBalance, final boolean allowOverdraftMinBalance, final BigDecimal minBalanceForInterestCalculation) { + final BigDecimal minRequiredBalance, final boolean enforceMinRequiredBalance, final BigDecimal minBalanceForInterestCalculation) { final Collection productOptions = null; final Collection fieldOfficerOptions = null; @@ -105,7 +105,7 @@ public class SavingsAccountData { fieldOfficerOptions, interestCompoundingPeriodTypeOptions, interestPostingPeriodTypeOptions, interestCalculationTypeOptions, interestCalculationDaysInYearTypeOptions, lockinPeriodFrequencyTypeOptions, withdrawalFeeTypeOptions, charges, chargeOptions, allowOverdraft, overdraftLimit, minRequiredBalance, - allowOverdraftMinBalance, minBalanceForInterestCalculation); + enforceMinRequiredBalance, minBalanceForInterestCalculation); } public static SavingsAccountData lookup(final Long accountId, final String accountNo, final EnumOptionData depositType) { @@ -139,7 +139,7 @@ public class SavingsAccountData { final boolean allowOverdraft = false; final BigDecimal overdraftLimit = null; final BigDecimal minRequiredBalance = null; - final boolean allowOverdraftMinBalance = false; + final boolean enforceMinRequiredBalance = false; final BigDecimal minBalanceForInterestCalculation = null; final SavingsAccountSummaryData summary = null; @@ -164,7 +164,7 @@ public class SavingsAccountData { fieldOfficerOptions, interestCompoundingPeriodTypeOptions, interestPostingPeriodTypeOptions, interestCalculationTypeOptions, interestCalculationDaysInYearTypeOptions, lockinPeriodFrequencyTypeOptions, withdrawalFeeTypeOptions, charges, chargeOptions, allowOverdraft, overdraftLimit, minRequiredBalance, - allowOverdraftMinBalance, minBalanceForInterestCalculation); + enforceMinRequiredBalance, minBalanceForInterestCalculation); } public static SavingsAccountData lookupWithProductDetails(final Long accountId, final String accountNo, @@ -196,7 +196,7 @@ public class SavingsAccountData { final boolean allowOverdraft = false; final BigDecimal overdraftLimit = null; final BigDecimal minRequiredBalance = null; - final boolean allowOverdraftMinBalance = false; + final boolean enforceMinRequiredBalance = false; final BigDecimal minBalanceForInterestCalculation = null; final SavingsAccountSummaryData summary = null; @@ -221,7 +221,7 @@ public class SavingsAccountData { fieldOfficerOptions, interestCompoundingPeriodTypeOptions, interestPostingPeriodTypeOptions, interestCalculationTypeOptions, interestCalculationDaysInYearTypeOptions, lockinPeriodFrequencyTypeOptions, withdrawalFeeTypeOptions, charges, chargeOptions, allowOverdraft, overdraftLimit, minRequiredBalance, - allowOverdraftMinBalance, minBalanceForInterestCalculation); + enforceMinRequiredBalance, minBalanceForInterestCalculation); } public static SavingsAccountData withTemplateOptions(final SavingsAccountData account, final SavingsAccountData template, @@ -253,7 +253,7 @@ public class SavingsAccountData { template.interestPostingPeriodTypeOptions, template.interestCalculationTypeOptions, template.interestCalculationDaysInYearTypeOptions, template.lockinPeriodFrequencyTypeOptions, template.withdrawalFeeTypeOptions, charges, template.chargeOptions, account.allowOverdraft, account.overdraftLimit, - account.minRequiredBalance, account.allowOverdraftMinBalance, account.minBalanceForInterestCalculation); + account.minRequiredBalance, account.enforceMinRequiredBalance, account.minBalanceForInterestCalculation); } public static SavingsAccountData withTemplateOptions(final SavingsAccountData account, @@ -275,7 +275,7 @@ public class SavingsAccountData { transactions, productOptions, fieldOfficerOptions, interestCompoundingPeriodTypeOptions, interestPostingPeriodTypeOptions, interestCalculationTypeOptions, interestCalculationDaysInYearTypeOptions, lockinPeriodFrequencyTypeOptions, withdrawalFeeTypeOptions, charges, chargeOptions, account.allowOverdraft, account.overdraftLimit, - account.minRequiredBalance, account.allowOverdraftMinBalance, account.minBalanceForInterestCalculation); + account.minRequiredBalance, account.enforceMinRequiredBalance, account.minBalanceForInterestCalculation); } public static SavingsAccountData withClientTemplate(final Long clientId, final String clientName, final Long groupId, @@ -309,7 +309,7 @@ public class SavingsAccountData { final boolean allowOverdraft = false; final BigDecimal overdraftLimit = null; final BigDecimal minRequiredBalance = null; - final boolean allowOverdraftMinBalance = false; + final boolean enforceMinRequiredBalance = false; final BigDecimal minBalanceForInterestCalculation = null; final SavingsAccountSummaryData summary = null; @@ -334,7 +334,7 @@ public class SavingsAccountData { fieldOfficerOptions, interestCompoundingPeriodTypeOptions, interestPostingPeriodTypeOptions, interestCalculationTypeOptions, interestCalculationDaysInYearTypeOptions, lockinPeriodFrequencyTypeOptions, withdrawalFeeTypeOptions, charges, chargeOptions, allowOverdraft, overdraftLimit, minRequiredBalance, - allowOverdraftMinBalance, minBalanceForInterestCalculation); + enforceMinRequiredBalance, minBalanceForInterestCalculation); } private SavingsAccountData(final Long id, final String accountNo, final EnumOptionData depositType, final String externalId, @@ -353,7 +353,7 @@ public class SavingsAccountData { final Collection interestCalculationDaysInYearTypeOptions, final Collection lockinPeriodFrequencyTypeOptions, final Collection withdrawalFeeTypeOptions, final Collection charges, final Collection chargeOptions, final boolean allowOverdraft, - final BigDecimal overdraftLimit, final BigDecimal minRequiredBalance, final boolean allowOverdraftMinBalance, + final BigDecimal overdraftLimit, final BigDecimal minRequiredBalance, final boolean enforceMinRequiredBalance, final BigDecimal minBalanceForInterestCalculation) { this.id = id; this.accountNo = accountNo; @@ -407,7 +407,7 @@ public class SavingsAccountData { this.allowOverdraft = allowOverdraft; this.overdraftLimit = overdraftLimit; this.minRequiredBalance = minRequiredBalance; - this.allowOverdraftMinBalance = allowOverdraftMinBalance; + this.enforceMinRequiredBalance = enforceMinRequiredBalance; this.minBalanceForInterestCalculation = minBalanceForInterestCalculation; } diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/data/SavingsProductData.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/data/SavingsProductData.java index 3d34f5c1c..8afa842fd 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/data/SavingsProductData.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/data/SavingsProductData.java @@ -41,7 +41,7 @@ public class SavingsProductData { private final boolean allowOverdraft; private final BigDecimal overdraftLimit; private final BigDecimal minRequiredBalance; - private final boolean allowOverdraftMinBalance; + private final boolean enforceMinRequiredBalance; private final BigDecimal minBalanceForInterestCalculation; // accounting @@ -97,7 +97,7 @@ public class SavingsProductData { final boolean allowOverdraft = false; final BigDecimal overdraftLimit = null; final BigDecimal minRequiredBalance = null; - final boolean allowOverdraftMinBalance = false; + final boolean enforceMinRequiredBalance = false; final BigDecimal minBalanceForInterestCalculation = null; return new SavingsProductData(id, name, shortName, description, currency, nominalAnnualInterestRate, interestCompoundingPeriodType, @@ -107,7 +107,7 @@ public class SavingsProductData { interestPostingPeriodTypeOptions, interestCalculationTypeOptions, interestCalculationDaysInYearTypeOptions, lockinPeriodFrequencyTypeOptions, withdrawalFeeTypeOptions, paymentTypeOptions, accountingRuleOptions, accountingMappingOptions, charges, chargeOptions, penaltyOptions, feeToIncomeAccountMappings, - penaltyToIncomeAccountMappings, allowOverdraft, overdraftLimit, minRequiredBalance, allowOverdraftMinBalance, + penaltyToIncomeAccountMappings, allowOverdraft, overdraftLimit, minRequiredBalance, enforceMinRequiredBalance, minBalanceForInterestCalculation); } @@ -122,7 +122,7 @@ public class SavingsProductData { product.lockinPeriodFrequencyTypeOptions, product.withdrawalFeeTypeOptions, product.paymentTypeOptions, product.accountingRuleOptions, product.accountingMappingOptions, charges, product.chargeOptions, product.penaltyOptions, product.feeToIncomeAccountMappings, product.penaltyToIncomeAccountMappings, product.allowOverdraft, product.overdraftLimit, - product.minRequiredBalance, product.allowOverdraftMinBalance, product.minBalanceForInterestCalculation); + product.minRequiredBalance, product.enforceMinRequiredBalance, product.minBalanceForInterestCalculation); } /** @@ -150,7 +150,7 @@ public class SavingsProductData { lockinPeriodFrequencyTypeOptions, withdrawalFeeTypeOptions, paymentTypeOptions, accountingRuleOptions, accountingMappingOptions, existingProduct.charges, chargeOptions, penaltyOptions, existingProduct.feeToIncomeAccountMappings, existingProduct.penaltyToIncomeAccountMappings, existingProduct.allowOverdraft, - existingProduct.overdraftLimit, existingProduct.minRequiredBalance, existingProduct.allowOverdraftMinBalance, + existingProduct.overdraftLimit, existingProduct.minRequiredBalance, existingProduct.enforceMinRequiredBalance, existingProduct.minBalanceForInterestCalculation); } @@ -184,7 +184,7 @@ public class SavingsProductData { lockinPeriodFrequencyTypeOptions, withdrawalFeeTypeOptions, paymentTypeOptions, accountingRuleOptions, accountingMappingOptions, existingProduct.charges, chargeOptions, penaltyOptions, feeToIncomeAccountMappings, penaltyToIncomeAccountMappings, existingProduct.allowOverdraft, existingProduct.overdraftLimit, - existingProduct.minRequiredBalance, existingProduct.allowOverdraftMinBalance, + existingProduct.minRequiredBalance, existingProduct.enforceMinRequiredBalance, existingProduct.minBalanceForInterestCalculation); } @@ -194,7 +194,7 @@ public class SavingsProductData { final EnumOptionData interestCalculationDaysInYearType, final BigDecimal minRequiredOpeningBalance, final Integer lockinPeriodFrequency, final EnumOptionData lockinPeriodFrequencyType, final boolean withdrawalFeeForTransfers, final EnumOptionData accountingType, final boolean allowOverdraft, final BigDecimal overdraftLimit, - final BigDecimal minRequiredBalance, final boolean allowOverdraftMinBalance, final BigDecimal minBalanceForInterestCalculation) { + final BigDecimal minRequiredBalance, final boolean enforceMinRequiredBalance, final BigDecimal minBalanceForInterestCalculation) { final Map accountingMappings = null; final Collection paymentChannelToFundSourceMappings = null; @@ -222,7 +222,7 @@ public class SavingsProductData { interestPostingPeriodTypeOptions, interestCalculationTypeOptions, interestCalculationDaysInYearTypeOptions, lockinPeriodFrequencyTypeOptions, withdrawalFeeTypeOptions, paymentTypeOptions, accountingRuleOptions, accountingMappingOptions, charges, chargeOptions, penaltyOptions, feeToIncomeAccountMappings, - penaltyToIncomeAccountMappings, allowOverdraft, overdraftLimit, minRequiredBalance, allowOverdraftMinBalance, + penaltyToIncomeAccountMappings, allowOverdraft, overdraftLimit, minRequiredBalance, enforceMinRequiredBalance, minBalanceForInterestCalculation); } @@ -246,7 +246,7 @@ public class SavingsProductData { final boolean allowOverdraft = false; final BigDecimal overdraftLimit = null; final BigDecimal minRequiredBalance = null; - final boolean allowOverdraftMinBalance = false; + final boolean enforceMinRequiredBalance = false; final BigDecimal minBalanceForInterestCalculation = null; final Collection currencyOptions = null; @@ -272,7 +272,7 @@ public class SavingsProductData { interestPostingPeriodTypeOptions, interestCalculationTypeOptions, interestCalculationDaysInYearTypeOptions, lockinPeriodFrequencyTypeOptions, withdrawalFeeTypeOptions, paymentTypeOptions, accountingRuleOptions, accountingMappingOptions, charges, chargeOptions, penaltyOptions, feeToIncomeAccountMappings, - penaltyToIncomeAccountMappings, allowOverdraft, overdraftLimit, minRequiredBalance, allowOverdraftMinBalance, + penaltyToIncomeAccountMappings, allowOverdraft, overdraftLimit, minRequiredBalance, enforceMinRequiredBalance, minBalanceForInterestCalculation); } @@ -293,7 +293,7 @@ public class SavingsProductData { final Collection chargeOptions, final Collection penaltyOptions, final Collection feeToIncomeAccountMappings, final Collection penaltyToIncomeAccountMappings, final boolean allowOverdraft, - final BigDecimal overdraftLimit, final BigDecimal minRequiredBalance, final boolean allowOverdraftMinBalance, + final BigDecimal overdraftLimit, final BigDecimal minRequiredBalance, final boolean enforceMinRequiredBalance, final BigDecimal minBalanceForInterestCalculation) { this.id = id; this.name = name; @@ -340,7 +340,7 @@ public class SavingsProductData { this.allowOverdraft = allowOverdraft; this.overdraftLimit = overdraftLimit; this.minRequiredBalance = minRequiredBalance; - this.allowOverdraftMinBalance = allowOverdraftMinBalance; + this.enforceMinRequiredBalance = enforceMinRequiredBalance; this.minBalanceForInterestCalculation = minBalanceForInterestCalculation; } diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/SavingsAccount.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/SavingsAccount.java index af3a08925..84b5d8b37 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/SavingsAccount.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/SavingsAccount.java @@ -6,9 +6,9 @@ package org.mifosplatform.portfolio.savings.domain; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.SAVINGS_ACCOUNT_RESOURCE_NAME; -import static org.mifosplatform.portfolio.savings.SavingsApiConstants.allowOverdraftMinBalanceParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.allowOverdraftParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.dueAsOfDateParamName; +import static org.mifosplatform.portfolio.savings.SavingsApiConstants.enforceMinRequiredBalanceParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.localeParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.lockinPeriodFrequencyParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.lockinPeriodFrequencyTypeParamName; @@ -241,8 +241,8 @@ public class SavingsAccount extends AbstractPersistable { @Column(name = "overdraft_limit", scale = 6, precision = 19, nullable = true) private BigDecimal overdraftLimit; - @Column(name = "allow_overdraft_min_balance") - private boolean allowOverdraftMinBalance; + @Column(name = "enforce_min_required_balance") + private boolean enforceMinRequiredBalance; @Column(name = "min_required_balance", scale = 6, precision = 19, nullable = true) private BigDecimal minRequiredBalance; @@ -284,14 +284,14 @@ public class SavingsAccount extends AbstractPersistable { final SavingsInterestCalculationDaysInYearType interestCalculationDaysInYearType, final BigDecimal minRequiredOpeningBalance, final Integer lockinPeriodFrequency, final SavingsPeriodFrequencyType lockinPeriodFrequencyType, final boolean withdrawalFeeApplicableForTransfer, final Set savingsAccountCharges, - final boolean allowOverdraft, final BigDecimal overdraftLimit, final boolean allowOverdraftMinBalance, + final boolean allowOverdraft, final BigDecimal overdraftLimit, final boolean enforceMinRequiredBalance, final BigDecimal minRequiredBalance) { final SavingsAccountStatusType status = SavingsAccountStatusType.SUBMITTED_AND_PENDING_APPROVAL; return new SavingsAccount(client, group, product, fieldOfficer, accountNo, externalId, status, accountType, submittedOnDate, submittedBy, interestRate, interestCompoundingPeriodType, interestPostingPeriodType, interestCalculationType, interestCalculationDaysInYearType, minRequiredOpeningBalance, lockinPeriodFrequency, lockinPeriodFrequencyType, - withdrawalFeeApplicableForTransfer, savingsAccountCharges, allowOverdraft, overdraftLimit, allowOverdraftMinBalance, + withdrawalFeeApplicableForTransfer, savingsAccountCharges, allowOverdraft, overdraftLimit, enforceMinRequiredBalance, minRequiredBalance); } @@ -318,7 +318,7 @@ public class SavingsAccount extends AbstractPersistable { final SavingsInterestCalculationDaysInYearType interestCalculationDaysInYearType, final BigDecimal minRequiredOpeningBalance, final Integer lockinPeriodFrequency, final SavingsPeriodFrequencyType lockinPeriodFrequencyType, final boolean withdrawalFeeApplicableForTransfer, final Set savingsAccountCharges, - final boolean allowOverdraft, final BigDecimal overdraftLimit, final boolean allowOverdraftMinBalance, + final boolean allowOverdraft, final BigDecimal overdraftLimit, final boolean enforceMinRequiredBalance, final BigDecimal minRequiredBalance) { this.client = client; this.group = group; @@ -357,7 +357,7 @@ public class SavingsAccount extends AbstractPersistable { this.allowOverdraft = allowOverdraft; this.overdraftLimit = overdraftLimit; - this.allowOverdraftMinBalance = allowOverdraftMinBalance; + this.enforceMinRequiredBalance = enforceMinRequiredBalance; this.minRequiredBalance = minRequiredBalance; this.minBalanceForInterestCalculation = product.minBalanceForInterestCalculation(); } @@ -521,13 +521,13 @@ public class SavingsAccount extends AbstractPersistable { final BigDecimal interestRateAsFraction = getEffectiveInterestRateAsFraction(mc, upToInterestCalculationDate); final Collection interestPostTransactions = this.savingsHelper.fetchPostInterestTransactionIds(getId()); final Money minBalanceForInterestCalculation = Money.of(getCurrency(), minBalanceForInterestCalculation()); - + for (final LocalDateInterval periodInterval : postingPeriodIntervals) { final PostingPeriod postingPeriod = PostingPeriod.createFrom(periodInterval, periodStartingBalance, retreiveOrderedNonInterestPostingTransactions(), this.currency, compoundingPeriodType, interestCalculationType, interestRateAsFraction, daysInYearType.getValue(), upToInterestCalculationDate, interestPostTransactions, - isInterestTransfer,minBalanceForInterestCalculation); + isInterestTransfer, minBalanceForInterestCalculation); periodStartingBalance = postingPeriod.closingBalance(); @@ -803,8 +803,8 @@ public class SavingsAccount extends AbstractPersistable { final BigDecimal withdrawalFee = null; // deal with potential minRequiredBalance and - // allowOverdraftMinBalance - if (this.minRequiredBalance != null && !this.allowOverdraftMinBalance) { + // enforceMinRequiredBalance + if (this.minRequiredBalance != null && this.enforceMinRequiredBalance) { if (runningBalance.minus(this.minRequiredBalance).isLessThanZero()) { throw new InsufficientAccountBalanceException( "transactionAmount", getAccountBalance(), withdrawalFee, transactionAmount); } } @@ -1040,10 +1040,10 @@ public class SavingsAccount extends AbstractPersistable { this.overdraftLimit = null; } - if (command.isChangeInBooleanParameterNamed(allowOverdraftMinBalanceParamName, this.allowOverdraftMinBalance)) { - final boolean newValue = command.booleanPrimitiveValueOfParameterNamed(allowOverdraftMinBalanceParamName); - actualChanges.put(allowOverdraftMinBalanceParamName, newValue); - this.allowOverdraftMinBalance = newValue; + if (command.isChangeInBooleanParameterNamed(enforceMinRequiredBalanceParamName, this.enforceMinRequiredBalance)) { + final boolean newValue = command.booleanPrimitiveValueOfParameterNamed(enforceMinRequiredBalanceParamName); + actualChanges.put(enforceMinRequiredBalanceParamName, newValue); + this.enforceMinRequiredBalance = newValue; } if (command.isChangeInBigDecimalParameterNamedDefaultingZeroToNull(minRequiredBalanceParamName, this.minRequiredBalance)) { @@ -1053,10 +1053,6 @@ public class SavingsAccount extends AbstractPersistable { this.minRequiredBalance = newValue; } - if (!this.allowOverdraftMinBalance) { - this.minRequiredBalance = null; - } - validateLockinDetails(baseDataValidator); } diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/SavingsAccountAssembler.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/SavingsAccountAssembler.java index 11701d10b..988257f03 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/SavingsAccountAssembler.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/SavingsAccountAssembler.java @@ -9,6 +9,7 @@ import static org.mifosplatform.portfolio.savings.SavingsApiConstants.SAVINGS_AC import static org.mifosplatform.portfolio.savings.SavingsApiConstants.accountNoParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.allowOverdraftParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.clientIdParamName; +import static org.mifosplatform.portfolio.savings.SavingsApiConstants.enforceMinRequiredBalanceParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.externalIdParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.fieldOfficerIdParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.groupIdParamName; @@ -18,14 +19,13 @@ import static org.mifosplatform.portfolio.savings.SavingsApiConstants.interestCo import static org.mifosplatform.portfolio.savings.SavingsApiConstants.interestPostingPeriodTypeParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.lockinPeriodFrequencyParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.lockinPeriodFrequencyTypeParamName; +import static org.mifosplatform.portfolio.savings.SavingsApiConstants.minRequiredBalanceParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.minRequiredOpeningBalanceParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.nominalAnnualInterestRateParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.overdraftLimitParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.productIdParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.submittedOnDateParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.withdrawalFeeForTransfersParamName; -import static org.mifosplatform.portfolio.savings.SavingsApiConstants.minRequiredBalanceParamName; -import static org.mifosplatform.portfolio.savings.SavingsApiConstants.allowOverdraftMinBalanceParamName; import java.math.BigDecimal; import java.util.Set; @@ -216,9 +216,9 @@ public class SavingsAccountAssembler { final BigDecimal overdraftLimit = command.bigDecimalValueOfParameterNamedDefaultToNullIfZero(overdraftLimitParamName); - boolean allowOverdraftMinBalance = false; - if (command.parameterExists(allowOverdraftMinBalanceParamName)) { - allowOverdraft = command.booleanPrimitiveValueOfParameterNamed(allowOverdraftMinBalanceParamName); + boolean enforceMinRequiredBalance = false; + if (command.parameterExists(enforceMinRequiredBalanceParamName)) { + enforceMinRequiredBalance = command.booleanPrimitiveValueOfParameterNamed(enforceMinRequiredBalanceParamName); } final BigDecimal minRequiredBalance = command.bigDecimalValueOfParameterNamedDefaultToNullIfZero(minRequiredBalanceParamName); @@ -227,7 +227,7 @@ public class SavingsAccountAssembler { externalId, accountType, submittedOnDate, submittedBy, interestRate, interestCompoundingPeriodType, interestPostingPeriodType, interestCalculationType, interestCalculationDaysInYearType, minRequiredOpeningBalance, lockinPeriodFrequency, lockinPeriodFrequencyType, iswithdrawalFeeApplicableForTransfer, charges, allowOverdraft, - overdraftLimit, allowOverdraftMinBalance, minRequiredBalance); + overdraftLimit, enforceMinRequiredBalance, minRequiredBalance); account.setHelpers(this.savingsAccountTransactionSummaryWrapper, this.savingsHelper); account.validateNewApplicationState(DateUtils.getLocalDateOfTenant(), SAVINGS_ACCOUNT_RESOURCE_NAME); @@ -281,7 +281,7 @@ public class SavingsAccountAssembler { product.interestPostingPeriodType(), product.interestCalculationType(), product.interestCalculationDaysInYearType(), product.minRequiredOpeningBalance(), product.lockinPeriodFrequency(), product.lockinPeriodFrequencyType(), product.isWithdrawalFeeApplicableForTransfer(), charges, product.isAllowOverdraft(), product.overdraftLimit(), - product.isAllowOverdraftMinBalance(), product.minRequiredBalance()); + product.isMinRequiredBalanceEnforced(), product.minRequiredBalance()); account.setHelpers(this.savingsAccountTransactionSummaryWrapper, this.savingsHelper); account.validateNewApplicationState(DateUtils.getLocalDateOfTenant(), SAVINGS_ACCOUNT_RESOURCE_NAME); diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/SavingsProduct.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/SavingsProduct.java index cde4e87ab..a86803b32 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/SavingsProduct.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/SavingsProduct.java @@ -7,12 +7,12 @@ package org.mifosplatform.portfolio.savings.domain; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.SAVINGS_PRODUCT_RESOURCE_NAME; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.accountingRuleParamName; -import static org.mifosplatform.portfolio.savings.SavingsApiConstants.allowOverdraftMinBalanceParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.allowOverdraftParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.chargesParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.currencyCodeParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.descriptionParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.digitsAfterDecimalParamName; +import static org.mifosplatform.portfolio.savings.SavingsApiConstants.enforceMinRequiredBalanceParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.inMultiplesOfParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.interestCalculationDaysInYearTypeParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.interestCalculationTypeParamName; @@ -150,8 +150,8 @@ public class SavingsProduct extends AbstractPersistable { @Column(name = "overdraft_limit", scale = 6, precision = 19, nullable = true) private BigDecimal overdraftLimit; - @Column(name = "allow_overdraft_min_balance") - private boolean allowOverdraftMinBalance; + @Column(name = "enforce_min_required_balance") + private boolean enforceMinRequiredBalance; @Column(name = "min_required_balance", scale = 6, precision = 19, nullable = true) private BigDecimal minRequiredBalance; @@ -166,13 +166,13 @@ public class SavingsProduct extends AbstractPersistable { final SavingsInterestCalculationDaysInYearType interestCalculationDaysInYearType, final BigDecimal minRequiredOpeningBalance, final Integer lockinPeriodFrequency, final SavingsPeriodFrequencyType lockinPeriodFrequencyType, final boolean withdrawalFeeApplicableForTransfer, final AccountingRuleType accountingRuleType, final Set charges, - final boolean allowOverdraft, final BigDecimal overdraftLimit, final boolean allowOverdraftMinBalance, + final boolean allowOverdraft, final BigDecimal overdraftLimit, final boolean enforceMinRequiredBalance, final BigDecimal minRequiredBalance, final BigDecimal minBalanceForInterestCalculation) { return new SavingsProduct(name, shortName, description, currency, interestRate, interestCompoundingPeriodType, interestPostingPeriodType, interestCalculationType, interestCalculationDaysInYearType, minRequiredOpeningBalance, lockinPeriodFrequency, lockinPeriodFrequencyType, withdrawalFeeApplicableForTransfer, accountingRuleType, charges, - allowOverdraft, overdraftLimit, allowOverdraftMinBalance, minRequiredBalance, minBalanceForInterestCalculation); + allowOverdraft, overdraftLimit, enforceMinRequiredBalance, minRequiredBalance, minBalanceForInterestCalculation); } protected SavingsProduct() { @@ -199,7 +199,7 @@ public class SavingsProduct extends AbstractPersistable { final SavingsInterestCalculationDaysInYearType interestCalculationDaysInYearType, final BigDecimal minRequiredOpeningBalance, final Integer lockinPeriodFrequency, final SavingsPeriodFrequencyType lockinPeriodFrequencyType, final boolean withdrawalFeeApplicableForTransfer, final AccountingRuleType accountingRuleType, final Set charges, - final boolean allowOverdraft, final BigDecimal overdraftLimit, final boolean allowOverdraftMinBalance, + final boolean allowOverdraft, final BigDecimal overdraftLimit, final boolean enforceMinRequiredBalance, final BigDecimal minRequiredBalance, BigDecimal minBalanceForInterestCalculation) { this.name = name; @@ -236,7 +236,7 @@ public class SavingsProduct extends AbstractPersistable { this.allowOverdraft = allowOverdraft; this.overdraftLimit = overdraftLimit; - this.allowOverdraftMinBalance = allowOverdraftMinBalance; + this.enforceMinRequiredBalance = enforceMinRequiredBalance; this.minRequiredBalance = minRequiredBalance; this.minBalanceForInterestCalculation = minBalanceForInterestCalculation; } @@ -425,10 +425,10 @@ public class SavingsProduct extends AbstractPersistable { this.overdraftLimit = null; } - if (command.isChangeInBooleanParameterNamed(allowOverdraftMinBalanceParamName, this.allowOverdraftMinBalance)) { - final boolean newValue = command.booleanPrimitiveValueOfParameterNamed(allowOverdraftMinBalanceParamName); - actualChanges.put(allowOverdraftMinBalanceParamName, newValue); - this.allowOverdraftMinBalance = newValue; + if (command.isChangeInBooleanParameterNamed(enforceMinRequiredBalanceParamName, this.enforceMinRequiredBalance)) { + final boolean newValue = command.booleanPrimitiveValueOfParameterNamed(enforceMinRequiredBalanceParamName); + actualChanges.put(enforceMinRequiredBalanceParamName, newValue); + this.enforceMinRequiredBalance = newValue; } if (command.isChangeInBigDecimalParameterNamedDefaultingZeroToNull(minRequiredBalanceParamName, this.minRequiredBalance)) { @@ -447,10 +447,6 @@ public class SavingsProduct extends AbstractPersistable { this.minBalanceForInterestCalculation = newValue; } - if (!this.allowOverdraftMinBalance) { - this.minRequiredBalance = null; - } - validateLockinDetails(); return actualChanges; @@ -537,8 +533,8 @@ public class SavingsProduct extends AbstractPersistable { return this.minRequiredBalance; } - public boolean isAllowOverdraftMinBalance() { - return this.allowOverdraftMinBalance; + public boolean isMinRequiredBalanceEnforced() { + return this.enforceMinRequiredBalance; } public Set charges() { diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/SavingsProductAssembler.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/SavingsProductAssembler.java index 0a27824f5..b7cae8b8f 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/SavingsProductAssembler.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/SavingsProductAssembler.java @@ -5,7 +5,7 @@ */ package org.mifosplatform.portfolio.savings.domain; -import static org.mifosplatform.portfolio.savings.SavingsApiConstants.allowOverdraftMinBalanceParamName; +import static org.mifosplatform.portfolio.savings.SavingsApiConstants.enforceMinRequiredBalanceParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.allowOverdraftParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.chargesParamName; import static org.mifosplatform.portfolio.savings.SavingsApiConstants.currencyCodeParamName; @@ -125,9 +125,9 @@ public class SavingsProductAssembler { final BigDecimal overdraftLimit = command.bigDecimalValueOfParameterNamedDefaultToNullIfZero(overdraftLimitParamName); - boolean allowOverdraftMinBalance = false; - if (command.parameterExists(allowOverdraftMinBalanceParamName)) { - allowOverdraftMinBalance = command.booleanPrimitiveValueOfParameterNamed(allowOverdraftMinBalanceParamName); + boolean enforceMinRequiredBalance = false; + if (command.parameterExists(enforceMinRequiredBalanceParamName)) { + enforceMinRequiredBalance = command.booleanPrimitiveValueOfParameterNamed(enforceMinRequiredBalanceParamName); } final BigDecimal minRequiredBalance = command.bigDecimalValueOfParameterNamedDefaultToNullIfZero(minRequiredBalanceParamName); @@ -137,7 +137,7 @@ public class SavingsProductAssembler { return SavingsProduct.createNew(name, shortName, description, currency, interestRate, interestCompoundingPeriodType, interestPostingPeriodType, interestCalculationType, interestCalculationDaysInYearType, minRequiredOpeningBalance, lockinPeriodFrequency, lockinPeriodFrequencyType, iswithdrawalFeeApplicableForTransfer, accountingRuleType, charges, - allowOverdraft, overdraftLimit, allowOverdraftMinBalance, minRequiredBalance, minBalanceForInterestCalculation); + allowOverdraft, overdraftLimit, enforceMinRequiredBalance, minRequiredBalance, minBalanceForInterestCalculation); } public Set assembleListOfSavingsProductCharges(final JsonCommand command, final String savingsProductCurrencyCode) { 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 df0bc60d6..d118fc565 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 @@ -252,7 +252,7 @@ public class SavingsAccountReadPlatformServiceImpl implements SavingsAccountRead sqlBuilder.append("sa.total_penalty_charge_derived as totalPenaltyCharge, "); sqlBuilder.append("sa.min_balance_for_interest_calculation as minBalanceForInterestCalculation,"); sqlBuilder.append("sa.min_required_balance as minRequiredBalance, "); - sqlBuilder.append("sa.allow_overdraft_min_balance as allowOverdraftMinBalance "); + sqlBuilder.append("sa.enforce_min_required_balance as enforceMinRequiredBalance "); sqlBuilder.append("from m_savings_account sa "); sqlBuilder.append("join m_savings_product sp ON sa.product_id = sp.id "); sqlBuilder.append("join m_currency curr on curr.code = sa.currency_code "); @@ -385,7 +385,7 @@ public class SavingsAccountReadPlatformServiceImpl implements SavingsAccountRead final BigDecimal overdraftLimit = JdbcSupport.getBigDecimalDefaultToNullIfZero(rs, "overdraftLimit"); final BigDecimal minRequiredBalance = JdbcSupport.getBigDecimalDefaultToNullIfZero(rs, "minRequiredBalance"); - final boolean allowOverdraftMinBalance = rs.getBoolean("allowOverdraftMinBalance"); + final boolean enforceMinRequiredBalance = rs.getBoolean("enforceMinRequiredBalance"); /* * final BigDecimal annualFeeAmount = @@ -423,7 +423,7 @@ public class SavingsAccountReadPlatformServiceImpl implements SavingsAccountRead productName, fieldOfficerId, fieldOfficerName, status, timeline, currency, nominalAnnualInterestRate, interestCompoundingPeriodType, interestPostingPeriodType, interestCalculationType, interestCalculationDaysInYearType, minRequiredOpeningBalance, lockinPeriodFrequency, lockinPeriodFrequencyType, withdrawalFeeForTransfers, summary, - allowOverdraft, overdraftLimit, minRequiredBalance, allowOverdraftMinBalance, minBalanceForInterestCalculation); + allowOverdraft, overdraftLimit, minRequiredBalance, enforceMinRequiredBalance, minBalanceForInterestCalculation); } } @@ -821,7 +821,7 @@ public class SavingsAccountReadPlatformServiceImpl implements SavingsAccountRead // sqlBuilder.append("sp.annual_fee_on_month as annualFeeOnMonth, "); // sqlBuilder.append("sp.annual_fee_on_day as annualFeeOnDay "); sqlBuilder.append("sp.min_required_balance as minRequiredBalance, "); - sqlBuilder.append("sp.allow_overdraft_min_balance as allowOverdraftMinBalance "); + sqlBuilder.append("sp.enforce_min_required_balance as enforceMinRequiredBalance "); sqlBuilder.append("from m_savings_product sp "); sqlBuilder.append("join m_currency curr on curr.code = sp.currency_code "); @@ -889,7 +889,7 @@ public class SavingsAccountReadPlatformServiceImpl implements SavingsAccountRead final BigDecimal overdraftLimit = JdbcSupport.getBigDecimalDefaultToNullIfZero(rs, "overdraftLimit"); final BigDecimal minRequiredBalance = JdbcSupport.getBigDecimalDefaultToNullIfZero(rs, "minRequiredBalance"); - final boolean allowOverdraftMinBalance = rs.getBoolean("allowOverdraftMinBalance"); + final boolean enforceMinRequiredBalance = rs.getBoolean("enforceMinRequiredBalance"); final BigDecimal minBalanceForInterestCalculation = JdbcSupport.getBigDecimalDefaultToNullIfZero(rs, "minBalanceForInterestCalculation"); @@ -932,7 +932,7 @@ public class SavingsAccountReadPlatformServiceImpl implements SavingsAccountRead productName, fieldOfficerId, fieldOfficerName, status, timeline, currency, nominalAnnualIterestRate, interestCompoundingPeriodType, interestPostingPeriodType, interestCalculationType, interestCalculationDaysInYearType, minRequiredOpeningBalance, lockinPeriodFrequency, lockinPeriodFrequencyType, withdrawalFeeForTransfers, summary, - allowOverdraft, overdraftLimit, minRequiredBalance, allowOverdraftMinBalance, minBalanceForInterestCalculation); + allowOverdraft, overdraftLimit, minRequiredBalance, enforceMinRequiredBalance, minBalanceForInterestCalculation); } } diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/service/SavingsProductReadPlatformServiceImpl.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/service/SavingsProductReadPlatformServiceImpl.java index 4810749b9..06d7249f5 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/service/SavingsProductReadPlatformServiceImpl.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/service/SavingsProductReadPlatformServiceImpl.java @@ -93,7 +93,7 @@ public class SavingsProductReadPlatformServiceImpl implements SavingsProductRead sqlBuilder.append("sp.allow_overdraft as allowOverdraft, "); sqlBuilder.append("sp.overdraft_limit as overdraftLimit, "); sqlBuilder.append("sp.min_required_balance as minRequiredBalance, "); - sqlBuilder.append("sp.allow_overdraft_min_balance as allowOverdraftMinBalance, "); + sqlBuilder.append("sp.enforce_min_required_balance as enforceMinRequiredBalance, "); sqlBuilder.append("sp.min_balance_for_interest_calculation as minBalanceForInterestCalculation,"); sqlBuilder.append("sp.accounting_type as accountingType "); sqlBuilder.append("from m_savings_product sp "); @@ -158,13 +158,13 @@ public class SavingsProductReadPlatformServiceImpl implements SavingsProductRead final BigDecimal overdraftLimit = rs.getBigDecimal("overdraftLimit"); final BigDecimal minRequiredBalance = rs.getBigDecimal("minRequiredBalance"); - final boolean allowOverdraftMinBalance = rs.getBoolean("allowOverdraftMinBalance"); + final boolean enforceMinRequiredBalance = rs.getBoolean("enforceMinRequiredBalance"); final BigDecimal minBalanceForInterestCalculation = rs.getBigDecimal("minBalanceForInterestCalculation"); return SavingsProductData.instance(id, name, shortName, description, currency, nominalAnnualInterestRate, compoundingInterestPeriodType, interestPostingPeriodType, interestCalculationType, interestCalculationDaysInYearType, minRequiredOpeningBalance, lockinPeriodFrequency, lockinPeriodFrequencyType, withdrawalFeeForTransfers, - accountingRuleType, allowOverdraft, overdraftLimit, minRequiredBalance, allowOverdraftMinBalance, + accountingRuleType, allowOverdraft, overdraftLimit, minRequiredBalance, enforceMinRequiredBalance, minBalanceForInterestCalculation); } }