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());
         }
 
     }

Reply via email to