• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/tracking/internals/phonenumber.php
  • Класс: Bitrix\Crm\Tracking\Internals\PhoneNumberTable
  • Вызов: PhoneNumberTable::getUsingByNumber
static function getUsingByNumber($number)
{
	static $list = null;
	if ($list === null)
	{
		$list = [];
		$rows = static::getList([
			'select' => ['VALUE', 'SUM_USE_CNT' ,'MAX_DATE_USE'],
			'runtime' => [
				new Orm\Fields\ExpressionField('SUM_USE_CNT', 'SUM(%s)', ['USE_CNT']),
				new Orm\Fields\ExpressionField('MAX_DATE_USE', 'MAX(%s)', ['DATE_USE']),
			],
			'group' => ['VALUE'],
			'cache' => ['ttl' => 1]
		])->fetchAll();
		foreach ($rows as $row)
		{
			$rowNumber = Communication\Normalizer::normalizePhone($row['VALUE']);
			$rowNumber = $rowNumber ?: $row['VALUE'];
			$row['VALUE'] = $rowNumber;
			$list[$rowNumber] = $row;
		}
	}

	return [
		'cnt' => isset($list[$number]) ? $list[$number]['SUM_USE_CNT'] : 0,
		'date' => isset($list[$number])
			? (string) $list[$number]['MAX_DATE_USE']
			: null,
	];
}