- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/location/connector.php
- Класс: BitrixSaleLocationConnector
- Вызов: Connector::deleteAllForOwner
static function deleteAllForOwner($entityPrimary, $behaviour = array('BATCH_MODE' => false))
{
$entityPrimary = Assert::expectStringNotNull($entityPrimary, '$entityPrimary');
if($behaviour['BATCH_MODE'])
{
// low-level drop
$dbConnection = MainHttpApplication::getConnection();
$typeField = static::getTypeField();
$sql ='
delete
from
'.static::getTableName().'
where
'.static::getLinkField().' = ''.$dbConnection->getSqlHelper()->forSql($entityPrimary).''';
if($typeField <> '')
{
$sql .= ' AND (
'.$typeField.' = ''.static::DB_LOCATION_FLAG.''
OR '.$typeField.' = ''.static::DB_GROUP_FLAG.''
)';
}
$dbConnection->query($sql);
}
else
{
// get existed relations
$existed = static::getLinkedLocations($entityPrimary);
if (
!empty($existed[static::DB_LOCATION_FLAG])
&& is_array($existed[static::DB_LOCATION_FLAG])
)
{
static::updateMultipleLinkType(
$entityPrimary,
[],
$existed[static::DB_LOCATION_FLAG],
static::DB_LOCATION_FLAG,
true
);
}
if (
static::getUseGroups()
&& !empty($existed[static::DB_GROUP_FLAG])
&& is_array($existed[static::DB_GROUP_FLAG])
)
{
static::updateMultipleLinkType(
$entityPrimary,
[],
$existed[static::DB_GROUP_FLAG],
static::DB_GROUP_FLAG,
true
);
}
}
static::setLinkUsage($entityPrimary, static::DB_LOCATION_FLAG, false);
static::setLinkUsage($entityPrimary, static::DB_GROUP_FLAG, false);
$GLOBALS['CACHE_MANAGER']->ClearByTag('sale-location-data');
static::onAfterModifiy();
}