• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/compatible/discountcompatibility.php
  • Класс: BitrixSaleCompatibleDiscountCompatibility
  • Вызов: DiscountCompatibility::setApplyMode
static function setApplyMode(&$basket)
{
	if (!self::$init)
		return;
	if (!self::isSuccess() || self::$useMode == self::MODE_SYSTEM || self::$useMode == self::MODE_DISABLED)
		return;
	if (empty($basket) || !is_array($basket))
		return;
	$publicMode = self::usedByClient();

	switch (SaleDiscount::getApplyMode())
	{
		case SaleDiscount::APPLY_MODE_DISABLE:
		case SaleDiscount::APPLY_MODE_FULL_DISABLE:
			foreach ($basket as $basketCode => $basketItem)
			{
				$code = ($publicMode ? $basketItem['ID'] : $basketCode);
				if (isset(self::$basketDiscountList[$code]) && !empty(self::$basketDiscountList[$code]))
					$basket[$basketCode]['LAST_DISCOUNT'] = 'Y';
				unset($code);
			}
			unset($basketCode, $basketItem);
			break;
		case SaleDiscount::APPLY_MODE_LAST:
		case SaleDiscount::APPLY_MODE_FULL_LAST:
			foreach ($basket as $basketCode => $basketItem)
			{
				$code = ($publicMode ? $basketItem['ID'] : $basketCode);
				if (!isset(self::$basketDiscountList[$code]) || empty(self::$basketDiscountList[$code]))
					continue;
				$lastDiscount = end(self::$basketDiscountList[$code]);
				if (!empty($lastDiscount['LAST_DISCOUNT']) && $lastDiscount['LAST_DISCOUNT'] == 'Y')
					$basket[$basketCode]['LAST_DISCOUNT'] = 'Y';
			}
			unset($basketCode, $basketItem);
			break;
		case SaleDiscount::APPLY_MODE_ADD:
			break;
	}
}