• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/exchange/entity/entityimportloader.php
  • Класс: BitrixSaleExchangeEntityEntityImportLoader
  • Вызов: EntityImportLoader::getByNumber
public function getByNumber($number)
{
	if($number === "")
	{
		throw new MainArgumentException('Is not defined', 'ID');
	}
	$entity = static::getEntityTable();
	/** TODO: only EntityType::ORDER */
	$accountNumberPrefix = $this->settings->prefixFor(EntityType::ORDER);

	if(is_numeric($number))
	{
		if($r = $entity::getById($number)->fetch())
			return $r;

		if($r = $entity::getList(array(
			'select' => array('ID'),
			'filter' => array('ID_1C' => $number),
			'order' => array('ID' => 'DESC')))->fetch()
		)
			return $r;


		if($r = $entity::getList(array(
			'select' => array('ID'),
			'filter' => array('=ACCOUNT_NUMBER' => $number),
			'order' => array('ID' => 'DESC')))->fetch()
		)
			return $r;

		if ($accountNumberPrefix !== "")
		{
			if(mb_strpos($number, $accountNumberPrefix) === 0)
			{
				$number = mb_substr($number, mb_strlen($accountNumberPrefix));
				if ($r = $entity::getById($number)->fetch())
					return $r;
			}
		}
	}
	else
	{
		if ($r = $entity::getList(array(
			'select' => array('ID'),
			'filter' => array('ID_1C' => $number),
			'order' => array('ID' => 'DESC')))->fetch()
		)
			return $r;

		if ($r = $entity::getList(array(
			'select' => array('ID'),
			'filter' => array('=ACCOUNT_NUMBER' => $number),
			'order' => array('ID' => 'DESC')))->fetch()
		)
			return $r;

		if($accountNumberPrefix != "")
		{
			if(mb_strpos($number, $accountNumberPrefix) === 0)
			{
				$number = mb_substr($number, mb_strlen($accountNumberPrefix));
				if($r = $entity::getById($number)->fetch())
					return $r;

				if($r = $entity::getList(array(
					'select' => array('ID'),
					'filter' => array('=ACCOUNT_NUMBER' => $number),
					'order' => array('ID' => 'DESC')))->fetch()
				)
					return $r;
			}
		}
	}
	return null;
}