- Модуль: 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];
}