• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/order/matcher/bankdetailmatcher.php
  • Класс: Bitrix\Crm\Order\Matcher\BankDetailMatcher
  • Вызов: BankDetailMatcher::getEntitiesToMatch
protected function getEntitiesToMatch()
{
	$bankDetails = [];

	$requisites = $this->getRequisites();

	foreach ($this->properties as $property)
	{
		$settings = $property['SETTINGS'];

		if (!empty($settings['BD_NAME']))
		{
			$bankDetailHash = $this->getEntityHash($settings);

			if (!isset($bankDetails[$bankDetailHash]) || !is_array($bankDetails[$bankDetailHash]))
			{
				$requisiteId = null;

				foreach ($requisites as $requisite)
				{
					if (
						$settings['RQ_NAME'] === $requisite['NAME']
						&& (int)$settings['RQ_PRESET_ID'] === (int)$requisite['PRESET_ID']
					)
					{
						$requisiteId = $requisite['ID'];
						break;
					}
				}

				if (empty($requisiteId))
				{
					$result = $this->createBlankRequisite($settings);

					if ($result->isSuccess())
					{
						$requisiteId = $result->getId();
					}
					else
					{
						continue;
					}
				}

				$bankDetails[$bankDetailHash] = [
					'NAME' => $settings['BD_NAME'],
					'COUNTRY_ID' => $settings['BD_COUNTRY_ID'],
					'ENTITY_ID' => $requisiteId,
					'ENTITY_TYPE_ID' => \CCrmOwnerType::Requisite
				];
			}

			$bankDetails[$bankDetailHash][$property['CRM_FIELD_CODE']] = $property['VALUE'];
		}
	}

	return array_values($bankDetails);
}