• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/discountbase.php
  • Класс: BitrixSaleDiscountBase
  • Вызов: DiscountBase::convertDiscount
protected function convertDiscount($discount)
{
	$result = new Result;

	/** @var OrderDiscount $storageClassName */
	$storageClassName = $this->getOrderDiscountClassName();

	$discountResult = $storageClassName::saveDiscount($discount, false);
	if (!$discountResult->isSuccess())
	{
		$result->addErrors($discountResult->getErrors());
		unset($discountResult);
		return $result;
	}
	$orderDiscountId = $discountResult->getId();
	$discountData = $discountResult->getData();
	$resultData = array(
		'ORDER_DISCOUNT_ID' => $orderDiscountId,
		'USE_COUPONS' => $discountData['USE_COUPONS'],
		'MODULE_ID' => $discountData['MODULE_ID'],
		'DISCOUNT_ID' => $discountData['DISCOUNT_ID']
	);
	if (!isset($this->discountsCache[$orderDiscountId]))
	{
		$discountData['ACTIONS_DESCR_DATA'] = false;
		if (!empty($discountData['ACTIONS_DESCR']) && is_array($discountData['ACTIONS_DESCR']))
		{
			$discountData['ACTIONS_DESCR_DATA'] = $discountData['ACTIONS_DESCR'];
			$discountData['ACTIONS_DESCR'] = $this->formatDescription($discountData['ACTIONS_DESCR']);
		}
		else
		{
			$discountData['ACTIONS_DESCR'] = false;
		}
		if (empty($discountData['ACTIONS_DESCR']))
		{
			$discountData['ACTIONS_DESCR'] = false;
			$discountData['ACTIONS_DESCR_DATA'] = false;
		}
		$this->discountsCache[$orderDiscountId] = $discountData;
	}

	$result->setId($orderDiscountId);
	$result->setData($resultData);
	unset($discountData, $resultData, $orderDiscountId);

	return $result;
}