public static function getList($userId, $taskId, array $parameters = array()) { $data = array(); $can = array(); $task = static::getTask($userId, $taskId); if ($task !== null && $task->checkCanRead()) { list($items, $arMetaData) = \CTaskElapsedItem::fetchList($task); unset($arMetaData); foreach ($items as $item) { $itemData = $item->getData($parameters['ESCAPE_DATA']); $data[$itemData['ID']] = $itemData; $can[$itemData['ID']]['ACTION'] = array('MODIFY' => $item->isActionAllowed(\CTaskElapsedItem::ACTION_ELAPSED_TIME_MODIFY), 'REMOVE' => $item->isActionAllowed(\CTaskElapsedItem::ACTION_ELAPSED_TIME_REMOVE)); } } return array('DATA' => $data, 'CAN' => $can); }
/** * Get all elapsed time items for a specified task */ public function getListByTask($taskId, array $order = array(), array $filter = array()) { global $USER; $result = array(); if ($taskId = $this->checkTaskId($taskId)) { $task = \CTaskItem::getInstanceFromPool($taskId, $USER->GetId()); // or directly, new \CTaskItem($taskId, $USER->GetId()); // todo: make this and TasksTaskComponent::getTaskDataElapsedTime() use common code $items = \CTaskElapsedItem::fetchList($task, $order, $filter); foreach ($items as $item) { $data = $item->getData(false); $id = $data->getId(); $result['DATA']['ELAPSEDTIME'][$id] = $data; $result['CAN']['ELAPSEDTIME'][$id]['ACTION'] = array('MODIFY' => $item->isActionAllowed(\CTaskElapsedItem::ACTION_ELAPSED_TIME_MODIFY), 'REMOVE' => $item->isActionAllowed(\CTaskElapsedItem::ACTION_ELAPSED_TIME_REMOVE)); } } return $result; }
$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; } // elapsed time $arResult["ELAPSED_TIME"] = array(); $arResult["FULL_ELAPSED_TIME"] = 0; list($oElapsedItems, $arMetaData) = CTaskElapsedItem::fetchList($oTask); unset($arMetaData); foreach ($oElapsedItems as $oElapsedItem) { $arElapsedData = $oElapsedItem->getData(); $arElapsedData['META:CAN_MODIFY'] = $oElapsedItem->isActionAllowed(CTaskElapsedItem::ACTION_ELAPSED_TIME_MODIFY); $arElapsedData['META:CAN_REMOVE'] = $oElapsedItem->isActionAllowed(CTaskElapsedItem::ACTION_ELAPSED_TIME_REMOVE); $arResult["ELAPSED_TIME"][] = $arElapsedData; $arResult["FULL_ELAPSED_TIME"] += $arElapsedData['MINUTES']; } // user fields $arResult["USER_FIELDS"] = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields("TASKS_TASK", $arParams["TASK_ID"], LANGUAGE_ID); $arResult["SHOW_USER_FIELDS"] = false; foreach ($arResult["USER_FIELDS"] as $arUserField) { if ($arUserField["VALUE"] !== false) { $arResult["SHOW_USER_FIELDS"] = true; break;