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

	foreach ($basket as $basketCode => $basketItem)
	{
		$code = ($publicMode ? $basketItem['ID'] : $basketCode);
		if (!static::calculateBasketItemDiscount($code, $basketItem))
			return false;
		if (!empty(self::$discountResult['BASKET'][$code]))
		{
			foreach (self::$discountResult['BASKET'][$code] as $row)
			{
				if ($row['RESULT']['APPLY'] == 'Y')
				{
					$basket[$basketCode]['ACTION_APPLIED'] = 'Y';
					break;
				}
			}
			unset($row);
		}
	}
	unset($basketCode, $basketItem);

	return true;
}