public static function getList($userId, $taskId, array $parameters = array()) { $data = array(); $task = static::getTask($userId, $taskId); if ($task !== null && $task->checkCanRead()) { $res = \CTaskLog::GetList(array('CREATED_DATE' => 'DESC'), array('TASK_ID' => $taskId)); $tzDisabled = !\CTimeZone::enabled(); if ($tzDisabled) { \CTimeZone::enable(); } $tzOffset = \CTimeZone::getOffset(); if ($tzDisabled) { \CTimeZone::disable(); } while (true) { if ($parameters['ESCAPE_DATA']) { $item = $res->GetNext(); } else { $item = $res->fetch(); } if (!$item) { break; } // Adjust unix timestamps to "bitrix timestamps" if (isset(\CTaskLog::$arComparedFields[$item['FIELD']]) && \CTaskLog::$arComparedFields[$item['FIELD']] === 'date') { $item['TO_VALUE'] = $item['TO_VALUE'] + $tzOffset; $item['FROM_VALUE'] = $item['FROM_VALUE'] + $tzOffset; } $data[] = $item; } } return array('DATA' => $data, 'CAN' => array()); }
protected function fetchListFromDb($taskData, $arOrder = array('ID' => 'ASC'), $arFilter = array()) { CTaskAssert::assertLaxIntegers($taskData['ID']); if (!isset($arOrder)) { $arOrder = array('ID' => 'ASC'); } if (!is_array($arFilter)) { $arFilter = array(); } $arFilter['TASK_ID'] = (int) $taskData['ID']; $arItemsData = array(); /** @noinspection PhpDeprecationInspection */ $rsData = CTaskLog::GetList($arOrder, $arFilter); if (!is_object($rsData)) { throw new Exception(); } $i = 1; while ($arData = $rsData->fetch()) { $arData['ID'] = $i; // emulate ID field that is required by CTaskSubItemAbstract::constructWithPreloadedData() $arItemsData[] = $arData; $i++; } return array($arItemsData, $rsData); }
/** * DEPRECATED! Migrated to tasks module. * * @deprecated */ public static function GetTaskTime($arParams) { if ($arParams['EXPIRED_DATE'] > 0) { $arParams['EXPIRED_DATE'] += CTimeMan::RemoveHoursTS($arParams['DATE_START']); } if (CModule::IncludeModule('tasks')) { $time = 0; $arFilter = array('TASK_ID' => $arParams['TASK_ID'], 'USER_ID' => $arParams['USER_ID'], '>=CREATED_DATE' => ConvertTimeStamp($arParams['DATE_START'], 'FULL')); if ($arParams['DATE_FINISH']) { $arFilter['<CREATED_DATE'] = ConvertTimeStamp($arParams['DATE_FINISH'], 'FULL'); } elseif ($arParams['EXPIRED_DATE']) { $arFilter['<CREATED_DATE'] = ConvertTimeStamp($arParams['EXPIRED_DATE']); } $dbRes = CTaskElapsedTime::GetList(array('CREATED_DATE' => 'ASC'), $arFilter); while ($arRes = $dbRes->Fetch()) { self::$arWasElapedCache[$arRes['TASK_ID']] = true; $time += $arRes['MINUTES'] * 60; } if ($time == 0) { $arFilter['FIELD'] = 'STATUS'; $dbRes = CTaskLog::GetList(array('CREATED_DATE' => 'ASC'), $arFilter); $current_time = $arParams['DATE_START']; $last_status = $arParams['TASK_STATUS']; while ($arRes = $dbRes->Fetch()) { if ($arRes['FROM_VALUE'] == 3) { $time += MakeTimeStamp($arRes['CREATED_DATE']) - $current_time; } elseif ($arRes['TO_VALUE'] == 3) { $current_time = MakeTimeStamp($arRes['CREATED_DATE']); } $last_status = $arRes['TO_VALUE']; } if ($last_status == 3) { if ($arParams['DATE_FINISH']) { $time += $arParams['DATE_FINISH'] - $current_time; } elseif ($arParams['EXPIRED_DATE']) { $time += $arParams['EXPIRED_DATE'] - $current_time; } else { $time += time() + CTimeZone::GetOffset() - $current_time; } } } return $time; } return false; }
$arParams = array(); $arParams["NAME_TEMPLATE"] = $nameTemplate; $loggedInUserId = 0; if (isset($GLOBALS['USER']) && is_object($GLOBALS['USER']) && $GLOBALS['USER']->isAuthorized()) { $loggedInUserId = (int) $GLOBALS['USER']->GetID(); } if (check_bitrix_sessid() && $loggedInUserId > 0) { $action = ''; if (isset($_GET['action'])) { $action = $_GET['action']; } if ($action === 'render_task_log_last_row_with_date_change') { $arParams["PATH_TO_USER_PROFILE"] = (string) $_POST["PATH_TO_USER_PROFILE"]; $authorUserId = (int) $loggedInUserId; $taskId = (int) $_POST['task_id']; $rsLog = CTaskLog::GetList(array('CREATED_DATE' => 'DESC'), array("TASK_ID" => $taskId)); $arData = false; while ($arLog = $rsLog->GetNext()) { // wait for DEADLINE field if ($arLog['FIELD'] !== 'DEADLINE') { continue; } // Yeah, we found it! $arData = $arLog; break; } // If row found if ($arData !== false) { $rsCurUserData = $USER->GetByID($authorUserId); $arCurUserData = $rsCurUserData->Fetch(); $strDateFrom = $strDateTo = '';
$arResult["CHILDREN_COUNT"]["PARENT_" . $arChildrenCount["PARENT_ID"]] = $arChildrenCount["CNT"]; } } // groups $arResult["GROUPS"] = array(); $arOpenedProjects = CUserOptions::GetOption("tasks", "opened_projects", array()); if ($arResult["TASK_TYPE"] != "group" && sizeof($arGroupsIDs)) { $rsGroups = CSocNetGroup::GetList(array("ID" => "ASC"), array("ID" => $arGroupsIDs)); while ($arGroup = $rsGroups->GetNext()) { $arGroup["EXPANDED"] = array_key_exists($arGroup["ID"], $arOpenedProjects) && $arOpenedProjects[$arGroup["ID"]] == "false" ? false : true; $arResult["GROUPS"][$arGroup["ID"]] = $arGroup; } } // log $arResult["LOG"] = array(); $rsLog = CTaskLog::GetList(array('CREATED_DATE' => 'DESC'), array("TASK_ID" => $arResult["TASK"]["ID"])); $bTzWasDisabled = !CTimeZone::enabled(); if ($bTzWasDisabled) { CTimeZone::enable(); } $tzOffset = CTimeZone::getOffset(); if ($bTzWasDisabled) { CTimeZone::disable(); } while ($arLog = $rsLog->GetNext()) { // Adjust unix timestamps to "bitrix timestamps" if (isset(CTaskLog::$arComparedFields[$arLog['FIELD']]) && CTaskLog::$arComparedFields[$arLog['FIELD']] === 'date') { $arLog['~TO_VALUE'] = $arLog['TO_VALUE'] = $arLog['TO_VALUE'] + $tzOffset; $arLog['~FROM_VALUE'] = $arLog['FROM_VALUE'] = $arLog['FROM_VALUE'] + $tzOffset; } $arResult["LOG"][] = $arLog;