• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/order/orderdealsynchronizer.php
  • Класс: Bitrix\Crm\Order\OrderDealSynchronizer
  • Вызов: OrderDealSynchronizer::createOrderFromDeal
public function createOrderFromDeal(int $dealId): void
{
	if (!$this->isSupportSync)
	{
		return;
	}

	$order = $this->getOrderBindedToDeal($dealId);
	if ($order || $this->isLockedDeal($dealId))
	{
		return;
	}

	$orderId = null;
	try
	{
		$this->lockDeal($dealId);

		$order = $this->createOrder($dealId);
		if ($order)
		{
			$orderId = $order->getId();
			$this->lockOrder($orderId);
			$this->syncOrderProductsByDeal($order, $dealId);
		}
	}
	finally
	{
		$this->unlockDeal($dealId);
		if ($orderId)
		{
			$this->unlockOrder($orderId);
		}
	}
}