• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/internals/delivery_paysystem.php
  • Класс: BitrixSaleInternalsDeliveryPaySystemTable
  • Вызов: DeliveryPaySystemTable::prepareData
static function prepareData(array $entityIds, $entityType)
{
	static $preparedData = array();

	if(!isset($preparedData[$entityType]))
		$preparedData[$entityType] = array();

	if($entityType == self::ENTITY_TYPE_DELIVERY)
	{
		$linkDirection = self::LINK_DIRECTION_DELIVERY_PAYSYSTEM;
		$reverseLinkDirection = self::LINK_DIRECTION_PAYSYSTEM_DELIVERY;
		$reverseEntityType = self::ENTITY_TYPE_PAYSYSTEM;
	}
	else
	{
		$linkDirection =  self::LINK_DIRECTION_PAYSYSTEM_DELIVERY;
		$reverseLinkDirection = self::LINK_DIRECTION_DELIVERY_PAYSYSTEM;
		$reverseEntityType = self::ENTITY_TYPE_DELIVERY;
	}

	if(empty($entityIds))
		$entityIds = self::getEntityItemsFullList($entityType);

	$arrdif = array_diff($entityIds, array_keys($preparedData[$entityType]));

	if(is_array($arrdif) && empty($arrdif))
		return array_intersect_key($preparedData[$entityType], $entityIds);

	$glParams = array(
		'filter' => array(
			"=".$entityType => $arrdif
		)
	);

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

	foreach($arrdif as $id)
	{
		$preparedData[$entityType][$id] = array(
			"DIRECT" => array(),
			"REVERSE" => array()
		);
	}

	while($rec = $res->fetch())
	{
		if($rec["LINK_DIRECTION"] == $linkDirection)
			$preparedData[$entityType][$rec[$entityType]]["DIRECT"][] = $rec[$reverseEntityType];
		elseif($rec["LINK_DIRECTION"] == $reverseLinkDirection)
			$preparedData[$entityType][$rec[$entityType]]["REVERSE"][] = $rec[$reverseEntityType];
	}

	return $preparedData[$entityType];
}