• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/discount/actions.php
  • Класс: BitrixSaleDiscountActions
  • Вызов: Actions::wrapFilterToFindMoreProfitableForCumulative
static function wrapFilterToFindMoreProfitableForCumulative($filter, $unit, $value, $limitValue, $maxBound)
{
	if (!is_callable($filter))
	{
		return null;
	}

	return function($basketItem) use ($filter, $unit, $value, $limitValue, $maxBound) {
		if (empty($basketItem['BASE_PRICE']))
		{
			return false;
		}

		if (empty($basketItem['DISCOUNT_PRICE']))
		{
			return true;
		}

		if (!$filter($basketItem))
		{
			return false;
		}

		$prevPrice = $basketItem['PRICE'];
		$basketItem['PRICE'] = $basketItem['BASE_PRICE'];
		list(, $newPrice) = self::calculateDiscountPrice(
			$value,
			$unit,
			$basketItem,
			$limitValue,
			$maxBound
		);

		return $newPrice < $prevPrice;
	};
}