• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/controller/activity/todo.php
  • Класс: Bitrix\Crm\Controller\Activity\ToDo
  • Вызов: ToDo::updateResponsibleUserAction
public function updateResponsibleUserAction(
	int $ownerTypeId,
	int $ownerId,
	int $id,
	int $responsibleId
): ?array
{
	$todo = $this->loadEntity($ownerTypeId, $ownerId, $id);
	if (!$todo)
	{
		return null;
	}

	if ($todo->isCompleted())
	{
		$this->addError(new Error( Loc::getMessage('CRM_ACTIVITY_TODO_UPDATE_RESPONSIBLE_USER_ERROR')));

		return null;
	}

	if ($responsibleId <= 0)
	{
		$this->addError(new Error('Parameter "responsibleId" must be greater than 0'));

		return null;
	}

	$prevResponsibleId = $todo->getResponsibleId();

	$todo->setResponsibleId($responsibleId);
	$todo = (Manager::createFromEntity($todo))->getPreparedEntity([], true);

	$result = $this->saveTodo($todo);
	if ($result === null)
	{
		return null;
	}

	$this->tryNotifyWhenUpdate(
		$id,
		$ownerTypeId,
		$ownerId,
		$responsibleId,
		$prevResponsibleId
	);

	return $result;
}