예제 #1
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;
 }
예제 #2
0
 function GetByID($ID)
 {
     /** @noinspection PhpDeprecationInspection */
     return CTaskElapsedTime::GetList(array(), array("ID" => $ID));
 }
예제 #3
0
 protected final function fetchDataFromDb($taskId, $itemId)
 {
     /** @noinspection PhpDeprecationInspection */
     $rsData = CTaskElapsedTime::GetList(array(), array('ID' => (int) $itemId));
     if (is_object($rsData) && ($arData = $rsData->fetch())) {
         return $arData;
     } else {
         throw new Exception();
     }
 }