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