use of org.mifos.customers.business.CustomerSearchDto in project head by mifos.
the class TableTagIntegrationTest method testGetImage.
@Test
public void testGetImage() throws Exception {
Locale locale = Locale.ENGLISH;
CustomerSearchDto customerSearchDto = new CustomerSearchDto();
Assert.assertEquals("<span class=\"fontnormal\"> <img src=pages/framework/images/status_yellow.gif width=\"8\" height=\"9\"></span><span class=\"fontnormal\"> PartialApplication</span>", Text.getImage(customerSearchDto, "1", locale));
customerSearchDto.setCustomerType(Short.valueOf("4"));
Assert.assertEquals("<span class=\"fontnormal\"> <img src=pages/framework/images/status_yellow.gif width=\"8\" height=\"9\"></span><span class=\"fontnormal\"> Pending Approval</span>", Text.getImage(customerSearchDto, "2", locale));
customerSearchDto.setCustomerType(Short.valueOf("6"));
Assert.assertEquals("<span class=\"fontnormal\"> <img src=pages/framework/images/status_yellow.gif width=\"8\" height=\"9\"></span><span class=\"fontnormal\"> Partial Application</span>", Text.getImage(customerSearchDto, "13", locale));
}
use of org.mifos.customers.business.CustomerSearchDto in project head by mifos.
the class CustomerSearchServiceFacadeWebTier method search.
@Override
public CustomerHierarchyDto search(String searchString, Short officeId, int pageNumber, int pageSize, SearchFiltersDto filters) {
MifosUser user = (MifosUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
UserContext userContext = new UserContextFactory().create(user);
if (searchString == null) {
throw new MifosRuntimeException(CenterConstants.NO_SEARCH_STRING);
}
String normalisedSearchString = org.mifos.framework.util.helpers.SearchUtils.normalizeSearchString(searchString);
if (normalisedSearchString.equals("")) {
throw new MifosRuntimeException(CenterConstants.NO_SEARCH_STRING);
}
CustomerHierarchyDto customerHierarchyDto = new CustomerHierarchyDto();
QueryResult searchResult = null;
List<CustomerSearchDto> resultList = null;
try {
searchResult = new CustomerPersistence().search(normalisedSearchString, officeId, userContext.getId(), userContext.getBranchId(), filters);
} catch (PersistenceException e) {
throw new MifosRuntimeException(e);
}
try {
resultList = searchResult.get(pageNumber, pageSize);
customerHierarchyDto.setSize(searchResult.getSize());
customerHierarchyDto.setSearchResultSize(resultList.size());
} catch (HibernateSearchException e) {
throw new MifosRuntimeException(e);
}
/* FIXME: QueryResult.get returns CustomerSearchDto with messed up customers and accounts data.
*/
for (CustomerSearchDto customerSearchDto : resultList) {
if (customerSearchDto.getCustomerType() == 1) {
ClientSearchResultDto clientSearchResultDto = new ClientSearchResultDto();
clientSearchResultDto.setOfficeId(customerSearchDto.getOfficeId());
clientSearchResultDto.setOfficeName(customerSearchDto.getOfficeName());
/* QueryResult.get returns CustomerSearchDto (as Client) with clientName as centerName,
* clientGobalCustNum as centerGobalCustNum and vice versa
*/
clientSearchResultDto.setClientName(customerSearchDto.getCenterName());
clientSearchResultDto.setClientGlobalCustNum(customerSearchDto.getCenterGlobalCustNum());
clientSearchResultDto.setGroupName(customerSearchDto.getGroupName());
clientSearchResultDto.setGroupGlobalCustNum(customerSearchDto.getGroupGlobalCustNum());
clientSearchResultDto.setCenterName(customerSearchDto.getClientName());
clientSearchResultDto.setCenterGlobalCustNum(customerSearchDto.getClientGlobalCustNum());
clientSearchResultDto.setBranchName(customerSearchDto.getBranchName());
clientSearchResultDto.setBranchId(customerSearchDto.getBranchGlobalNum());
clientSearchResultDto.setCustomerStatusId(customerSearchDto.getCustomerStatus());
clientSearchResultDto.setLoanOfficerName(customerSearchDto.getLoanOfficerName());
clientSearchResultDto.setLoanOfficerId(customerSearchDto.getLoanOffcerGlobalNum());
for (Object loanGlobalAccount : customerSearchDto.getLoanGlobalAccountNum()) {
String accountStr = (String) loanGlobalAccount;
clientSearchResultDto.getLoanGlobalAccountNum().add(accountStr);
clientSearchResultDto.getLoanGlobalAccountStateIds().put(accountStr, loanDao.findByGlobalAccountNum(accountStr).getAccountState().getId());
}
for (Object savingGlobalAccount : customerSearchDto.getSavingsGlobalAccountNum()) {
String accountStr = (String) savingGlobalAccount;
clientSearchResultDto.getSavingsGlobalAccountNum().add(accountStr);
clientSearchResultDto.getSavingsGlobalAccountStateIds().put(accountStr, savingsDao.findBySystemId(accountStr).getState().getValue());
}
for (Object groupLoanAccount : customerSearchDto.getGroupLoanGlobalAccountNum()) {
String accountStr = (String) groupLoanAccount;
clientSearchResultDto.getGroupLoanGlobalAccountNum().add(accountStr);
clientSearchResultDto.getGroupLoanGlobalAccountStateIds().put(accountStr, loanDao.findByGlobalAccountNum(accountStr).getAccountState().getId());
}
clientSearchResultDto.setStatus(customerSearchDto.getStatus());
customerHierarchyDto.getClients().add(clientSearchResultDto);
} else if (customerSearchDto.getCustomerType() == 2) {
GroupSearchResultDto groupSearchResultDto = new GroupSearchResultDto();
groupSearchResultDto.setOfficeId(customerSearchDto.getOfficeId());
groupSearchResultDto.setOfficeName(customerSearchDto.getOfficeName());
/* QueryResult.get returns CustomerSearchDto (as Group) with groupName as centerName,
* groupGobalCustNum as centerGobalCustNum and vice versa
*/
groupSearchResultDto.setGroupName(customerSearchDto.getCenterName());
groupSearchResultDto.setGroupGlobalCustNum(customerSearchDto.getCenterGlobalCustNum());
groupSearchResultDto.setCenterName(customerSearchDto.getGroupName());
groupSearchResultDto.setCenterGlobalCustNum(customerSearchDto.getGroupGlobalCustNum());
groupSearchResultDto.setBranchName(customerSearchDto.getBranchName());
groupSearchResultDto.setBranchId(customerSearchDto.getBranchGlobalNum());
groupSearchResultDto.setCustomerStatusId(customerSearchDto.getCustomerStatus());
groupSearchResultDto.setLoanOfficerName(customerSearchDto.getLoanOfficerName());
groupSearchResultDto.setLoanOfficerId(customerSearchDto.getLoanOffcerGlobalNum());
for (Object loanGlobalAccount : customerSearchDto.getLoanGlobalAccountNum()) {
String accountStr = (String) loanGlobalAccount;
groupSearchResultDto.getLoanGlobalAccountNum().add(accountStr);
groupSearchResultDto.getLoanGlobalAccountStateIds().put(accountStr, loanDao.findByGlobalAccountNum(accountStr).getAccountState().getId());
}
for (Object savingGlobalAccount : customerSearchDto.getSavingsGlobalAccountNum()) {
String accountStr = (String) savingGlobalAccount;
groupSearchResultDto.getSavingsGlobalAccountNum().add(accountStr);
groupSearchResultDto.getSavingsGlobalAccountStateIds().put(accountStr, savingsDao.findBySystemId(accountStr).getState().getValue());
}
for (Object groupLoanAccount : customerSearchDto.getGroupLoanGlobalAccountNum()) {
String accountStr = (String) groupLoanAccount;
groupSearchResultDto.getGroupLoanGlobalAccountNum().add(accountStr);
groupSearchResultDto.getGroupLoanGlobalAccountStateIds().put(accountStr, loanDao.findByGlobalAccountNum(accountStr).getAccountState().getId());
}
groupSearchResultDto.setStatus(customerSearchDto.getStatus());
customerHierarchyDto.getGroups().add(groupSearchResultDto);
} else if (customerSearchDto.getCustomerType() == 3) {
CenterSearchResultDto centerSearchResultDto = new CenterSearchResultDto();
centerSearchResultDto.setOfficeId(customerSearchDto.getOfficeId());
centerSearchResultDto.setOfficeName(customerSearchDto.getOfficeName());
centerSearchResultDto.setCenterName(customerSearchDto.getCenterName());
centerSearchResultDto.setCenterGlobalCustNum(customerSearchDto.getCenterGlobalCustNum());
centerSearchResultDto.setBranchName(customerSearchDto.getBranchName());
centerSearchResultDto.setBranchId(customerSearchDto.getBranchGlobalNum());
centerSearchResultDto.setCustomerStatusId(customerSearchDto.getCustomerStatus());
centerSearchResultDto.setLoanOfficerName(customerSearchDto.getLoanOfficerName());
centerSearchResultDto.setLoanOfficerId(customerSearchDto.getLoanOffcerGlobalNum());
for (Object savingGlobalAccount : customerSearchDto.getSavingsGlobalAccountNum()) {
String accountStr = (String) savingGlobalAccount;
centerSearchResultDto.getSavingsGlobalAccountNum().add(accountStr);
centerSearchResultDto.getSavingsGlobalAccountStateIds().put(accountStr, savingsDao.findBySystemId(accountStr).getState().getValue());
}
centerSearchResultDto.setStatus(customerSearchDto.getStatus());
customerHierarchyDto.getCenters().add(centerSearchResultDto);
} else if (customerSearchDto.getLoanGlobalAccountNumber() != null && (customerSearchDto.getCustomerType() == 5 || customerSearchDto.getCustomerType() == 4 || customerSearchDto.getCustomerType() == 9) || customerSearchDto.getCustomerType() == 10) {
LoanAccountSearchResultDto loanAccountSearchResultDto = new LoanAccountSearchResultDto();
loanAccountSearchResultDto.setLoanGlobalAccountNum(customerSearchDto.getLoanGlobalAccountNumber());
loanAccountSearchResultDto.setOfficeId(customerSearchDto.getOfficeId());
loanAccountSearchResultDto.setOfficeName(customerSearchDto.getOfficeName());
loanAccountSearchResultDto.setBranchName(customerSearchDto.getBranchName());
loanAccountSearchResultDto.setBranchId(customerSearchDto.getBranchGlobalNum());
loanAccountSearchResultDto.setAccountStatusId(customerSearchDto.getCustomerStatus());
loanAccountSearchResultDto.setLoanOfficerName(customerSearchDto.getLoanOfficerName());
loanAccountSearchResultDto.setLoanOfficerId(customerSearchDto.getLoanOffcerGlobalNum());
//new group loan group or client account
if (customerSearchDto.getCustomerType() == 9 || customerSearchDto.getCustomerType() == 10) {
loanAccountSearchResultDto.setGroupLoan(Boolean.TRUE);
loanAccountSearchResultDto.setAccountStatusId(AccountTypes.GROUP_LOAN_ACCOUNT.getValue());
}
if (customerSearchDto.getClientGlobalCustNum() != null) {
loanAccountSearchResultDto.setCenterName(customerSearchDto.getClientName());
loanAccountSearchResultDto.setCenterGlobalCustNum(customerSearchDto.getClientGlobalCustNum());
loanAccountSearchResultDto.setClientName(customerSearchDto.getCenterName());
loanAccountSearchResultDto.setClientGlobalCustNum(customerSearchDto.getCenterGlobalCustNum());
loanAccountSearchResultDto.setGroupName(customerSearchDto.getGroupName());
loanAccountSearchResultDto.setGroupGlobalCustNum(customerSearchDto.getGroupGlobalCustNum());
} else if (customerSearchDto.getCustomerType() == 5 || customerSearchDto.getCustomerType() == 9) {
loanAccountSearchResultDto.setGroupName(customerSearchDto.getCenterName());
loanAccountSearchResultDto.setGroupGlobalCustNum(customerSearchDto.getCenterGlobalCustNum());
loanAccountSearchResultDto.setCenterName(customerSearchDto.getGroupName());
loanAccountSearchResultDto.setCenterGlobalCustNum(customerSearchDto.getGroupGlobalCustNum());
} else {
loanAccountSearchResultDto.setClientName(customerSearchDto.getCenterName());
loanAccountSearchResultDto.setClientGlobalCustNum(customerSearchDto.getCenterGlobalCustNum());
loanAccountSearchResultDto.setGroupName(customerSearchDto.getClientName());
loanAccountSearchResultDto.setGroupGlobalCustNum(customerSearchDto.getClientGlobalCustNum());
loanAccountSearchResultDto.setCenterName(customerSearchDto.getGroupName());
loanAccountSearchResultDto.setCenterGlobalCustNum(customerSearchDto.getGroupGlobalCustNum());
}
loanAccountSearchResultDto.setStatus(customerSearchDto.getStatus());
customerHierarchyDto.setLoan(loanAccountSearchResultDto);
} else if (customerSearchDto.getLoanGlobalAccountNumber() != null || customerSearchDto.getCustomerType() == 6) {
SavingsAccountSearchResultDto savingsAccountSearchResultDto = new SavingsAccountSearchResultDto();
savingsAccountSearchResultDto.setSavingsGlobalAccountNum(customerSearchDto.getLoanGlobalAccountNumber());
savingsAccountSearchResultDto.setOfficeId(customerSearchDto.getOfficeId());
savingsAccountSearchResultDto.setOfficeName(customerSearchDto.getOfficeName());
savingsAccountSearchResultDto.setBranchName(customerSearchDto.getBranchName());
savingsAccountSearchResultDto.setBranchId(customerSearchDto.getBranchGlobalNum());
savingsAccountSearchResultDto.setAccountStatusId(customerSearchDto.getCustomerStatus());
savingsAccountSearchResultDto.setLoanOfficerName(customerSearchDto.getLoanOfficerName());
savingsAccountSearchResultDto.setLoanOfficerId(customerSearchDto.getLoanOffcerGlobalNum());
if (customerSearchDto.getClientGlobalCustNum() != null) {
savingsAccountSearchResultDto.setCenterName(customerSearchDto.getClientName());
savingsAccountSearchResultDto.setCenterGlobalCustNum(customerSearchDto.getClientGlobalCustNum());
savingsAccountSearchResultDto.setClientName(customerSearchDto.getCenterName());
savingsAccountSearchResultDto.setClientGlobalCustNum(customerSearchDto.getCenterGlobalCustNum());
savingsAccountSearchResultDto.setGroupName(customerSearchDto.getGroupName());
savingsAccountSearchResultDto.setGroupGlobalCustNum(customerSearchDto.getGroupGlobalCustNum());
} else if (customerSearchDto.getGroupGlobalCustNum() != null) {
savingsAccountSearchResultDto.setClientName(customerSearchDto.getClientName());
savingsAccountSearchResultDto.setClientGlobalCustNum(customerSearchDto.getClientGlobalCustNum());
savingsAccountSearchResultDto.setGroupName(customerSearchDto.getCenterName());
savingsAccountSearchResultDto.setGroupGlobalCustNum(customerSearchDto.getCenterGlobalCustNum());
savingsAccountSearchResultDto.setCenterName(customerSearchDto.getGroupName());
savingsAccountSearchResultDto.setCenterGlobalCustNum(customerSearchDto.getGroupGlobalCustNum());
} else {
savingsAccountSearchResultDto.setCenterName(customerSearchDto.getCenterName());
savingsAccountSearchResultDto.setCenterGlobalCustNum(customerSearchDto.getCenterGlobalCustNum());
}
savingsAccountSearchResultDto.setStatus(customerSearchDto.getStatus());
customerHierarchyDto.setSavings(savingsAccountSearchResultDto);
}
}
return customerHierarchyDto;
}
use of org.mifos.customers.business.CustomerSearchDto in project head by mifos.
the class QueryResultAccountIdSearch method get.
@Override
public List<Object> get(int position, int noOfObjects) throws HibernateSearchException {
List<Object> returnList = new ArrayList<Object>();
try {
Session session = StaticHibernateUtil.getSessionTL();
Query query = prepareQuery(session, queryInputs.getQueryStrings()[1]);
list = query.list();
this.queryInputs.setTypes(query.getReturnTypes());
dtoBuilder.setInputs(queryInputs);
if (list != null) {
for (int i = 0; i < list.size(); i++) {
if (buildDTO) {
Object record = buildDTO((Object[]) list.get(i));
CustomerSearchDto search = (CustomerSearchDto) record;
Integer customerId = search.getCustomerId();
short customerLevel = search.getCustomerType();
query = session.getNamedQuery(NamedQueryConstants.ACCOUNT_LIST_ID_SEARCH);
query.setInteger("customerId", customerId).setShort("loanAccountTypeId", CustomerSearchConstants.LOAN_TYPE);
query.setShort("groupLoanAccountTypeId", CustomerSearchConstants.GROUP_LOAN_TYPE);
query.setShort("savingsAccountTypeId", CustomerSearchConstants.SAVINGS_TYPE);
query.setString("searchString", searchString);
List<?> accountNumAndTypeId = query.list();
Object[] obj2 = (Object[]) accountNumAndTypeId.get(0);
search.setLoanGlobalAccountNumber(obj2[0].toString());
Short accountTypeId = (Short) obj2[1];
search.setCustomerType(deduceCustomerType(customerLevel, accountTypeId));
returnList.add(search);
} else {
if (i < noOfObjects) {
returnList.add(list.get(i));
}
}
}
}
StaticHibernateUtil.closeSession();
} catch (Exception e) {
throw new HibernateSearchException(HibernateConstants.SEARCH_FAILED, e);
}
return returnList;
}
use of org.mifos.customers.business.CustomerSearchDto in project head by mifos.
the class QueryResultsMainSearchImpl method get.
@Override
public java.util.List get(int position, int noOfObjects) throws HibernateSearchException {
java.util.List returnList = new java.util.ArrayList();
java.util.List list = new java.util.ArrayList();
Session session = null;
try {
session = StaticHibernateUtil.getSessionTL();
Query query = prepareQuery(session, queryInputs.getQueryStrings()[1]);
query.setFirstResult(position);
query.setMaxResults(noOfObjects);
list = query.list();
this.queryInputs.setTypes(query.getReturnTypes());
dtoBuilder.setInputs(queryInputs);
Query query1 = session.createQuery("select account.globalAccountNum " + "from org.mifos.accounts.business.AccountBO account " + "where account.customer.customerId=:customerId" + " and account.accountType.accountTypeId=:accountTypeId" + " and account.accountState.id not in (6,7,10,15,17,18) ");
if (list != null) {
for (int i = 0; i < list.size(); i++) {
if (buildDTO) {
Object record = buildDTO((Object[]) list.get(i));
CustomerSearchDto cs = ((CustomerSearchDto) record);
query1.setInteger("customerId", cs.getCustomerId()).setShort("accountTypeId", (short) 1);
cs.setLoanGlobalAccountNum(query1.list());
query1.setShort("accountTypeId", (short) 5);
cs.setGroupLoanGlobalAccountNum(query1.list());
query1.setShort("accountTypeId", (short) 2);
cs.setSavingsGlobalAccountNum(query1.list());
returnList.add(cs);
} else {
if (i < noOfObjects) {
returnList.add(list.get(i));
}
}
}
}
StaticHibernateUtil.closeSession();
} catch (Exception e) {
throw new HibernateSearchException(HibernateConstants.SEARCH_FAILED, e);
}
return returnList;
}
use of org.mifos.customers.business.CustomerSearchDto in project head by mifos.
the class CustomerPersistenceIntegrationTest method testSearchWithCancelLoanAccounts.
@SuppressWarnings("unchecked")
@Test
public void testSearchWithCancelLoanAccounts() throws Exception {
groupAccount = getLoanAccount();
PersonnelBO loggedInUser = IntegrationTestObjectMother.testUser();
groupAccount.changeStatus(AccountState.LOAN_CANCELLED, AccountStateFlag.LOAN_WITHDRAW.getValue(), "WITHDRAW LOAN ACCOUNT", loggedInUser);
TestObjectFactory.updateObject(groupAccount);
StaticHibernateUtil.flushSession();
groupAccount = TestObjectFactory.getObject(LoanBO.class, groupAccount.getAccountId());
center = TestObjectFactory.getCustomer(center.getCustomerId());
group = TestObjectFactory.getCustomer(group.getCustomerId());
QueryResult queryResult = new CustomerPersistence().search(group.getGlobalCustNum(), Short.valueOf("3"), Short.valueOf("1"), Short.valueOf("1"), filters);
Assert.assertNotNull(queryResult);
Assert.assertEquals(1, queryResult.getSize());
List results = queryResult.get(0, 10);
Assert.assertEquals(1, results.size());
CustomerSearchDto customerSearchDto = (CustomerSearchDto) results.get(0);
Assert.assertEquals(0, customerSearchDto.getLoanGlobalAccountNum().size());
}
Aggregations