Example #1
0
 private static function GetFieldGrouppedByFilter($column, $arFilter, $loggedInUserId)
 {
     CTaskAssert::assert($loggedInUserId && is_array($arFilter));
     $arSqlSearch = CTasks::GetFilter($arFilter, '', array('USER_ID' => $loggedInUserId));
     $arSqlSearch[] = " T.ZOMBIE = 'N' ";
     $keysFiltered = CTasks::GetFilteredKeys($arFilter);
     $bNeedJoinFavoritesTable = in_array('FAVORITE', $keysFiltered, true);
     $sql = "SELECT T." . $column . " AS USER_ID, COUNT(T.ID) AS TASKS_CNT \n\t\t\tFROM b_tasks T \n\t\t\tLEFT JOIN b_tasks_viewed TV ON TV.TASK_ID = T.ID AND TV.USER_ID = " . $loggedInUserId . "\n\n\t\t\t" . ($bNeedJoinFavoritesTable ? "\n\t\t\t\tLEFT JOIN " . FavoriteTable::getTableName() . " FVT ON FVT.TASK_ID = T.ID and FVT.USER_ID = '" . $loggedInUserId . "'\n\t\t\t\t" : "") . "\n\n\t\t\tWHERE " . implode('AND', $arSqlSearch) . " GROUP BY T." . $column;
     return $GLOBALS['DB']->query($sql);
 }