private function getCounts($arGroupsIds) { $arCounters = array(); if (empty($arGroupsIds)) { return; } foreach ($arGroupsIds as $groupId) { $arCounters[$groupId] = array('ALL' => 0, 'IN_WORK' => 0, 'COMPLETE' => 0); } $oFilter = CTaskFilterCtrl::getInstance($this->arParams['USER_ID'], true); $arFilterAll = $oFilter->getFilterPresetConditionById(CTaskFilterCtrl::STD_PRESET_ALL_MY_TASKS); $arFilterInWork = $oFilter->getFilterPresetConditionById(CTaskFilterCtrl::STD_PRESET_ACTIVE_MY_TASKS); $arFilterComplete = $oFilter->getFilterPresetConditionById(CTaskFilterCtrl::STD_PRESET_COMPLETED_MY_TASKS); $arFilterInWorkExpired = $arFilterInWork; $arFilterInWorkExpired['<DEADLINE'] = ConvertTimeStamp(time() + CTasksTools::getTimeZoneOffset(), 'FULL'); $arFilterAll['GROUP_ID'] = $arGroupsIds; $arFilterInWork['GROUP_ID'] = $arGroupsIds; $arFilterComplete['GROUP_ID'] = $arGroupsIds; $arFilterInWorkExpired['GROUP_ID'] = $arGroupsIds; $arMap = array('ALL' => &$arFilterAll, 'IN_WORK' => &$arFilterInWork, 'COMPLETE' => &$arFilterComplete, 'EXPIRED' => &$arFilterInWorkExpired); foreach ($arMap as $key => &$arFilter) { $rs = CTasks::GetCount($arFilter, array('bSkipUserFields' => true, 'bSkipExtraTables' => true, 'bSkipJoinTblViewed' => false), array('GROUP_ID')); while ($ar = $rs->fetch()) { $groupId = (int) $ar['GROUP_ID']; if ($groupId) { $arCounters[$groupId][$key] = (int) $ar['CNT']; } } } unset($arFilter); return $arCounters; }
private static function getTasksCount($arTasks) { $cnt = 0; if (is_array($arTasks) && count($arTasks) > 0) { $dbRes = CTasks::GetCount(array('ID' => $arTasks, 'RESPONSIBLE_ID' => self::$USER_ID, '!STATUS' => self::$arTaskStatusOpened)); if ($arRes = $dbRes->Fetch()) { $cnt = $arRes['CNT']; } } return $cnt; }
$bDataNotCached = false; } else { foreach ($arResult['PRESETS_LIST'] as $presetId => $presetData) { // We can't cache counters for user-defined filters if ($presetId > 0) { continue; } $arFilter = $oFilter->GetFilterPresetConditionById($presetId); if ($taskType === 'group' && $presetId <= 0) { $arFilter['GROUP_ID'] = (int) $arParams['GROUP_ID']; } if ($arFilter === false) { $arFiltersCount[$presetId] = 0; } else { $count = 0; $rsCount = CTasks::GetCount($arFilter, array('bIgnoreDbErrors' => true, 'bSkipExtraTables' => true, 'bSkipUserFields' => true)); if ($rsCount !== false) { if ($arCount = $rsCount->fetch()) { $count = (int) $arCount['CNT']; } } $arFiltersCount[$presetId] = $count; } } } $arResult['COUNTS'] = $arFiltersCount; if ($bDataNotCached) { if (defined('BX_COMP_MANAGED_CACHE') && $obCache->StartDataCache()) { global $CACHE_MANAGER; $CACHE_MANAGER->StartTagCache($cacheDir); foreach ($arCacheTags as $cacheTag) {
public static function GetCountInt($arFilter = array(), $arParams = array()) { $count = 0; $rsCount = CTasks::GetCount($arFilter, $arParams); if ($arCount = $rsCount->Fetch()) { $count = intval($arCount["CNT"]); } return $count; }
private static function getCounts($arUsersIds) { $arUsersIds = array_unique(array_filter($arUsersIds)); $arCounters = array(); foreach ($arUsersIds as $userId) { $arCounters[$userId] = array(); $responsiblesNoticedTasks = CTaskListCtrl::getUserRoleCounterForUser($userId, CTaskListState::VIEW_ROLE_RESPONSIBLE); $accomplicesNoticedTasks = CTaskListCtrl::getUserRoleCounterForUser($userId, CTaskListState::VIEW_ROLE_ACCOMPLICE); $originatorsNoticedTasks = CTaskListCtrl::getUserRoleCounterForUser($userId, CTaskListState::VIEW_ROLE_ORIGINATOR); $auditorsNoticedTasks = CTaskListCtrl::getUserRoleCounterForUser($userId, CTaskListState::VIEW_ROLE_AUDITOR); if ($responsiblesNoticedTasks < 0) { $responsiblesNoticedTasks = 0; } if ($accomplicesNoticedTasks < 0) { $accomplicesNoticedTasks = 0; } if ($originatorsNoticedTasks < 0) { $originatorsNoticedTasks = 0; } if ($auditorsNoticedTasks < 0) { $auditorsNoticedTasks = 0; } $arCounters[$userId]['RESPONSIBLES_TOTAL_TASKS'] = 0; $arCounters[$userId]['RESPONSIBLES_NOTICED_TASKS'] = $responsiblesNoticedTasks; $arCounters[$userId]['ACCOMPLICES_TOTAL_TASKS'] = 0; $arCounters[$userId]['ACCOMPLICES_NOTICED_TASKS'] = $accomplicesNoticedTasks; $arCounters[$userId]['ORIGINATORS_TOTAL_TASKS'] = 0; $arCounters[$userId]['ORIGINATORS_NOTICED_TASKS'] = $originatorsNoticedTasks; $arCounters[$userId]['AUDITORS_TOTAL_TASKS'] = 0; $arCounters[$userId]['AUDITORS_NOTICED_TASKS'] = $auditorsNoticedTasks; } // Get RESPONSIBLES_TOTAL_TASKS counters $arFilterMy = CTaskListCtrl::getFilterFor($arUsersIds, CTaskListState::VIEW_ROLE_RESPONSIBLE, CTaskListState::VIEW_TASK_CATEGORY_IN_PROGRESS); $rs = CTasks::GetCount($arFilterMy, array('bSkipUserFields' => true, 'bSkipExtraTables' => true, 'bSkipJoinTblViewed' => true), array('RESPONSIBLE_ID')); while ($ar = $rs->fetch()) { $userId = (int) $ar['RESPONSIBLE_ID']; if ($userId) { $arCounters[$userId]['RESPONSIBLES_TOTAL_TASKS'] = (int) $ar['CNT']; } } // Get ORIGINATORS_TOTAL_TASKS counters $arFilterOriginator = CTaskListCtrl::getFilterFor($arUsersIds, CTaskListState::VIEW_ROLE_ORIGINATOR, CTaskListState::VIEW_TASK_CATEGORY_IN_PROGRESS); $rs = CTasks::GetCount($arFilterOriginator, array('bSkipUserFields' => true, 'bSkipExtraTables' => true, 'bSkipJoinTblViewed' => true), array('CREATED_BY')); while ($ar = $rs->fetch()) { $userId = (int) $ar['CREATED_BY']; if ($userId) { $arCounters[$userId]['ORIGINATORS_TOTAL_TASKS'] = (int) $ar['CNT']; } } // Get ACCOMPLICES_TOTAL_TASKS counters $arFilterAccomplice = CTaskListCtrl::getFilterFor($arUsersIds, CTaskListState::VIEW_ROLE_ACCOMPLICE, CTaskListState::VIEW_TASK_CATEGORY_IN_PROGRESS); $rs = CTasks::GetCount($arFilterAccomplice, array('bSkipUserFields' => true, 'bSkipExtraTables' => true, 'bSkipJoinTblViewed' => true), array('ACCOMPLICE')); while ($ar = $rs->fetch()) { $userId = (int) $ar['ACCOMPLICE']; if ($userId) { $arCounters[$userId]['ACCOMPLICES_TOTAL_TASKS'] = (int) $ar['CNT']; } } // Get AUDITORS_TOTAL_TASKS counters $arFilterAuditor = CTaskListCtrl::getFilterFor($arUsersIds, CTaskListState::VIEW_ROLE_AUDITOR, CTaskListState::VIEW_TASK_CATEGORY_IN_PROGRESS); $rs = CTasks::GetCount($arFilterAuditor, array('bSkipUserFields' => true, 'bSkipExtraTables' => true, 'bSkipJoinTblViewed' => true), array('AUDITOR')); while ($ar = $rs->fetch()) { $userId = (int) $ar['AUDITOR']; if ($userId) { $arCounters[$userId]['AUDITORS_TOTAL_TASKS'] = (int) $ar['CNT']; } } return $arCounters; }