• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/helpers/admin/iblockpricechanger.php
  • Класс: BitrixCatalogHelpersAdminIblockPriceChanger
  • Вызов: IblockPriceChanger::calculateResultPrice
private function calculateResultPrice($price)
{
	$userDialogParams = $this->userDialogParams;
	$valueChangingPrice = $userDialogParams['VALUE_CHANGING'];

	if ($userDialogParams['UNITS'] === "percent")
	{
		$price = ($price * (100 + $valueChangingPrice) / 100);
	}
	elseif ($userDialogParams['UNITS'] === "multiple")
	{
		if ($valueChangingPrice > 0)
		{
			$price = $price * $valueChangingPrice;
		}
		else
		{
			$price = $price / $valueChangingPrice * (-1);
		}
	}
	else
	{
		$price = $price + $valueChangingPrice;
	}

	switch ($userDialogParams['FORMAT_RESULTS'])
	{
		case "floor":
			$price = floor($price * $userDialogParams['RESULT_MASK']) / $userDialogParams['RESULT_MASK'] - $userDialogParams['DIFFERENCE_VALUE'] ;
			break;
		case "ceil":
			$price = ceil($price * $userDialogParams['RESULT_MASK']) / $userDialogParams['RESULT_MASK'] - $userDialogParams['DIFFERENCE_VALUE'] ;
			break;
		default:
			$price = round($price * $userDialogParams['RESULT_MASK']) / $userDialogParams['RESULT_MASK'] - $userDialogParams['DIFFERENCE_VALUE'] ;
			break;
	}

	unset($userDialogParams);

	return $price;
}