• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/location/connector.php
  • Класс: BitrixSaleLocationConnector
  • Вызов: Connector::checkLinkUsage
static function checkLinkUsage($entityPrimary, $linkType = self::DB_LOCATION_FLAG)
{
	$entityPrimary = Assert::expectStringNotNull($entityPrimary, '$entityPrimary');
	$linkType = Assert::expectEnumerationMember(
		$linkType,
		array(static::DB_LOCATION_FLAG, static::DB_GROUP_FLAG),
		'$linkType'
	);

	if(!static::getUseLinkTracking())
		return true; // force to true if link tracking is off

	$useGroups = static::getUseGroups();

	if(!$useGroups && $linkType == static::DB_GROUP_FLAG)
		return false; // we know we dont use groups

	$usageFlags = static::getLinkUsageOptionValue();

	if(isset($usageFlags[$entityPrimary][$linkType]))
		return $usageFlags[$entityPrimary][$linkType];

	$strictFilter = array(
		static::getLinkField() => $entityPrimary
	);
	if($useGroups)
		$strictFilter['LOCATION_TYPE'] = static::DB_LOCATION_FLAG;

	$usageFlags[$entityPrimary][static::DB_LOCATION_FLAG] = !!static::getList(array(
		'limit' => 1,
		'filter' => $strictFilter
	))->fetch();

	if($useGroups)
	{
		$usageFlags[$entityPrimary][static::DB_GROUP_FLAG] = !!static::getList(array(
			'limit' => 1,
			'filter' => array(
				static::getLinkField() => $entityPrimary,
				'LOCATION_TYPE' => static::DB_GROUP_FLAG
			)
		))->fetch();
	}

	static::setLinkUsageOptionValue($usageFlags);

	return $usageFlags[$entityPrimary];
}