...Человеческий поиск в разработке...
- Модуль: 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; }