MIFOSX-1161 clean ups

This commit is contained in:
Vishwas Babu A J
2014-07-01 19:06:30 -07:00
parent 342a0edc24
commit b0df80e2a2
10 changed files with 85 additions and 85 deletions
@@ -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`;
@@ -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
@@ -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<SavingsProductData> productOptions = null;
final Collection<StaffData> 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<EnumOptionData> interestCalculationDaysInYearTypeOptions,
final Collection<EnumOptionData> lockinPeriodFrequencyTypeOptions, final Collection<EnumOptionData> withdrawalFeeTypeOptions,
final Collection<SavingsAccountChargeData> charges, final Collection<ChargeData> 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;
}
@@ -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<String, Object> accountingMappings = null;
final Collection<PaymentTypeToGLAccountMapper> 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<CurrencyData> 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<ChargeData> chargeOptions, final Collection<ChargeData> penaltyOptions,
final Collection<ChargeToGLAccountMapper> feeToIncomeAccountMappings,
final Collection<ChargeToGLAccountMapper> 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;
}
@@ -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<Long> {
@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<Long> {
final SavingsInterestCalculationDaysInYearType interestCalculationDaysInYearType, final BigDecimal minRequiredOpeningBalance,
final Integer lockinPeriodFrequency, final SavingsPeriodFrequencyType lockinPeriodFrequencyType,
final boolean withdrawalFeeApplicableForTransfer, final Set<SavingsAccountCharge> 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<Long> {
final SavingsInterestCalculationDaysInYearType interestCalculationDaysInYearType, final BigDecimal minRequiredOpeningBalance,
final Integer lockinPeriodFrequency, final SavingsPeriodFrequencyType lockinPeriodFrequencyType,
final boolean withdrawalFeeApplicableForTransfer, final Set<SavingsAccountCharge> 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<Long> {
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<Long> {
final BigDecimal interestRateAsFraction = getEffectiveInterestRateAsFraction(mc, upToInterestCalculationDate);
final Collection<Long> 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<Long> {
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<Long> {
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<Long> {
this.minRequiredBalance = newValue;
}
if (!this.allowOverdraftMinBalance) {
this.minRequiredBalance = null;
}
validateLockinDetails(baseDataValidator);
}
@@ -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);
@@ -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<Long> {
@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<Long> {
final SavingsInterestCalculationDaysInYearType interestCalculationDaysInYearType, final BigDecimal minRequiredOpeningBalance,
final Integer lockinPeriodFrequency, final SavingsPeriodFrequencyType lockinPeriodFrequencyType,
final boolean withdrawalFeeApplicableForTransfer, final AccountingRuleType accountingRuleType, final Set<Charge> 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<Long> {
final SavingsInterestCalculationDaysInYearType interestCalculationDaysInYearType, final BigDecimal minRequiredOpeningBalance,
final Integer lockinPeriodFrequency, final SavingsPeriodFrequencyType lockinPeriodFrequencyType,
final boolean withdrawalFeeApplicableForTransfer, final AccountingRuleType accountingRuleType, final Set<Charge> 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<Long> {
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<Long> {
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<Long> {
this.minBalanceForInterestCalculation = newValue;
}
if (!this.allowOverdraftMinBalance) {
this.minRequiredBalance = null;
}
validateLockinDetails();
return actualChanges;
@@ -537,8 +533,8 @@ public class SavingsProduct extends AbstractPersistable<Long> {
return this.minRequiredBalance;
}
public boolean isAllowOverdraftMinBalance() {
return this.allowOverdraftMinBalance;
public boolean isMinRequiredBalanceEnforced() {
return this.enforceMinRequiredBalance;
}
public Set<Charge> charges() {
@@ -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<Charge> assembleListOfSavingsProductCharges(final JsonCommand command, final String savingsProductCurrencyCode) {
@@ -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);
}
}
@@ -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);
}
}