• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/pseudoactivity/waitentry.php
  • Класс: Bitrix\Crm\Pseudoactivity\WaitEntry
  • Вызов: WaitEntry::add
static function add(array $fields)
{
	$ownerTypeID = isset($fields['OWNER_TYPE_ID']) ? (int)$fields['OWNER_TYPE_ID'] : 0;
	$ownerID = isset($fields['OWNER_ID']) ? (int)$fields['OWNER_ID'] : 0;

	/*
	if(self::checkScheduledActivities($ownerTypeID, $ownerID))
	{
		$result = new Main\Entity\AddResult();
		$result->addError(
			new Main\Error(Loc::getMessage('CRM_WAIT_SCHEDULE_NOT_EMPTY_ERROR'))
		);
		return $result;
	}
	*/

	$fields['CREATED'] = new DateTime();
	if(!isset($fields['COMPLETED']))
	{
		$fields['COMPLETED'] = 'N';
	}

	$result = WaitTable::add($fields);
	if(!$result->isSuccess())
	{
		return 0;
	}

	$ID = $result->getId();
	$fields['ID'] = $ID;
	\Bitrix\Crm\Timeline\WaitController::getInstance()->onCreate($ID, array('FIELDS' => $fields));

	if($fields['COMPLETED'] === 'N')
	{
		self::completeByOwner($ownerTypeID, $ownerID, array('SKIP_RECENT' => true));
	}

	$counterCodes = EntityCounterManager::prepareCodes(
		$ownerTypeID,
		EntityCounterType::getAll(true),
		array('ENTITY_ID' => $ownerID, 'EXTENDED_MODE' => true)
	);
	if(!empty($counterCodes))
	{
		EntityCounterManager::reset($counterCodes, array());
	}

	if(!\Bitrix\Crm\Agent\Activity\WaitAgent::isActive())
	{
		\Bitrix\Crm\Agent\Activity\WaitAgent::activate();
	}

	return $result;
}