From 8ef012826c1d69de0f0446694b805878e120e13c Mon Sep 17 00:00:00 2001 From: goutham-M Date: Thu, 30 May 2013 18:39:45 +0530 Subject: [PATCH 1/8] days period frequency for locking savings product fixed --- .../portfolio/savings/data/SavingsProductDataValidator.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/data/SavingsProductDataValidator.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/data/SavingsProductDataValidator.java index ca7bbee5b..168b61cbe 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/data/SavingsProductDataValidator.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/data/SavingsProductDataValidator.java @@ -122,14 +122,14 @@ public class SavingsProductDataValidator { final Integer lockinPeriodFrequencyType = fromApiJsonHelper.extractIntegerSansLocaleNamed( lockinPeriodFrequencyTypeParamName, element); baseDataValidator.reset().parameter(lockinPeriodFrequencyTypeParamName).value(lockinPeriodFrequencyType).notNull() - .inMinMaxRange(1, 3); + .inMinMaxRange(0, 3); } } if (this.fromApiJsonHelper.parameterExists(lockinPeriodFrequencyTypeParamName, element)) { final Integer lockinPeriodFrequencyType = fromApiJsonHelper.extractIntegerSansLocaleNamed(lockinPeriodFrequencyTypeParamName, element); - baseDataValidator.reset().parameter(lockinPeriodFrequencyTypeParamName).value(lockinPeriodFrequencyType).inMinMaxRange(1, 3); + baseDataValidator.reset().parameter(lockinPeriodFrequencyTypeParamName).value(lockinPeriodFrequencyType).inMinMaxRange(0, 3); if (lockinPeriodFrequencyType != null) { final Integer lockinPeriodFrequency = fromApiJsonHelper.extractIntegerWithLocaleNamed(lockinPeriodFrequencyParamName, @@ -259,7 +259,7 @@ public class SavingsProductDataValidator { if (this.fromApiJsonHelper.parameterExists(lockinPeriodFrequencyTypeParamName, element)) { final Integer lockinPeriodFrequencyType = fromApiJsonHelper.extractIntegerSansLocaleNamed(lockinPeriodFrequencyTypeParamName, element); - baseDataValidator.reset().parameter(lockinPeriodFrequencyTypeParamName).value(lockinPeriodFrequencyType).inMinMaxRange(1, 3); + baseDataValidator.reset().parameter(lockinPeriodFrequencyTypeParamName).value(lockinPeriodFrequencyType).inMinMaxRange(0, 3); } if (this.fromApiJsonHelper.parameterExists(withdrawalFeeAmountParamName, element)) { From 6683e0e9ca74795ff9ee6139faa27e1cf0df9b16 Mon Sep 17 00:00:00 2001 From: goutham-M Date: Fri, 31 May 2013 17:22:58 +0530 Subject: [PATCH 2/8] updating annual fee amount in savings product(exception) fixed --- .../mifosplatform/infrastructure/core/api/JsonCommand.java | 6 +++++- .../portfolio/savings/domain/SavingsProduct.java | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/core/api/JsonCommand.java b/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/core/api/JsonCommand.java index b174ced3e..42062031c 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/core/api/JsonCommand.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/core/api/JsonCommand.java @@ -191,7 +191,11 @@ public final class JsonCommand { boolean differenceExists = false; if (baseValue != null) { - differenceExists = baseValue.compareTo(workingCopyValue) != 0; + if(workingCopyValue != null) { + differenceExists = baseValue.compareTo(workingCopyValue) != 0; + }else { + differenceExists = true; + } } else { differenceExists = workingCopyValue != null; } 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 a6e8297fd..115e11f5b 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 @@ -353,7 +353,7 @@ public class SavingsProduct extends AbstractPersistable { if (command.isChangeInIntegerParameterNamed(annualFeeOnMonthDayParamName, this.annualFeeOnDay)) { final MonthDay monthDay = command.extractMonthDayNamed(annualFeeOnMonthDayParamName); final String actualValueEntered = command.stringValueOfParameterNamed(annualFeeOnMonthDayParamName); - final Integer newValue = monthDay.getDayOfMonth(); + final Integer newValue = monthDay != null? monthDay.getDayOfMonth(): null; actualChanges.put(annualFeeOnMonthDayParamName, actualValueEntered); actualChanges.put(localeParamName, localeAsInput); this.annualFeeOnDay = newValue; @@ -362,7 +362,7 @@ public class SavingsProduct extends AbstractPersistable { if (command.isChangeInIntegerParameterNamed(annualFeeOnMonthDayParamName, this.annualFeeOnMonth)) { final MonthDay monthDay = command.extractMonthDayNamed(annualFeeOnMonthDayParamName); final String actualValueEntered = command.stringValueOfParameterNamed(annualFeeOnMonthDayParamName); - final Integer newValue = monthDay.getMonthOfYear(); + final Integer newValue = monthDay != null? monthDay.getMonthOfYear(): null; actualChanges.put(annualFeeOnMonthDayParamName, actualValueEntered); actualChanges.put(localeParamName, localeAsInput); this.annualFeeOnMonth = newValue; From bc41c5894746e1dd6782609394eb6dec8bd85aa0 Mon Sep 17 00:00:00 2001 From: goutham-M Date: Fri, 31 May 2013 19:32:30 +0530 Subject: [PATCH 3/8] updating withdraw fee in saving product(exception) fixed --- .../infrastructure/core/api/JsonCommand.java | 12 ++++++++++-- .../portfolio/savings/domain/SavingsProduct.java | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/core/api/JsonCommand.java b/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/core/api/JsonCommand.java index b174ced3e..ee1248975 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/core/api/JsonCommand.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/core/api/JsonCommand.java @@ -179,7 +179,11 @@ public final class JsonCommand { boolean differenceExists = false; if (baseValue != null) { - differenceExists = !baseValue.equals(workingCopyValue); + if(workingCopyValue != null) { + differenceExists = !baseValue.equals(workingCopyValue); + } else { + differenceExists = true; + } } else { differenceExists = workingCopyValue != null; } @@ -191,7 +195,11 @@ public final class JsonCommand { boolean differenceExists = false; if (baseValue != null) { - differenceExists = baseValue.compareTo(workingCopyValue) != 0; + if(workingCopyValue != null) { + differenceExists = baseValue.compareTo(workingCopyValue) != 0; + }else { + differenceExists = true; + } } else { differenceExists = workingCopyValue != null; } 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 a6e8297fd..352c2c462 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 @@ -340,7 +340,7 @@ public class SavingsProduct extends AbstractPersistable { if (command.isChangeInIntegerParameterNamed(withdrawalFeeTypeParamName, this.withdrawalFeeType)) { final Integer newValue = command.integerValueOfParameterNamed(withdrawalFeeTypeParamName); actualChanges.put(withdrawalFeeTypeParamName, newValue); - this.withdrawalFeeType = SavingsWithdrawalFeesType.fromInt(newValue).getValue(); + this.withdrawalFeeType = newValue != null? SavingsWithdrawalFeesType.fromInt(newValue).getValue(): newValue; } if (command.isChangeInBigDecimalParameterNamed(annualFeeAmountParamName, this.annualFeeAmount)) { From 90169da8e44eb79bae0e95e4fe39baadeded6e48 Mon Sep 17 00:00:00 2001 From: goutham-M Date: Sat, 1 Jun 2013 15:34:23 +0530 Subject: [PATCH 4/8] savings ac getting activated before client activation date fixed --- .../portfolio/savings/domain/SavingsAccount.java | 9 +++++++++ ...InvalidSavingsAccountStateTransitionException.java | 11 +++++++++++ 2 files changed, 20 insertions(+) create mode 100644 mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/exception/InvalidSavingsAccountStateTransitionException.java 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 37ea0963a..82b6da017 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 @@ -58,6 +58,7 @@ import org.mifosplatform.portfolio.loanproduct.domain.PeriodFrequencyType; import org.mifosplatform.portfolio.paymentdetail.domain.PaymentDetail; import org.mifosplatform.portfolio.savings.api.SavingsApiConstants; import org.mifosplatform.portfolio.savings.exception.InsufficientAccountBalanceException; +import org.mifosplatform.portfolio.savings.exception.InvalidSavingsAccountStateTransitionException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.jpa.domain.AbstractPersistable; @@ -300,6 +301,14 @@ public class SavingsAccount extends AbstractPersistable { throw new PlatformApiDataValidationException(dataValidationErrors); } + + if(this.client.getActivationLocalDate().isAfter(activationDate)) + { + final String errorMessage = "The date on which a savings account is activate cannot be before its client activated date: " + + this.client.getActivationLocalDate().toString(); + throw new InvalidSavingsAccountStateTransitionException("activate", "cannot.be.before.client.activation.date", errorMessage, activationDate, + this.client.getActivationLocalDate()); + } this.activationDate = activationDate.toDate(); this.status = SavingsAccountStatusType.ACTIVE.getValue(); diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/exception/InvalidSavingsAccountStateTransitionException.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/exception/InvalidSavingsAccountStateTransitionException.java new file mode 100644 index 000000000..e6071f8f2 --- /dev/null +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/exception/InvalidSavingsAccountStateTransitionException.java @@ -0,0 +1,11 @@ +package org.mifosplatform.portfolio.savings.exception; + +import org.mifosplatform.infrastructure.core.exception.AbstractPlatformDomainRuleException; + +public class InvalidSavingsAccountStateTransitionException extends AbstractPlatformDomainRuleException { + + public InvalidSavingsAccountStateTransitionException(final String action, String postFix, String defaultUserMessage, Object... defaultUserMessageArgs) { + super("error.msg.saving." + action + "." + postFix, defaultUserMessage, defaultUserMessageArgs); + } + +} From d2036447b1bf12810328bf791c0415d5cb53a28e Mon Sep 17 00:00:00 2001 From: goutham-M Date: Mon, 3 Jun 2013 21:22:11 +0530 Subject: [PATCH 5/8] balance amount in savings account showing negative balance(fixed) withdrawl amount from savings account, showing negative balance(fixed) --- .../portfolio/savings/domain/SavingsAccount.java | 12 ++++-------- .../InsufficientAccountBalanceException.java | 6 +++--- 2 files changed, 7 insertions(+), 11 deletions(-) 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 82b6da017..6db422eb3 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 @@ -798,9 +798,10 @@ public class SavingsAccount extends AbstractPersistable { existingReversedTransactionIds.addAll(findExistingReversedTransactionIds()); final Money amount = Money.of(this.currency, transactionAmount); + final SavingsAccountTransaction transaction = SavingsAccountTransaction.deposit(this, paymentDetail, transactionDate, amount); this.transactions.add(transaction); - + this.summary.updateSummary(this.currency, this.savingsAccountTransactionSummaryWrapper, this.transactions); final LocalDate today = DateUtils.getLocalDateOfTenant(); @@ -875,9 +876,9 @@ public class SavingsAccount extends AbstractPersistable { final Money transactionAmountMoney = Money.of(this.currency, transactionAmount); - if (isNotEnoughFundsToWithdraw(transactionAmountMoney)) { + if (this.summary.getAccountBalance(this.currency).isLessThan(transactionAmountMoney.plus(this.withdrawalFeeAmount))) { // - throw new InsufficientAccountBalanceException("transactionAmount", getAccountBalance(), transactionAmount); + throw new InsufficientAccountBalanceException("transactionAmount", getAccountBalance(), this.withdrawalFeeAmount, transactionAmount); } final SavingsAccountTransaction transaction = SavingsAccountTransaction.withdrawal(this, paymentDetail, transactionDate, @@ -906,11 +907,6 @@ public class SavingsAccount extends AbstractPersistable { } } - /***TODO Fixme: Annual fee seems to be added for all withdrawals?**/ - final Money annualFee = Money.of(this.currency, this.annualFeeAmount); - SavingsAccountTransaction annualFeeTransaction = SavingsAccountTransaction.annualFee(this, transactionDate, annualFee); - this.transactions.add(annualFeeTransaction); - this.summary.updateSummary(this.currency, this.savingsAccountTransactionSummaryWrapper, this.transactions); final LocalDate today = DateUtils.getLocalDateOfTenant(); diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/exception/InsufficientAccountBalanceException.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/exception/InsufficientAccountBalanceException.java index 8a69c663f..321be2827 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/exception/InsufficientAccountBalanceException.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/exception/InsufficientAccountBalanceException.java @@ -15,8 +15,8 @@ import org.mifosplatform.infrastructure.core.exception.AbstractPlatformDomainRul */ public class InsufficientAccountBalanceException extends AbstractPlatformDomainRuleException { - public InsufficientAccountBalanceException(final String paramName, final BigDecimal accountBalance, final BigDecimal withdrawalRequested) { - super("error.msg.savingsaccount.transaction.insufficient.account.balance", "Insufficient account balance.", paramName, - accountBalance, withdrawalRequested); + public InsufficientAccountBalanceException(final String paramName, final BigDecimal accountBalance, final BigDecimal withdrawalFee, final BigDecimal transactionAmount) { + super(withdrawalFee != null? "error.msg.savingsaccount.transaction.insufficient.account.balance.withdraw" : "error.msg.savingsaccount.transaction.insufficient.account.balance", + "Insufficient account balance.", paramName, accountBalance, withdrawalFee, transactionAmount); } } \ No newline at end of file From 47feb800abf5e416a345d798cd96abf5c45ba9c6 Mon Sep 17 00:00:00 2001 From: goutham-M Date: Wed, 5 Jun 2013 18:50:54 +0530 Subject: [PATCH 6/8] differentiate b/w savings a/c activated/pending(fixed) --- .../client/data/ClientAccountSummaryData.java | 18 +++++++++++++ .../ClientReadPlatformServiceImpl.java | 25 +++++++++++++++---- .../data/SavingsAccountStatusEnumData.java | 4 +++ .../savings/service/SavingStatusMapper.java | 19 ++++++++++++++ 4 files changed, 61 insertions(+), 5 deletions(-) create mode 100644 mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/service/SavingStatusMapper.java diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/data/ClientAccountSummaryData.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/data/ClientAccountSummaryData.java index 6bf022033..d3efb9eca 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/data/ClientAccountSummaryData.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/data/ClientAccountSummaryData.java @@ -6,6 +6,7 @@ package org.mifosplatform.portfolio.client.data; import org.mifosplatform.portfolio.loanaccount.data.LoanStatusEnumData; +import org.mifosplatform.portfolio.savings.data.SavingsAccountStatusEnumData; /** * Immutable data object for client loan accounts. @@ -25,6 +26,7 @@ public class ClientAccountSummaryData { private final Integer accountStatusId; private final LoanStatusEnumData status; + private final SavingsAccountStatusEnumData savingAccountStatus; public ClientAccountSummaryData(final Long id, final String externalId, final Long productId, final String loanProductName, final Integer loanStatusId) { @@ -35,6 +37,7 @@ public class ClientAccountSummaryData { this.productName = loanProductName; this.accountStatusId = loanStatusId; this.status = null; + this.savingAccountStatus = null; } public ClientAccountSummaryData(final Long id, final String accountNo, final String externalId, final Long productId, @@ -46,12 +49,27 @@ public class ClientAccountSummaryData { this.productName = loanProductName; this.accountStatusId = null; this.status = loanStatus; + this.savingAccountStatus = null; + } + + public ClientAccountSummaryData(final Long id, final String accountNo, final String externalId, final Long productId, + final String loanProductName, final SavingsAccountStatusEnumData savingAccountStatus) { + this.id = id; + this.accountNo = accountNo; + this.externalId = externalId; + this.productId = productId; + this.productName = loanProductName; + this.accountStatusId = null; + this.status = null; + this.savingAccountStatus = savingAccountStatus; } public Integer accountStatusId() { Integer accountStatus = this.accountStatusId; if (accountStatus == null && this.status != null) { accountStatus = this.status.id().intValue(); + }else if (accountStatus == null && this.savingAccountStatus != null) { + accountStatus = this.savingAccountStatus.id().intValue(); } return accountStatus; } diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/service/ClientReadPlatformServiceImpl.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/service/ClientReadPlatformServiceImpl.java index 714f29a36..729e4a995 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/service/ClientReadPlatformServiceImpl.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/service/ClientReadPlatformServiceImpl.java @@ -31,6 +31,10 @@ import org.mifosplatform.portfolio.group.data.GroupGeneralData; import org.mifosplatform.portfolio.group.service.SearchParameters; import org.mifosplatform.portfolio.loanaccount.data.LoanStatusEnumData; import org.mifosplatform.portfolio.loanproduct.service.LoanEnumerations; +import org.mifosplatform.portfolio.savings.data.SavingsAccountStatusEnumData; +import org.mifosplatform.portfolio.savings.domain.SavingsAccountStatusType; +import org.mifosplatform.portfolio.savings.service.SavingStatusMapper; +import org.mifosplatform.portfolio.savings.service.SavingsEnumerations; import org.mifosplatform.useradministration.domain.AppUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.EmptyResultDataAccessException; @@ -411,8 +415,18 @@ public class ClientReadPlatformServiceImpl implements ClientReadPlatformService final List savingsAccounts = this.jdbcTemplate.query(savingsSql, savingsAccountSummaryDataMapper, new Object[] { clientId }); - approvedSavingAccounts.addAll(savingsAccounts); + if (results != null) { + for (ClientAccountSummaryData row : savingsAccounts) { + SavingStatusMapper statusMapper = new SavingStatusMapper(row.accountStatusId()); + + if (statusMapper.isOpen()) { + approvedSavingAccounts.add(row); + } else { + pendingApprovalSavingAccounts.add(row); + } + } + } return new ClientAccountSummaryCollectionData(pendingApprovalLoans, awaitingDisbursalLoans, openLoans, closedLoans, pendingApprovalDepositAccounts, approvedDepositAccounts, withdrawnByClientDespositAccounts, rejectedDepositAccounts, closedDepositAccounts, preclosedDepositAccounts, maturedDepositAccounts, pendingApprovalSavingAccounts, @@ -446,7 +460,7 @@ public class ClientReadPlatformServiceImpl implements ClientReadPlatformService public ClientSavingsAccountSummaryDataMapper() { StringBuilder accountsSummary = new StringBuilder(); - accountsSummary.append("sa.id as id, sa.account_no as accountNo, sa.external_id as externalId,"); + accountsSummary.append("sa.id as id, sa.account_no as accountNo, sa.external_id as externalId, sa.status_enum as statusEnum, "); accountsSummary.append("sa.product_id as productId, p.name as productName "); accountsSummary.append("from m_savings_account sa "); accountsSummary.append("join m_savings_product as p on p.id = sa.product_id "); @@ -465,10 +479,11 @@ public class ClientReadPlatformServiceImpl implements ClientReadPlatformService final String accountNo = rs.getString("accountNo"); final String externalId = rs.getString("externalId"); final Long productId = JdbcSupport.getLong(rs, "productId"); - final String loanProductName = rs.getString("productName"); - final LoanStatusEnumData loanStatus = null; + final String savingsProductName = rs.getString("productName"); + final Integer statusId = JdbcSupport.getInteger(rs, "statusEnum"); + final SavingsAccountStatusEnumData savingAccountStatus = SavingsEnumerations.status(statusId); - return new ClientAccountSummaryData(id, accountNo, externalId, productId, loanProductName, loanStatus); + return new ClientAccountSummaryData(id, accountNo, externalId, productId, savingsProductName, savingAccountStatus); } } diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/data/SavingsAccountStatusEnumData.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/data/SavingsAccountStatusEnumData.java index 3a3479079..444bc5a05 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/data/SavingsAccountStatusEnumData.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/data/SavingsAccountStatusEnumData.java @@ -32,4 +32,8 @@ public class SavingsAccountStatusEnumData { this.active = active; this.closed = closed; } + + public Long id() { + return this.id; + } } \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/service/SavingStatusMapper.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/service/SavingStatusMapper.java new file mode 100644 index 000000000..507f48357 --- /dev/null +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/service/SavingStatusMapper.java @@ -0,0 +1,19 @@ +package org.mifosplatform.portfolio.savings.service; + +public class SavingStatusMapper { + + private final Integer statusId; + + public SavingStatusMapper(Integer statusId) { + this.statusId = statusId; + } + + public boolean isPendingApproval() { + return Integer.valueOf(100).equals(statusId); + } + + public boolean isOpen() { + return Integer.valueOf(300).equals(statusId); + } + +} From 740906300b902d47227b599cf6e176ef68005c55 Mon Sep 17 00:00:00 2001 From: goutham-M Date: Wed, 5 Jun 2013 20:16:26 +0530 Subject: [PATCH 7/8] annual fee amount in new savings a/c not accepting empty value fixed --- .../portfolio/savings/data/SavingsProductDataValidator.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/data/SavingsProductDataValidator.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/data/SavingsProductDataValidator.java index 168b61cbe..a11ab282f 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/data/SavingsProductDataValidator.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/data/SavingsProductDataValidator.java @@ -151,7 +151,7 @@ public class SavingsProductDataValidator { if (this.fromApiJsonHelper.parameterExists(annualFeeAmountParamName, element)) { final BigDecimal annualFeeAmount = fromApiJsonHelper.extractBigDecimalWithLocaleNamed(annualFeeAmountParamName, element); - baseDataValidator.reset().parameter(annualFeeAmountParamName).value(annualFeeAmount).notNull().positiveAmount(); + baseDataValidator.reset().parameter(annualFeeAmountParamName).value(annualFeeAmount).ignoreIfNull().positiveAmount(); if (annualFeeAmount != null) { MonthDay monthDayOfAnnualFee = fromApiJsonHelper.extractMonthDayNamed(annualFeeOnMonthDayParamName, element); From 18ee622a0347928c4dbba9d676dd25c29ca94dba Mon Sep 17 00:00:00 2001 From: Keith Woodlock Date: Thu, 6 Jun 2013 15:59:01 +0100 Subject: [PATCH 8/8] bump up release version --- api-docs/apiLive.htm | 2 +- mifosng-provider/gradle.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/api-docs/apiLive.htm b/api-docs/apiLive.htm index d53245bc0..f100886dd 100644 --- a/api-docs/apiLive.htm +++ b/api-docs/apiLive.htm @@ -90,7 +90,7 @@
- +

Overview

diff --git a/mifosng-provider/gradle.properties b/mifosng-provider/gradle.properties index b7f5d2259..c7fb5c508 100644 --- a/mifosng-provider/gradle.properties +++ b/mifosng-provider/gradle.properties @@ -1 +1 @@ -releaseVersion=1.2.0.RELEASE \ No newline at end of file +releaseVersion=1.2.1.RELEASE \ No newline at end of file