• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/helpers/admin/orderedit.php
  • Класс: BitrixSaleHelpersAdminOrderEdit
  • Вызов: OrderEdit::getDiscountsApplyResult
static function getDiscountsApplyResult(Order $order, $needRecalculate = false)
{
	static $calcResults = null;

	if ($order instanceof SaleArchiveOrder)
	{
		/** @var SaleArchiveOrder $order */
		return $order->getDiscountData();
	}

	if ($calcResults === null || $needRecalculate)
	{
		$discounts = $order->getDiscount();

		if ($needRecalculate)
		{
			/** @var SaleResult $r */
			$r = $discounts->calculate();

			if ($r->isSuccess())
			{
				$discountData = $r->getData();
				$order->applyDiscount($discountData);
			}
		}

		$calcResults = $discounts->getApplyResult(true);
		unset($discounts);
	}

	return $calcResults === null ? array() : $calcResults;
}