• Модуль: faceid
  • Путь к файлу: ~/bitrix/modules/faceid/lib/trackingvisitors.php
  • Класс: BitrixFaceidTrackingVisitorsTable
  • Вызов: TrackingVisitorsTable::getCrmInfoByFace
static function getCrmInfoByFace($faceId)
{
	/** @var int[] $faceIds faceId => faceId */
	$faceIds = is_array($faceId) ? array_unique($faceId) : array($faceId);
	$faceIds = array_combine($faceIds, $faceIds);

	$crmRecords = array();

	if (!empty($faceIds))
	{
		// try contacts
		$result = BitrixCrmContactTable::getList(array(
			'select' => array('ID', 'FACE_ID', 'FULL_NAME'),
			'filter' => array(
				'@FACE_ID' => $faceIds
			),
			'order' => array('ID' => 'DESC')
		));

		foreach ($result as $row)
		{
			$crmRecords[$row['FACE_ID']] = array(
				'TYPE' => CCrmOwnerType::Contact,
				'ID' => $row['ID'],
				'TITLE' => $row['FULL_NAME'],
				'URL' => '/crm/contact/show/'.$row['ID'].'/'
			);
			unset($faceIds[$row['FACE_ID']]);
		}
	}

	if (!empty($faceIds))
	{
		// try leads
		$result = BitrixCrmLeadTable::getList(array(
			'select' => array('ID', 'FACE_ID', 'TITLE'),
			'filter' => array(
				'@FACE_ID' => $faceIds
			),
			'order' => array('ID' => 'DESC')
		));

		foreach ($result as $row)
		{
			$crmRecords[$row['FACE_ID']] = array(
				'TYPE' => CCrmOwnerType::Lead,
				'ID' => $row['ID'],
				'TITLE' => $row['TITLE'],
				'URL' => '/crm/lead/show/'.$row['ID'].'/'
			);
			unset($faceIds[$row['FACE_ID']]);
		}
	}

	return is_array($faceId) ? $crmRecords : $crmRecords[$faceId];
}