• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/timeline/tasks/controller.php
  • Класс: Bitrix\Crm\Timeline\Tasks\Controller
  • Вызов: Controller::isActivityStatusUpdateRequired
private function isActivityStatusUpdateRequired(array $params, Bindings $bindings, string $desiredStatus): bool
{
	$authorId = $params['AUTHOR_ID'] ?? 0;

	if ($bindings->isEmpty())
	{
		return false;
	}

	$updateByParams = (!isset($params['UPDATE_ACTIVITY_STATUS']) || $params['UPDATE_ACTIVITY_STATUS'] === true);

	if ($updateByParams === false)
	{
		return false;
	}

	if (in_array($desiredStatus, TaskActivityStatus::STATUSES_MANAGER_CAN_UPDATE, true))
	{
		return true;
	}

	foreach ($bindings as $identifier)
	{
		$responsibleId = $this->getAssignedByEntity($identifier);

		if ($responsibleId === $authorId)
		{
			return false;
		}
	}

	return true;
}