• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/statustable.php
  • Класс: Bitrix\Crm\StatusTable
  • Вызов: StatusTable::onBeforeAdd
static function onBeforeAdd(Event $event): ORM\EventResult
{
	$result = new ORM\EventResult();
	$fields = $event->getParameter('fields');

	if(isset($fields['SEMANTICS']) && $fields['SEMANTICS'] === PhaseSemantics::SUCCESS)
	{
		$existingSuccessStatus = static::getList([
			'select' => ['ID'],
			'filter' => [
				'=ENTITY_ID' => $fields['ENTITY_ID'],
				'=SEMANTICS' => PhaseSemantics::SUCCESS,
			],
			'limit' => 1,
		])->fetch();
		if($existingSuccessStatus)
		{
			$result->addError(new ORM\EntityError(Loc::getMessage('CRM_STATUS_MORE_THAN_ONE_SUCCESS_ERROR')));
		}
	}

	return $result;
}