• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/discount/gift/manager.php
  • Класс: BitrixSaleDiscountGiftManager
  • Вызов: Manager::getAffectedReformattedBasketItemsInDiscount
private function getAffectedReformattedBasketItemsInDiscount(Basket $basket, array $discountData, array $calcResults)
{
	$items = array();
	foreach($calcResults['PRICES']['BASKET'] as $basketCode => $priceData)
	{
		if(empty($priceData['DISCOUNT']))
		{
			continue;
		}
		if(!empty($priceData['PRICE']))
		{
			continue;
		}
		if(empty($calcResults['RESULT']['BASKET'][$basketCode]))
		{
			continue;
		}
		//we have gift and PRICE equals 0.
		$found = false;
		foreach($calcResults['RESULT']['BASKET'][$basketCode] as $data)
		{
			if($data['DISCOUNT_ID'] == $discountData['ID'])
			{
				$found = true;
			}
		}
		unset($data);

		if(!$found)
		{
			continue;
		}

		$basketItem = $basket->getItemByBasketCode($basketCode);
		if(!$basketItem || $basketItem->getField('MODULE') != 'catalog')
		{
			continue;
		}

		$items[] = array(
			'PRODUCT_ID' => $basketItem->getProductId(),
			'VALUE_PERCENT' => '100',
			'MODULE' => 'catalog',
		);
	}
	unset($priceData);

	return $items;
}