This is an automated email from the ASF dual-hosted git repository.
ptuomola pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git
The following commit(s) were added to refs/heads/develop by this push:
new 38c2cfe FINERACT-1414 :Added subEntityType in global search result
38c2cfe is described below
commit 38c2cfe7a04b8447cbc3f737a6f48e7816f8f559
Author: sheminanto <[email protected]>
AuthorDate: Fri Oct 22 00:33:26 2021 +0530
FINERACT-1414 :Added subEntityType in global search result
---
.../fineract/portfolio/search/data/SearchData.java | 8 +++++++-
.../search/service/SearchReadPlatformServiceImpl.java | 17 ++++++++++-------
2 files changed, 17 insertions(+), 8 deletions(-)
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/SearchData.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/SearchData.java
index 9fb1f10..426a8b4 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/SearchData.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/SearchData.java
@@ -32,10 +32,11 @@ public class SearchData {
private final String entityMobileNo;
private final EnumOptionData entityStatus;
private final String parentType;
+ private final String subEntityType;
public SearchData(final Long entityId, final String entityAccountNo, final
String entityExternalId, final String entityName,
final String entityType, final Long parentId, final String
parentName, final String parentType, final String entityMobileNo,
- final EnumOptionData entityStatus) {
+ final EnumOptionData entityStatus, final String subEntityType) {
this.entityId = entityId;
this.entityAccountNo = entityAccountNo;
@@ -47,6 +48,7 @@ public class SearchData {
this.parentType = parentType;
this.entityMobileNo = entityMobileNo;
this.entityStatus = entityStatus;
+ this.subEntityType = subEntityType;
}
public Long getEntityId() {
@@ -89,4 +91,8 @@ public class SearchData {
return this.entityStatus;
}
+ public String getSubEntityType() {
+ return this.subEntityType;
+ }
+
}
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 f70e7f1..a298dde 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
@@ -38,6 +38,7 @@ import
org.apache.fineract.portfolio.loanaccount.data.LoanStatusEnumData;
import org.apache.fineract.portfolio.loanproduct.data.LoanProductData;
import org.apache.fineract.portfolio.loanproduct.service.LoanEnumerations;
import
org.apache.fineract.portfolio.loanproduct.service.LoanProductReadPlatformService;
+import org.apache.fineract.portfolio.savings.service.SavingsEnumerations;
import org.apache.fineract.portfolio.search.SearchConstants;
import org.apache.fineract.portfolio.search.data.AdHocQuerySearchConditions;
import org.apache.fineract.portfolio.search.data.AdHocSearchQueryData;
@@ -91,29 +92,29 @@ public class SearchReadPlatformServiceImpl implements
SearchReadPlatformService
final String union = " union ";
final String clientMatchSql = " (select 'CLIENT' as entityType,
c.id as entityId, c.display_name as entityName, c.external_id as
entityExternalId, c.account_no as entityAccountNo "
- + " , c.office_id as parentId, o.name as parentName,
c.mobile_no as entityMobileNo,c.status_enum as entityStatusEnum, null as
parentType "
+ + " , c.office_id as parentId, o.name as parentName,
c.mobile_no as entityMobileNo,c.status_enum as entityStatusEnum, null as
subEntityType, null as parentType "
+ " from m_client c join m_office o on o.id = c.office_id
where o.hierarchy like :hierarchy and (c.account_no like :search or
c.display_name like :search or c.external_id like :search or c.mobile_no like
:search)) ";
final String loanMatchSql = " (select 'LOAN' as entityType, l.id
as entityId, pl.name as entityName, l.external_id as entityExternalId,
l.account_no as entityAccountNo "
- + " , IFNULL(c.id,g.id) as parentId,
IFNULL(c.display_name,g.display_name) as parentName, null as entityMobileNo,
l.loan_status_id as entityStatusEnum, IF(g.id is null, 'client', 'group') as
parentType "
+ + " , IFNULL(c.id,g.id) as parentId,
IFNULL(c.display_name,g.display_name) as parentName, null as entityMobileNo,
l.loan_status_id as entityStatusEnum, null as subEntityType, IF(g.id is null,
'client', 'group') as parentType "
+ " from m_loan l left join m_client c on l.client_id =
c.id left join m_group g ON l.group_id = g.id left join m_office o on o.id =
c.office_id left join m_product_loan pl on pl.id=l.product_id where
(o.hierarchy IS NULL OR o.hierarchy like :hierarchy) and (l.account_no like
:search or l.external_id like :search)) ";
final String savingMatchSql = " (select 'SAVING' as entityType,
s.id as entityId, sp.name as entityName, s.external_id as entityExternalId,
s.account_no as entityAccountNo "
- + " , 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 "
+ + " , IFNULL(c.id,g.id) as parentId,
IFNULL(c.display_name,g.display_name) as parentName, null as entityMobileNo,
s.status_enum as entityStatusEnum, s.deposit_type_enum as subEntityType,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 "
+ + " , c.id as parentId, c.display_name as parentName, null
as entityMobileNo, s.status_enum as entityStatusEnum, null as subEntityType,
'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 "
+ + " 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 subEntityType, null as parentType "
+ " from m_client_identifier ci join m_client c on
ci.client_id=c.id join m_office o on o.id = c.office_id "
+ " where o.hierarchy like :hierarchy and ci.document_key
like :search ) ";
final String groupMatchSql = " (select
IF(g.level_id=1,'CENTER','GROUP') as entityType, g.id as entityId,
g.display_name as entityName, g.external_id as entityExternalId, g.account_no
as entityAccountNo "
- + " , g.office_id as parentId, o.name as parentName, null
as entityMobileNo, g.status_enum as entityStatusEnum, null as parentType "
+ + " , g.office_id as parentId, o.name as parentName, null
as entityMobileNo, g.status_enum as entityStatusEnum, null as subEntityType,
null as parentType "
+ " from m_group g join m_office o on o.id = g.office_id
where o.hierarchy like :hierarchy and (g.account_no like :search or
g.display_name like :search or g.external_id like :search or g.id like :search
)) ";
final StringBuilder sql = new StringBuilder();
@@ -159,6 +160,8 @@ public class SearchReadPlatformServiceImpl implements
SearchReadPlatformService
final String entityMobileNo = rs.getString("entityMobileNo");
final Integer entityStatusEnum = JdbcSupport.getInteger(rs,
"entityStatusEnum");
final String parentType = rs.getString("parentType");
+ final Integer subEntityTypeValue = JdbcSupport.getInteger(rs,
"subEntityType");
+ final EnumOptionData subEntityTypeCode =
SavingsEnumerations.depositType(subEntityTypeValue);
EnumOptionData entityStatus = new EnumOptionData(0L, "", "");
@@ -177,7 +180,7 @@ public class SearchReadPlatformServiceImpl implements
SearchReadPlatformService
}
return new SearchData(entityId, entityAccountNo, entityExternalId,
entityName, entityType, parentId, parentName, parentType,
- entityMobileNo, entityStatus);
+ entityMobileNo, entityStatus, subEntityTypeCode.getCode());
}
}