• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/location/location.php
  • Класс: BitrixSaleLocationLocationTable
  • Вызов: LocationTable::addExtended
static function addExtended(array $data, array $additional = array())
{
	$resetLegacy = !isset($additional['RESET_LEGACY']) || $additional['RESET_LEGACY'] !== false;

	if(isset($data['EXTERNAL']))
	{
		$external = $data['EXTERNAL'];
		unset($data['EXTERNAL']);
	}

	if(isset($data['NAME']))
	{
		$name = $data['NAME'];
		unset($data['NAME']);
	}

	// force code to lowercase
	if(isset($data['CODE']))
		$data['CODE'] = ToLower($data['CODE']);

	// you are not allowed to modify tree data over LocationTable::add()
	self::applyRestrictions($data);

	// store tree data and basic
	$addResult = parent::addExtended($data, $additional);

	// add connected data
	if($addResult->isSuccess())
	{
		$primary = $addResult->getId();

		// external
		if(isset($external))
			ExternalTable::addMultipleForOwner($primary, $external);

		// names
		if(isset($name))
			NameLocationTable::addMultipleForOwner($primary, $name);

		if(intval($data['TYPE_ID']) > 0 && $resetLegacy)
			self::resetLegacy(intval($data['TYPE_ID']));

		SearchFinder::setIndexInvalid();
		$GLOBALS['CACHE_MANAGER']->ClearByTag('sale-location-data');
	}

	return $addResult;
}