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