• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/discountbase.php
  • Класс: BitrixSaleDiscountBase
  • Вызов: DiscountBase::fillBasketLastDiscount
protected function fillBasketLastDiscount()
{
	if ($this->getUseMode() != self::USE_MODE_FULL)
		return;
	$applyMode = self::getApplyMode();
	if ($applyMode == self::APPLY_MODE_ADD)
		return;

	$codeList = array_keys($this->orderData['BASKET_ITEMS']);
	switch ($applyMode)
	{
		case self::APPLY_MODE_DISABLE:
		case self::APPLY_MODE_FULL_DISABLE:
			foreach ($codeList as &$code)
			{
				if (isset($this->basketDiscountList[$code]) && !empty($this->basketDiscountList[$code]))
					$this->orderData['BASKET_ITEMS'][$code]['LAST_DISCOUNT'] = 'Y';
			}
			unset($code);
			break;
		case self::APPLY_MODE_LAST:
		case self::APPLY_MODE_FULL_LAST:
			foreach ($codeList as &$code)
			{
				if (!isset($this->basketDiscountList[$code]) || empty($this->basketDiscountList[$code]))
					continue;
				$lastDiscount = end($this->basketDiscountList[$code]);
				if (!empty($lastDiscount['LAST_DISCOUNT']) && $lastDiscount['LAST_DISCOUNT'] == 'Y')
					$this->orderData['BASKET_ITEMS'][$code]['LAST_DISCOUNT'] = 'Y';
			}
			unset($code);
			break;
	}
	unset($codeList, $applyMode);
}