Esempio n. 1
0
 public static function update($userId, $taskId, $itemId, array $data, array $parameters = array('PUBLIC_MODE' => false))
 {
     $errors = static::ensureHaveErrorCollection($parameters);
     if ($parameters['PUBLIC_MODE']) {
         $data = static::filterData($data, $errors);
     }
     $rData = array();
     $rCan = array();
     if ($errors->checkNoFatals()) {
         $task = static::getTask($userId, $taskId);
         $item = new \CTaskElapsedItem($task, $itemId);
         $item->update($data);
         $rData['ID'] = $itemId;
     }
     return array('TASK' => $task, 'ERRORS' => $errors, 'DATA' => $rData, 'CAN' => $rCan);
 }
Esempio n. 2
0
 /**
  * Update an elapsed time record
  */
 public function update($id, array $data, array $parameters = array())
 {
     global $USER;
     $result = array();
     if ($id = $this->checkId($id)) {
         if (isset($data['TASK_ID'])) {
             $this->add('FIELD_NOT_ALLOWED', 'You are not allowed to pass TASK_ID field', Collection::TYPE_WARNING, array('TASK_ID'));
             unset($data['TASK_ID']);
             // not allowed to change TASK_ID of an existing item
         }
         // get task id
         $taskId = $this->getOwnerTaskId($id);
         if ($taskId) {
             $task = \CTaskItem::getInstanceFromPool($taskId, $USER->GetId());
             // or directly, new \CTaskItem($taskId, $USER->GetId());
             $item = new \CTaskElapsedItem($task, $id);
             $item->update($data);
         }
     }
     return $result;
 }
Esempio n. 3
0
     } else {
         $redirectTo = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_TASKS"]);
     }
     $oTask->delete();
 } elseif ($action == "elapsed_add") {
     $redirectTo = $APPLICATION->GetCurPageParam(RandString(8), array("ACTION", "sessid")) . "#elapsed";
     $minutes = (int) $_POST['HOURS'] * 60 + (int) $_POST['MINUTES'];
     CTaskElapsedItem::add($oTask, array('MINUTES' => $minutes, 'COMMENT_TEXT' => trim($_POST["COMMENT_TEXT"])));
 } elseif ($action === 'elapsed_update') {
     $seconds = (int) $_POST['HOURS'] * 3600 + (int) $_POST['MINUTES'] * 60;
     if (isset($_POST['SECONDS']) && $_POST['SECONDS'] > 0) {
         $seconds += (int) $_POST['SECONDS'];
     }
     $redirectTo = $APPLICATION->GetCurPageParam("", array("ACTION", "sessid")) . "#elapsed";
     $oElapsedItem = new CTaskElapsedItem($oTask, (int) $_POST['ELAPSED_ID']);
     $oElapsedItem->update(array('SECONDS' => $seconds, 'COMMENT_TEXT' => trim($_POST["COMMENT_TEXT"])));
 } elseif ($action === 'elapsed_delete') {
     $redirectTo = $APPLICATION->GetCurPageParam("", array("ACTION", "sessid", "ELAPSED_ID")) . "#elapsed";
     $oElapsedItem = new CTaskElapsedItem($oTask, (int) $_GET['ELAPSED_ID']);
     $oElapsedItem->delete();
 } else {
     $arMap = array('close' => 'complete', 'start' => 'startExecution', 'accept' => 'accept', 'renew' => 'renew', 'defer' => 'defer', 'decline' => 'decline', 'delegate' => 'delegate', 'approve' => 'approve', 'disapprove' => 'disapprove');
     if (isset($arMap[$action])) {
         $arArgs = array();
         if ($action === 'decline') {
             $arArgs = array($_POST['REASON']);
         } elseif ($action === 'delegate') {
             $arArgs = array($_REQUEST['USER_ID']);
         }
         call_user_func_array(array($oTask, $arMap[$action]), $arArgs);
     }