SyncLogMessageSourceIdAgent::getList

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. SyncLogMessageSourceIdAgent
  4. getList
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/agent/timeline/synclogmessagesourceidagent.php
  • Класс: Bitrix\Crm\Agent\Timeline\SyncLogMessageSourceIdAgent
  • Вызов: SyncLogMessageSourceIdAgent::getList
private function getList(int $lastId): array
{
	$ids = array_column(
		TimelineTable::query()
			->setSelect(['ID'])
			->where('ID', '>', $lastId)
			->where('TYPE_ID', TimelineType::LOG_MESSAGE)
			->whereIn('TYPE_CATEGORY_ID', [LogMessageType::CALL_INCOMING, LogMessageType::OPEN_LINE_INCOMING])
			->whereNot('ASSOCIATED_ENTITY_TYPE_ID', CCrmOwnerType::Activity)
			->setLimit(self::BATCH_LIMIT)
			->setOrder(['ID' => 'ASC'])
			->fetchAll(),
		'ID'
	);
	if (empty($ids))
	{
		return [];
	}

	$items = TimelineTable::query()
		->setSelect(['ID', 'TYPE_CATEGORY_ID', 'SETTINGS'])
		->whereIn('ID', $ids)
		->fetchAll()
	;

	foreach ($items as &$item)
	{
		$key = $item['TYPE_CATEGORY_ID'] == LogMessageType::CALL_INCOMING ? 'SOURCE_ID' : 'SOURCE';
		$item['LOG_MESSAGE_SOURCE_ID'] = $item['SETTINGS']['BASE'][$key] ?? '';

		unset($item['SETTINGS'], $item['TYPE_CATEGORY_ID']);
	}
	unset($item);

	return $items;
}

Добавить комментарий