- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/agent/duplicate/automatic/rebuilduserduplicateindexagent.php
- Класс: Bitrix\Crm\Agent\Duplicate\Automatic\RebuildUserDuplicateIndexAgent
- Вызов: RebuildUserDuplicateIndexAgent::loadUserSettings
protected function loadUserSettings(int $entityTypeId, int $userId): ?AutoSearchUserSettings
{
if (!AutoSearchUserSettings::isEnabled())
{
return null;
}
$userSettings = AutosearchUserSettingsTable::query()
->where('ENTITY_TYPE_ID', $entityTypeId)
->where('USER_ID', $userId)
->setSelect(['*'])
->setLimit(1)
->fetchObject()
;
if (!$userSettings)
{
return null;
}
if (!in_array($userSettings->getStatusId(),
[AutoSearchUserSettings::STATUS_NEW, AutoSearchUserSettings::STATUS_INDEX_REBUILDING], true))
{
return null;
}
if (!AutoSearchUserSettings::hasAccess($userSettings->getEntityTypeId(), $userSettings->getUserId()))
{ // if user has not enough rights, check him tomorrow again:
$userSettings->setNextExecTime((new DateTime())->add('1 day'));
if ($userSettings->getStatusId() === AutoSearchUserSettings::STATUS_INDEX_REBUILDING)
{
$userSettings->setStatusId(AutoSearchUserSettings::STATUS_NEW);
}
$userSettings->save();
return null;
}
return $userSettings;
}