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