- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/timeline/entity/note.php
- Класс: Bitrix\Crm\Timeline\Entity\NoteTable
- Вызов: NoteTable::loadForItems
static function loadForItems(array $items, int $itemType): array
{
if (empty($items))
{
return $items;
}
$itemIds = array_column($items, 'ID');
$notes = NoteTable::query()
->addSelect('*')
->whereIn('ITEM_ID', $itemIds)
->where('ITEM_TYPE', $itemType)
->fetchAll()
;
$noteItemIds = array_column($notes, 'ITEM_ID');
$notesMap = array_combine($noteItemIds, $notes);
$userIDs = array_column($notes, 'UPDATED_BY_ID');
$users = Container::getInstance()->getUserBroker()->getBunchByIds($userIDs);
foreach ($items as $id => $item)
{
$itemId = $item['ID'];
$note = $notesMap[$itemId] ?? null;
if ($note)
{
$items[$id]['NOTE'] = [
'ID' => (int)$note['ID'],
'ITEM_TYPE' => (int)$note['ITEM_TYPE'],
'ITEM_ID' => (int)$note['ITEM_ID'],
'TEXT' => $note['TEXT'],
'UPDATED_BY' => $users[$note['UPDATED_BY_ID']],
];
}
}
return $items;
}