• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/helpers/admin/blocks/orderbasket.php
  • Класс: BitrixSaleHelpersAdminBlocksOrderBasket
  • Вызов: OrderBasket::getPropsFromOffers2
static function getPropsFromOffers2(array $items, array $existOffers)
{
	$props = array();
	$notEmptyProps = array();
	$allProps = array();

	foreach($items as $id => $item)
	{
		if(!isset($props[$id]))
			$props[$id] = array();

		foreach($item as $offerId => $offer)
		{
			if(!isset($offer["PROPERTIES"]))
				continue;

			if(!in_array($offerId, $existOffers) && $offer["ACTIVE"] != "Y")
				continue;

			if(!isset($props[$id][$offerId]))
				$props[$id][$offerId] = array();

			foreach($offer["PROPERTIES"] as $propCode => $propParams)
			{
				if($propParams["MULTIPLE"] == "Y")
					continue;

				if($propParams["ACTIVE"] != "Y") //!$propParams["~VALUE"] ||
					continue;

				if($propParams['PROPERTY_TYPE'] == 'L'
					|| $propParams['PROPERTY_TYPE'] == 'E'
					|| (
						$propParams['PROPERTY_TYPE'] == 'S'
						&& $propParams['USER_TYPE'] == 'directory'
						)
					)
				{
					if(!in_array($propParams["ID"], $allProps))
						$allProps[] = $propParams["ID"];

					if($propParams["~VALUE"] <> '')
					{
						$props[$id][$offerId][$propParams["ID"]] = $propParams["~VALUE"];

						if(!in_array($propParams["ID"], $notEmptyProps))
							$notEmptyProps[] = $propParams["ID"];
					}
					else
					{
						$props[$id][$offerId][$propParams["ID"]] = "-";
					}
				}
			}
		}
	}

	$emptyProps = array_diff($allProps, $notEmptyProps);

	if(!empty($emptyProps))
	{
		foreach($emptyProps as $propId)
		{
			foreach($props as $prodId => $offers)
			{
				foreach($offers as $offerId => $offerProps)
				{
					unset($props[$prodId][$offerId][$propId]);
				}
			}
		}
	}

	return $props;
}