- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/entityrequisite.php
- Класс: Bitrix\Crm\EntityRequisite
- Вызов: EntityRequisite::getDefaultMyCompanyRequisiteInfoLinked
public function getDefaultMyCompanyRequisiteInfoLinked($entityList)
{
$mcRequisiteIdLinked = 0;
$mcBankDetailIdLinked = 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('MC_REQUISITE_ID', 'MC_BANK_DETAIL_ID'),
'limit' => 1
)
)->fetch())
{
if (isset($row['MC_REQUISITE_ID']) && $row['MC_REQUISITE_ID'] > 0)
$mcRequisiteIdLinked = (int)$row['MC_REQUISITE_ID'];
if ($mcRequisiteIdLinked > 0 && isset($row['MC_BANK_DETAIL_ID']) && $row['MC_BANK_DETAIL_ID'] > 0)
$mcBankDetailIdLinked = (int)$row['MC_BANK_DETAIL_ID'];
}
unset($row);
if ($mcRequisiteIdLinked > 0)
{
break;
}
}
else if (self::checkEntityType($entityTypeId))
{
$settings = $this->loadSettings($entityTypeId, $entityId);
if (is_array($settings))
{
if (isset($settings['REQUISITE_ID_SELECTED']))
{
$mcRequisiteIdLinked = (int)$settings['REQUISITE_ID_SELECTED'];
if ($mcRequisiteIdLinked < 0)
$mcRequisiteIdLinked = 0;
}
if (isset($settings['BANK_DETAIL_ID_SELECTED']))
{
$mcBankDetailIdLinked = (int)$settings['BANK_DETAIL_ID_SELECTED'];
if ($mcBankDetailIdLinked < 0)
$mcBankDetailIdLinked = 0;
}
}
unset($settings);
if ($mcRequisiteIdLinked === 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())
$mcRequisiteIdLinked = (int)$row['ID'];
unset($res, $row);
}
if ($mcRequisiteIdLinked > 0)
{
if ($mcBankDetailIdLinked === 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' => $mcRequisiteIdLinked
),
'select' => array('ID'),
'limit' => 1
)
);
if ($row = $res->fetch())
$mcBankDetailIdLinked = (int)$row['ID'];
unset($res, $row);
}
break;
}
}
}
}
}
return array('MC_REQUISITE_ID' => $mcRequisiteIdLinked, 'MC_BANK_DETAIL_ID' => $mcBankDetailIdLinked);
}