/** * Add a new elapsed time record to a specified task */ public function add(array $data, array $parameters = array()) { global $USER; $result = array(); if ($taskId = $this->checkTaskId($data['TASK_ID'])) { $task = \CTaskItem::getInstanceFromPool($taskId, $USER->GetId()); // or directly, new \CTaskItem($taskId, $USER->GetId()); list($task, $id) = \CTaskElapsedItem::add($task, $data); $result['DATA']['ELAPSEDTIME']['ID'] = $id; } return $result; }
public static function add($userId, $taskId, 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 = \CTaskElapsedItem::add($task, $data); $rData['ID'] = $item->getId(); } return array('TASK' => $task, 'ERRORS' => $errors, 'DATA' => $rData, 'CAN' => $rCan); }
if ($arTask) { $action = $_REQUEST['ACTION']; $taskID = $arTask["ID"]; $redirectTo = null; try { if ($action == "delete") { if ($_REQUEST["back_url"]) { $redirectTo = $_REQUEST["back_url"]; } 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])) {