Merge pull request #337 from goutham-M/MIFOSX-405

differentiate b/w savings a/c activated/pending(fixed)
This commit is contained in:
Vishwas Babu A J
2013-06-05 06:30:18 -07:00
4 changed files with 61 additions and 5 deletions
@@ -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;
}
@@ -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<ClientAccountSummaryData> 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);
}
}
@@ -32,4 +32,8 @@ public class SavingsAccountStatusEnumData {
this.active = active;
this.closed = closed;
}
public Long id() {
return this.id;
}
}
@@ -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);
}
}