...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/tracking/ad/index/tracelinker.php
- Класс: Bitrix\Crm\Tracking\Ad\Index\TraceLinker
- Вызов: TraceLinker::build
protected function build() { $rows = $this->getTraceSources(); if (!$rows) { return; } $levels = []; foreach ($rows as $row) { $level = (int) $row['LEVEL']; $levels[$level][$row['ID']] = $row['CODE']; } foreach ($levels as $level => $rows) { $children = Tracking\Internals\SourceChildTable::getList([ 'select' => ['ID', 'CODE'], 'filter' => [ '=SOURCE_ID' => $this->sourceId, '=LEVEL' => $level, '=CODE' => array_values($rows), ], ])->fetchAll(); $children = array_combine( array_column($children, 'CODE'), array_column($children, 'ID') ); foreach ($rows as $traceSourceId => $code) { $childId = $children[$code] ?? 0; Tracking\Internals\TraceSourceTable::update($traceSourceId, [ 'SOURCE_CHILD_ID' => $childId, 'PROCESSED' => 1, ]); } } }