• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/basketcomponenthelper.php
  • Класс: BitrixSaleBasketComponentHelper
  • Вызов: BasketComponentHelper::checkQuantityRatio
static function checkQuantityRatio(Basket $basket, BasketItem $item = null)
{
	$result = new Result();

	$basketItemRatioList = array();
	$ratioList = array();
	$ratioResult = static::getRatio($basket, $item);

	if ($ratioResult->isSuccess())
	{
		$ratioData = $ratioResult->getData();

		if (!empty($ratioData['RATIO_LIST']) && is_array($ratioData['RATIO_LIST']))
		{
			$ratioList = $ratioData['RATIO_LIST'];
		}
	}

	/** @var BasketItem $basketItem */
	foreach ($basket as $basketItem)
	{
		$basketItemCode = $basketItem->getBasketCode();

		if ($item === null || $item->getBasketCode() === $basketItemCode)
		{
			$basketItemRatioList[$basketItemCode] = false;

			if (isset($ratioList[$basketItemCode]))
			{
				$basketItemQuantity = $basketItem->getQuantity();
				$basketItemRatio = (float)$ratioList[$basketItemCode];

				$mod = roundEx(($basketItemQuantity / $basketItemRatio - round($basketItemQuantity / $basketItemRatio)), 6);

				if ($mod == 0)
				{
					$basketItemRatioList[$basketItemCode] = true;
				}
			}
		}
	}

	if (!empty($basketItemRatioList))
	{
		$result->addData(array('CHECK_RATIO_LIST' => $basketItemRatioList));
	}

	return $result;
}