• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/sender/rc/service.php
  • Класс: Bitrix\Crm\Integration\Sender\Rc\Service
  • Вызов: Service::getDealWorkerCount
static function getDealWorkerCount($categoryId = null)
{
	if (!self::canUse())
	{
		return null;
	}

	$items = Sender\Entity\Rc::getList([
		'select' => ['MESSAGE_ID'],
		'filter' => [
			'=REITERATE' => 'Y',
			'=STATUS' => Sender\Dispatch\Semantics::getWorkStates(),
			'=MESSAGE_CODE' => 'rc_deal'
		],
		'cache' => ['ttl' => 36000]
	])->fetchAll();

	$fields = Sender\Internals\Model\MessageFieldTable::getList([
		'select' => ['VALUE'],
		'filter'=> [
			'=MESSAGE_ID'=> array_column($items, 'MESSAGE_ID'),
			'=CODE' => 'CATEGORY_ID'
		],
		'cache' => ['ttl' => 36000]
	])->fetchAll();

	return count(
		$categoryId !== null
			? array_filter(
					$fields,
					function ($field) use ($categoryId)
					{
						return mb_strlen($field['VALUE']) && $field['VALUE'] == $categoryId;
					}
				)
			: $fields
	);
}