• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/internals/accountnumber.php
  • Класс: BitrixSaleInternalsAccountNumberGenerator
  • Вызов: AccountNumberGenerator::generateForOrder
static function generateForOrder(SaleOrderBase $order)
{
	$id = (int)$order->getId();
	if ($id <= 0)
	{
		return false;
	}

	$accountNumber = static::generateCustom($order);
	if ($accountNumber)
	{
		$dbRes = $order::getList([
			'select' => ['ID'],
			'filter' => ['=ACCOUNT_NUMBER' => $accountNumber]
		]);
		if ($dbRes->fetch())
		{
			$accountNumber = null;
		}
	}
	else
	{
		$accountNumber = static::generateBySettings($order);
	}

	if (!$accountNumber) // if no special template is used or error occured
	{
		$accountNumber = static::generateById($order);
	}

	$dbRes = $order::getList([
		'select' => ['ID'],
		'filter' => ['=ACCOUNT_NUMBER' => $accountNumber]
	]);
	if ($dbRes->fetch())
	{
		$accountNumber = static::generateForOrder($order);
	}

	return $accountNumber;
}