• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/dispatcher/publicaction/task.php
  • Класс: Bitrix\Tasks\Dispatcher\PublicAction\Task
  • Вызов: Task::complete
public function complete($id)
{
	$id = (int)$id;
	$result = [];

	$task = TaskModel::createFromId((int)$id);
	if ($task->isClosed())
	{
		return $result;
	}

	if (!TaskAccessController::can($this->userId, ActionDictionary::ACTION_TASK_COMPLETE, $id))
	{
		$this->addForbiddenError();
		return $result;
	}

	if (!TaskAccessController::can($this->userId, ActionDictionary::ACTION_TASK_COMPLETE_RESULT, $id))
	{
		$this->errors->add('RESULT_REQUIRED', Loc::getMessage('TASKS_ACTION_RESULT_REQUIRED'), false, ['ui' => 'notification']);
		return $result;
	}

	if ($id = $this->checkTaskId($id))
	{
		// todo: move to \Bitrix\Tasks\Item\Task
		$task = \CTaskItem::getInstance($id, Util\User::getId());
		$task->complete();
	}

	return $result;
}