• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/orderdiscountbase.php
  • Класс: BitrixSaleOrderDiscountBase
  • Вызов: OrderDiscountBase::addDiscount
static function addDiscount(array $fields, array $rawFields)
{
	$result = new Result;

	$process = true;
	$orderDiscountId = null;

	$tabletResult = static::addOrderDiscountInternal($fields);
	if ($tabletResult->isSuccess())
	{
		$orderDiscountId = (int)$tabletResult->getId();
	}
	else
	{
		$process = false;
		$result->addErrors($tabletResult->getErrors());
	}
	unset($tabletResult);

	if ($process)
	{
		$moduleList = static::prepareDiscountModules($rawFields);
		if (!empty($moduleList))
		{
			$resultModule = static::saveOrderDiscountModulesInternal(
				$orderDiscountId,
				$moduleList
			);
			if (!$resultModule)
			{
				$process = false;
				$result->addError(new MainEntityEntityError(
					Loc::getMessage('SALE_ORDER_DISCOUNT_ERR_SAVE_DISCOUNT_MODULES'),
					self::ERROR_ID
				));
			}
			unset($resultModule);
		}
		unset($moduleList);
	}

	if ($process)
		$result->setId($orderDiscountId);

	return $result;
}