예제 #1
0
 protected static function doAdd($userId, array $data, array $parameters, Collection $errors)
 {
     $task = \CTaskItem::add($data, $userId);
     $taskID = $task->getId();
     if ($taskID) {
         if (is_array($data[static::SE_PREFIX . 'CHECKLIST']) && !empty($data[static::SE_PREFIX . 'CHECKLIST'])) {
             // add checklist here
         }
         if ($data["ADD_TO_TIMEMAN"] == "Y") {
             \CTaskPlannerMaintance::plannerActions(array('add' => array($taskID)));
         }
     }
     return $task;
 }
예제 #2
0
 public function start($taskId)
 {
     global $CACHE_MANAGER, $USER;
     // Stop timer of user (if it is run)
     $this->stop();
     $oTaskItem = CTaskItem::getInstance($taskId, $this->userId);
     $arTask = $oTaskItem->getData(false);
     if (!$oTaskItem->isActionAllowed(CTaskItem::ACTION_START_TIME_TRACKING)) {
         return false;
     }
     // Run timer for given task
     $arTimer = CTaskTimerCore::start($this->userId, $taskId);
     $this->cachedLastTimer = null;
     $arAffectedUsers = array_unique(array_merge(array($this->userId, $arTask['RESPONSIBLE_ID']), (array) $arTask['ACCOMPLICES']));
     foreach ($arAffectedUsers as $userId) {
         $CACHE_MANAGER->ClearByTag('tasks_user_' . $userId);
     }
     if ($arTimer === false) {
         return false;
     } else {
         // Add task to day plan
         if (isset($USER) && is_object($USER) && $USER->getId() == $this->userId) {
             $arTasksInDayPlan = CTaskPlannerMaintance::getCurrentTasksList();
             if (!in_array($taskId, $arTasksInDayPlan)) {
                 CTaskPlannerMaintance::plannerActions(array('add' => array($taskId)));
             }
         }
         if ($arTask['REAL_STATUS'] != CTasks::STATE_IN_PROGRESS) {
             if (!$oTaskItem->isActionAllowed(CTaskItem::ACTION_START) && $oTaskItem->isActionAllowed(CTaskItem::ACTION_RENEW)) {
                 $oTaskItem->renew();
             }
             if ($oTaskItem->isActionAllowed(CTaskItem::ACTION_START)) {
                 $oTaskItem->startExecution();
             }
         }
         return $arTimer;
     }
 }
예제 #3
0
             $templateData = CTaskTemplates::GetList(false, array('ID' => intval($arResult['COPY_PARAMS']['ORIGIN_TEMPLATE'])), false, array('USER_ID' => $loggedInUserId), array('ID'))->fetch();
             if (is_array($templateData)) {
                 $oTask->addChildTasksByTemplate(intval($arResult['COPY_PARAMS']['ORIGIN_TEMPLATE']));
                 // task access rights check inside
             }
         }
     } catch (Exception $e) {
         if ($e->GetCode() & TasksException::TE_FLAG_SERIALIZED_ERRORS_IN_MESSAGE) {
             $arResult['ERRORS'] = unserialize($e->GetMessage());
         } else {
             $arResult['ERRORS'][] = array('text' => 'UNKNOWN ERROR OCCURED', 'id' => 'ERROR_TASKS_UNKNOWN');
         }
     }
 }
 if ($_POST["ADD_TO_TIMEMAN"] == "Y") {
     CTaskPlannerMaintance::plannerActions(array('add' => array($taskID)));
 }
 if ($arFields["REPLICATE"] == "Y") {
     unset($arTemplateFields["DEADLINE"], $arTemplateFields["START_DATE_PLAN"], $arTemplateFields["END_DATE_PLAN"]);
     $arTemplateFields["TASK_ID"] = $taskID;
     $arTemplateFields["ACCOMPLICES"] = sizeof($arTemplateFields["ACCOMPLICES"]) ? serialize($arTemplateFields["ACCOMPLICES"]) : false;
     $arTemplateFields["AUDITORS"] = sizeof($arTemplateFields["AUDITORS"]) ? serialize($arTemplateFields["AUDITORS"]) : false;
     $arTemplateFields["TAGS"] = strlen(trim($arTemplateFields["TAGS"])) > 0 ? serialize(explode(",", $arTemplateFields["TAGS"])) : false;
     $arTemplateFields["FILES"] = sizeof($arTemplateFields["FILES"]) ? serialize($arTemplateFields["FILES"]) : false;
     $arTemplateFields["DEPENDS_ON"] = sizeof($arTemplateFields["DEPENDS_ON"]) ? serialize($arTemplateFields["DEPENDS_ON"]) : false;
     $arTemplateFields["REPLICATE_PARAMS"] = serialize($arTemplateFields["REPLICATE_PARAMS"]);
     $taskTemplate = new CTaskTemplates();
     $templateId = $taskTemplate->Add($arTemplateFields, array('CHECK_RIGHTS_ON_FILES' => 'Y', 'USER_ID' => $USER->getId()));
     if (intval($templateId)) {
         // checklist
         if (is_array($_POST['CHECKLIST_ITEM_ID'])) {