Repository: incubator-fineract Updated Branches: refs/heads/develop 8c080fc75 -> 34b988195
FINERACT-412 - Add Share account in Global Search Project: http://git-wip-us.apache.org/repos/asf/incubator-fineract/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-fineract/commit/9b8d2532 Tree: http://git-wip-us.apache.org/repos/asf/incubator-fineract/tree/9b8d2532 Diff: http://git-wip-us.apache.org/repos/asf/incubator-fineract/diff/9b8d2532 Branch: refs/heads/develop Commit: 9b8d25321763ebebc2f38de27467c6b12724c514 Parents: c1af6d6 Author: Ippez Robert <ippezrob...@gmail.com> Authored: Fri Mar 3 13:13:31 2017 +0300 Committer: Ippez Robert <ippezrob...@gmail.com> Committed: Fri Mar 3 13:13:31 2017 +0300 ---------------------------------------------------------------------- .../apache/fineract/portfolio/search/SearchConstants.java | 2 +- .../fineract/portfolio/search/data/SearchConditions.java | 10 +++++++++- .../search/service/SearchReadPlatformServiceImpl.java | 9 +++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/9b8d2532/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/SearchConstants.java ---------------------------------------------------------------------- diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/SearchConstants.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/SearchConstants.java index ed47f32..ec607b3 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/SearchConstants.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/SearchConstants.java @@ -85,7 +85,7 @@ public class SearchConstants { } public static enum SEARCH_SUPPORTED_RESOURCES { - CLIENTS("clients"), GROUPS("groups"), LOANS("loans"), SAVINGS("savings"), CLIENTIDENTIFIERS("clientIdentifiers"); + CLIENTS("clients"), GROUPS("groups"), LOANS("loans"), SAVINGS("savings"), SHARES("shares"), CLIENTIDENTIFIERS("clientIdentifiers"); private final String value; http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/9b8d2532/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/SearchConditions.java ---------------------------------------------------------------------- diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/SearchConditions.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/SearchConditions.java index 52558e0..a0be777 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/SearchConditions.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/SearchConditions.java @@ -28,6 +28,7 @@ public class SearchConditions { private final Boolean groupSearch; private final Boolean loanSeach; private final Boolean savingSeach; + private final Boolean shareSeach; private final Boolean clientIdentifierSearch; private Boolean exactMatch; @@ -43,18 +44,21 @@ public class SearchConditions { SEARCH_SUPPORTED_RESOURCES.LOANS.name().toLowerCase())) ? true : false; this.savingSeach = (null == searchResource || searchResource.toLowerCase().contains( SEARCH_SUPPORTED_RESOURCES.SAVINGS.name().toLowerCase())) ? true : false; + this.shareSeach = (null == searchResource || searchResource.toLowerCase().contains( + SEARCH_SUPPORTED_RESOURCES.SHARES.name().toLowerCase())) ? true : false; this.clientIdentifierSearch = (null == searchResource || searchResource.toLowerCase().contains( SEARCH_SUPPORTED_RESOURCES.CLIENTIDENTIFIERS.name().toLowerCase())) ? true : false; } public SearchConditions(final String searchQueryParam, final String searchResource, final Boolean clientSearch, - final Boolean groupSearch, final Boolean loanSeach, final Boolean savingSeach, final Boolean clientIdentifierSearch, Boolean exactMatch) { + final Boolean groupSearch, final Boolean loanSeach, final Boolean savingSeach, final Boolean shareSeach, final Boolean clientIdentifierSearch, Boolean exactMatch) { this.searchQuery = searchQueryParam; this.searchResource = searchResource; this.clientSearch = clientSearch; this.groupSearch = groupSearch; this.loanSeach = loanSeach; this.savingSeach = savingSeach; + this.shareSeach = shareSeach; this.clientIdentifierSearch = clientIdentifierSearch; this.exactMatch=exactMatch; } @@ -84,6 +88,10 @@ public class SearchConditions { public Boolean isSavingSeach() { return this.savingSeach; } + + public Boolean isShareSeach() { + return this.shareSeach; + } public Boolean isClientIdentifierSearch() { return this.clientIdentifierSearch; http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/9b8d2532/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/service/SearchReadPlatformServiceImpl.java ---------------------------------------------------------------------- diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/service/SearchReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/service/SearchReadPlatformServiceImpl.java index f51dada..649fd3b 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/service/SearchReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/service/SearchReadPlatformServiceImpl.java @@ -101,6 +101,11 @@ public class SearchReadPlatformServiceImpl implements SearchReadPlatformService + " , IFNULL(c.id,g.id) as parentId, IFNULL(c.display_name,g.display_name) as parentName, null as entityMobileNo, s.status_enum as entityStatusEnum, IF(g.id is null, 'client', 'group') as parentType " + " from m_savings_account s left join m_client c on s.client_id = c.id left join m_group g ON s.group_id = g.id left join m_office o on o.id = c.office_id left join m_savings_product sp on sp.id=s.product_id " + " where (o.hierarchy IS NULL OR o.hierarchy like :hierarchy) and (s.account_no like :search or s.external_id like :search)) "; + + final String shareMatchSql = " (select 'SHARE' as entityType, s.id as entityId, sp.name as entityName, s.external_id as entityExternalId, s.account_no as entityAccountNo " + + " , c.id as parentId, c.display_name as parentName, null as entityMobileNo, s.status_enum as entityStatusEnum, 'client' as parentType " + + " from m_share_account s left join m_client c on s.client_id = c.id left join m_office o on o.id = c.office_id left join m_share_product sp on sp.id=s.product_id " + + " where (o.hierarchy IS NULL OR o.hierarchy like :hierarchy) and (s.account_no like :search or s.external_id like :search)) "; final String clientIdentifierMatchSql = " (select 'CLIENTIDENTIFIER' as entityType, ci.id as entityId, ci.document_key as entityName, " + " null as entityExternalId, null as entityAccountNo, c.id as parentId, c.display_name as parentName,null as entityMobileNo, c.status_enum as entityStatusEnum, null as parentType " @@ -122,6 +127,10 @@ public class SearchReadPlatformServiceImpl implements SearchReadPlatformService if (searchConditions.isSavingSeach()) { sql.append(savingMatchSql).append(union); } + + if (searchConditions.isShareSeach()) { + sql.append(shareMatchSql).append(union); + } if (searchConditions.isClientIdentifierSearch()) { sql.append(clientIdentifierMatchSql).append(union);