• Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/integration/crm/connectors/helper.php
  • Класс: Bitrix\Sender\Integration\Crm\Connectors\Helper
  • Вызов: Helper::getImSqlExpression
static function getImSqlExpression(
	Entity\Query $query,
	$entityDbName = null,
	$entityName = null
)
{
	$codes = Integration\Im\Service::getExcludedChannelCodes();
	if (empty($codes))
	{
		$codes = array('livechat', 'network');
	}

	$column = $entityDbName ? 'CRM_ENTITY_ID' : 'ID';

	$entityTypeName = $entityName ?? mb_strtoupper($query->getEntity()->getName());
	$filterImolSql = "SELECT FM.VALUE " .
		"FROM b_crm_field_multi FM " .
		"WHERE FM.ENTITY_ID = '$entityTypeName' AND FM.ELEMENT_ID = ?#.{$column} " .
		"AND FM.TYPE_ID = 'IM' " .
		"AND FM.VALUE NOT REGEXP '^imol\\\\|(" . implode('|', $codes) . ")' " .
		"ORDER BY FM.ID LIMIT 1";

	return new SqlExpression($filterImolSql, $query->getInitAlias());
}