Пример #1
0
 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);
 }
Пример #2
0
 /**
  * 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;
 }
Пример #3
0
 $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;