@@ -61,28 +61,46 @@ public function report($user, $from, $to, $filterProjectId, $filterClientId, $fi
6161
6262 }
6363 if (($ groupOn1 != 'name ' ) && ($ groupOn2 != 'name ' )){
64- $ selectFields [] = 'MIN(wi.name) as name ' ;
64+ if ($ this ->dbengine != 'MYSQL ' ) {
65+ $ selectFields [] = '\'* \' as name ' ;
66+ } else {
67+ $ selectFields [] = 'CASE WHEN CHAR_LENGTH(group_concat(distinct wi.name)) > 40 THEN CONCAT(SUBSTRING(group_concat(distinct wi.name), 1, 40), "...") ELSE group_concat(distinct wi.name) END as name ' ;
68+ }
69+ //$selectFields[] = 'group_concat(distinct wi.name) as name';
6570 } else {
6671 $ selectFields [] = 'wi.name as name ' ;
6772 }
6873 if (($ groupOn1 != 'project ' ) && ($ groupOn2 != 'project ' )){
69- $ selectFields [] = 'MIN(wi.project_id) as "projectId" ' ;
70- $ selectFields [] = 'MIN(p.name) as project ' ;
74+ $ selectFields [] = '\'* \' as "projectId" ' ;
75+ if ($ this ->dbengine != 'MYSQL ' ) {
76+ $ selectFields [] = 'string_agg(distinct p.name, \', \') as project ' ;
77+ } else {
78+ $ selectFields [] = 'group_concat(distinct p.name) as project ' ;
79+ }
7180 } else {
72- $ selectFields [] = 'MIN(wi.project_id) as "projectId" ' ;
81+ $ selectFields [] = '\' * \' as "projectId" ' ;
7382 $ selectFields [] = 'p.name as project ' ;
7483 }
7584
7685 if (($ groupOn1 != 'client ' ) && ($ groupOn2 != 'client ' )){
77- $ selectFields [] = 'MIN(c.id) as "clientId" ' ;
78- $ selectFields [] = 'MIN(c.name) as client ' ;
86+ $ selectFields [] = '\'* \' as "clientId" ' ;
87+ if ($ this ->dbengine != 'MYSQL ' ) {
88+ $ selectFields [] = 'string_agg(distinct c.name, \', \') as client ' ;
89+ } else {
90+ $ selectFields [] = 'group_concat(distinct c.name) as client ' ;
91+ }
92+
7993 } else {
80- $ selectFields [] = 'MIN(c.id) as "clientId" ' ;
94+ $ selectFields [] = '\' * \' as "clientId" ' ;
8195 $ selectFields [] = 'c.name as client ' ;
8296 }
8397
8498 if (($ groupOn1 != 'userUid ' ) && ($ groupOn2 != 'userUid ' )){
85- $ selectFields [] = 'MIN(user_uid) as "userUid" ' ;
99+ if ($ this ->dbengine != 'MYSQL ' ) {
100+ $ selectFields [] = 'string_agg(distinct user_uid, \', \') as "userUid" ' ;
101+ } else {
102+ $ selectFields [] = 'group_concat(distinct user_uid) as "userUid" ' ;
103+ }
86104
87105 } else {
88106 $ selectFields [] = 'user_uid as "userUid" ' ;
@@ -124,10 +142,10 @@ public function report($user, $from, $to, $filterProjectId, $filterClientId, $fi
124142 $ qm [] = '? ' ;
125143 $ params [] = $ f ;
126144 if ($ f == null ) {
127- $ append = ' or p.client_id is null ' ;
145+ $ append = ' or c.id is null ' ;
128146 }
129147 }
130- $ filters [] = '(p.client_id in ( ' .implode (", " ,$ qm ).') ' .$ append .') ' ;
148+ $ filters [] = '(c.id in ( ' .implode (", " ,$ qm ).') ' .$ append .') ' ;
131149 }
132150 if ( (!empty ($ user )) && (!$ admin ) ){
133151 $ filters [] = "(user_uid = ?) " ;
@@ -177,6 +195,8 @@ public function report($user, $from, $to, $filterProjectId, $filterClientId, $fi
177195 $ limit = 10000 ;
178196 }
179197 $ sql = 'SELECT ' .$ selectItems .' where ' .implode (" and " ,$ filters ).' ' .$ group . ' order by time desc ' ;
198+ //var_dump($sql);
199+ //var_dump($params);
180200 return $ this ->findEntities ($ sql , $ params , $ limit , $ start );
181201 }
182202
0 commit comments