• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/Service/Broker/Product.php
  • Класс: Bitrix\Crm\Service\Broker\Product
  • Вызов: Product::normalizeDiscountForMonetary
static function normalizeDiscountForMonetary(ProductRow $product): void
{
	if (is_null($product->getDiscountSum()))
	{
		self::addErrorForProduct(
			new Error(
			"Discount Sum (DISCOUNT_SUM) is required if Monetary Discount Type (DISCOUNT_TYPE_ID) is used. ID = {$product->getId()}"
			),
			$product
		);
		return;
	}

	if (is_null($product->getDiscountRate()))
	{
		$priceBeforeDiscount = $product->getPriceExclusive() + $product->getDiscountSum();
		$discountRate = Discount::calculateDiscountRate($priceBeforeDiscount, $product->getPriceExclusive());
		$product->setDiscountRate($discountRate);
	}
}