EventHandler::renewAutomaticDuplicateIndexAgents

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. EventHandler
  4. renewAutomaticDuplicateIndexAgents
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integrity/volatile/eventhandler.php
  • Класс: Bitrix\Crm\Integrity\Volatile\EventHandler
  • Вызов: EventHandler::renewAutomaticDuplicateIndexAgents
protected function renewAutomaticDuplicateIndexAgents()
{
	foreach (
		AutosearchUserSettingsTable::query()
			->where('STATUS_ID', AutoSearchUserSettings::STATUS_INDEX_REBUILDING)
			->whereIn('ENTITY_TYPE_ID', $this->entityTypeIds)
			->setSelect(['*'])
			->fetchCollection()
		as $settings
	)
	{
		$userId = $settings->getUserId();
		$entityTypeId = $settings->getEntityTypeId();
		$progressData = $settings->getProgressData();
		$selectedTypeIds = $progressData['TYPE_IDS'] ?? [];
		if (!empty(array_intersect($this->volatileTypeIds, $selectedTypeIds)))
		{
			$res = CAgent::GetList(
				['ID' => 'DESC'],
				[
					'MODULE_ID' => 'crm',
					'NAME' => "%Bitrix\\Crm\\Agent\\Duplicate\\Automatic\\"
						. "RebuildUserDuplicateIndexAgent::run($entityTypeId, $userId);",
				]
			);
			if (is_object($res))
			{
				while ($row = $res->Fetch())
				{
					CAgent::Delete((int)$row['ID']);
				}
			}

			$settings->setNextExecTime((new DateTime())->add('20 minutes'));
			$settings->setStatusId(AutoSearchUserSettings::STATUS_NEW);
			$settings->save();
		}
	}
}

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