• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/internals/delivery_paysystem.php
  • Класс: BitrixSaleInternalsDeliveryPaySystemTable
  • Вызов: DeliveryPaySystemTable::getUnlinkedEnityItems
static function getUnlinkedEnityItems($entityType, $linkDirection = null)
{
	if($entityType != self::ENTITY_TYPE_DELIVERY && $entityType != self::ENTITY_TYPE_PAYSYSTEM)
		throw  new ArgumentOutOfRangeException('entityType');

	if($linkDirection != null)
		if($linkDirection != self::LINK_DIRECTION_DELIVERY_PAYSYSTEM && $linkDirection != self::LINK_DIRECTION_PAYSYSTEM_DELIVERY)
			throw  new ArgumentOutOfRangeException('linkDirection');

	if(!isset(self::$unLinked[$entityType]))
	{
		$entityList = array_flip(self::getEntityItemsFullList($entityType));

		self::$unLinked[$entityType] = array(
			self::LINK_DIRECTION_DELIVERY_PAYSYSTEM => $entityList,
			self::LINK_DIRECTION_PAYSYSTEM_DELIVERY => $entityList
		);

		$glParams = array(
			'group' => array($entityType, 'LINK_DIRECTION'),
			'select' => array($entityType, 'LINK_DIRECTION')
		);

		$res = DeliveryPaySystemTable::getList($glParams);

		while($row = $res->fetch())
		{
			if(isset(self::$unLinked[$entityType][$row['LINK_DIRECTION']][$row[$entityType]]))
			{
				unset(self::$unLinked[$entityType][$row['LINK_DIRECTION']][$row[$entityType]]);
			}
		}

		self::$unLinked[$entityType][self::LINK_DIRECTION_DELIVERY_PAYSYSTEM] = array_keys(self::$unLinked[$entityType][self::LINK_DIRECTION_DELIVERY_PAYSYSTEM]);
		self::$unLinked[$entityType][self::LINK_DIRECTION_PAYSYSTEM_DELIVERY] = array_keys(self::$unLinked[$entityType][self::LINK_DIRECTION_PAYSYSTEM_DELIVERY]);
	}

	if($linkDirection == null)
	{
		$result = array_intersect(self::$unLinked[$entityType][self::LINK_DIRECTION_DELIVERY_PAYSYSTEM], self::$unLinked[$entityType][self::LINK_DIRECTION_PAYSYSTEM_DELIVERY]);
	}
	else
	{
		$result = self::$unLinked[$entityType][$linkDirection];
	}

	return $result;
}