ResultEntity::addOrder

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. ResultEntity
  4. addOrder
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/webform/resultentity.php
  • Класс: Bitrix\Crm\WebForm\ResultEntity
  • Вызов: ResultEntity::addOrder
protected function addOrder()
{
	$formData = $this->getDataForOrderBuilder();
	if (!$formData)
	{
		return;
	}

	// if created automatically - fill it!
	if ($this->dealId)
	{
		$orderId = OrderCreator::getCreatedOrderId((int)$this->dealId);
		if ($orderId)
		{
			$order = Crm\Order\Order::load($orderId);
			if ($order)
			{
				$this->fillOrderPaymentsAndDeliveries($order, $formData);
				return;
			}
		}
	}

	$builder = Crm\Order\Builder\Factory::createBuilderForPayment();

	try
	{
		$builder->build($formData);
	}
	catch (BuildingException $exception)
	{
		return;
	}

	/** @var Crm\Order\Order $order */
	$order = $builder->getOrder();
	if (!$order)
	{
		return;
	}

	$payment = $this->findNewPayment($order);

	$r = $order->save();
	if (!$r->isSuccess())
	{
		return;
	}

	$this->orderId = $order->getId();
	if ($payment)
	{
		$this->paymentId = $payment->getId();
	}

	$this->resultEntityPack[] = [
		'RESULT_ID' => $this->resultId,
		'ENTITY_NAME' => \CCrmOwnerType::OrderName,
		'ITEM_ID' => $this->orderId,
		'IS_DUPLICATE' => false,
		'IS_AUTOMATION_RUN' => false,
	];
}

Добавить комментарий