- Модуль: 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;
}