• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/discountbase.php
  • Класс: BitrixSaleDiscountBase
  • Вызов: DiscountBase::correctStepResult
protected function correctStepResult(&$stepResult, $discount)
{
	if ($discount['USE_COUPONS'] == 'Y' && !empty($discount['COUPON']))
	{
		if (
			$discount['COUPON']['TYPE'] == InternalsDiscountCouponTable::TYPE_BASKET_ROW &&
			(!empty($stepResult['BASKET']) && count($stepResult['BASKET']) > 1)
		)
		{
			$maxPrice = 0;
			$maxKey = -1;
			$basketKeys = array();
			foreach ($stepResult['BASKET'] as $key => $row)
			{
				$basketKeys[$key] = $key;
				if ($maxPrice < $this->currentStep['oldData']['BASKET_ITEMS'][$key]['PRICE'])
				{
					$maxPrice = $this->currentStep['oldData']['BASKET_ITEMS'][$key]['PRICE'];
					$maxKey = $key;
				}
			}
			unset($basketKeys[$maxKey]);
			foreach ($basketKeys as $key => $row)
			{
				unset($stepResult['BASKET'][$key]);
				$this->orderData['BASKET_ITEMS'][$row] = $this->currentStep['oldData']['BASKET_ITEMS'][$row];
			}
			unset($row, $key);
		}
	}
}