/** * Delete an elapsed time record */ public function delete($id) { global $USER; $result = array(); if ($id = $this->checkId($id)) { // 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->delete(); } } return $result; }
} 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); } } } catch (Exception $e) { $errCode = $e->getCode(); $strError = GetMessage('TASKS_FAILED_TO_DO_ACTION');