- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/entityrequisite.php
- Класс: Bitrix\Crm\EntityRequisite
- Вызов: EntityRequisite::getDefaultRequisiteInfoLinked
public function getDefaultRequisiteInfoLinked($entityList)
{
$requisiteIdLinked = 0;
$bankDetailIdLinked = 0;
$bankDetail = null;
if (is_array($entityList))
{
foreach ($entityList as $entityInfo)
{
$entityTypeId = isset($entityInfo['ENTITY_TYPE_ID']) ? (int)$entityInfo['ENTITY_TYPE_ID'] : 0;
if ($entityTypeId < 0)
$entityTypeId = 0;
$entityId = isset($entityInfo['ENTITY_ID']) ? (int)$entityInfo['ENTITY_ID'] : 0;
if ($entityId < 0)
$entityId = 0;
if ($entityTypeId > 0 && $entityId > 0)
{
if (isset(EntityLink::getAvailableEntityTypeIds()[$entityTypeId]))
{
if ($row = EntityLink::getList(
array(
'filter' => array(
'=ENTITY_TYPE_ID' => $entityTypeId,
'=ENTITY_ID' => $entityId
),
'select' => array('REQUISITE_ID', 'BANK_DETAIL_ID'),
'limit' => 1
)
)->fetch())
{
if (isset($row['REQUISITE_ID']) && $row['REQUISITE_ID'] > 0)
$requisiteIdLinked = (int)$row['REQUISITE_ID'];
if ($requisiteIdLinked > 0 && isset($row['BANK_DETAIL_ID']) && $row['BANK_DETAIL_ID'] > 0)
$bankDetailIdLinked = (int)$row['BANK_DETAIL_ID'];
}
unset($row);
if ($requisiteIdLinked > 0)
{
break;
}
}
else if (self::checkEntityType($entityTypeId))
{
$settings = $this->loadSettings($entityTypeId, $entityId);
if (is_array($settings))
{
if (isset($settings['REQUISITE_ID_SELECTED']))
{
$requisiteIdLinked = (int)$settings['REQUISITE_ID_SELECTED'];
if ($requisiteIdLinked < 0)
$requisiteIdLinked = 0;
}
if (isset($settings['BANK_DETAIL_ID_SELECTED']))
{
$bankDetailIdLinked = (int)$settings['BANK_DETAIL_ID_SELECTED'];
if ($bankDetailIdLinked < 0)
$bankDetailIdLinked = 0;
}
}
unset($settings);
if ($requisiteIdLinked === 0)
{
$res = $this->getList(
array(
'order' => array('SORT' => 'ASC', 'ID' => 'ASC'),
'filter' => array(
'=ENTITY_TYPE_ID' => $entityTypeId,
'=ENTITY_ID' => $entityId
),
'select' => array('ID'),
'limit' => 1
)
);
if ($row = $res->fetch())
$requisiteIdLinked = (int)$row['ID'];
unset($res, $row);
}
if ($requisiteIdLinked > 0)
{
if ($bankDetailIdLinked === 0)
{
if ($bankDetail === null)
$bankDetail = EntityBankDetail::getSingleInstance();
$res = $bankDetail->getList(
array(
'order' => array('SORT' => 'ASC', 'ID' => 'ASC'),
'filter' => array(
'=ENTITY_TYPE_ID' => CCrmOwnerType::Requisite,
'=ENTITY_ID' => $requisiteIdLinked
),
'select' => array('ID'),
'limit' => 1
)
);
if ($row = $res->fetch())
$bankDetailIdLinked = (int)$row['ID'];
unset($res, $row);
}
break;
}
}
}
}
}
return array('REQUISITE_ID' => $requisiteIdLinked, 'BANK_DETAIL_ID' => $bankDetailIdLinked);
}