...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/agent/activity/synchronizeentitycountabledataagent.php
- Класс: Bitrix\Crm\Agent\Activity\SynchronizeEntityCountableDataAgent
- Вызов: SynchronizeEntityCountableDataAgent::resetCounterByEntity
private function resetCounterByEntity($entityTypeId, $entityId): void { $factory = Container::getInstance()->getFactory($entityTypeId); if (!$factory) { return; } if (!$factory->isCountersEnabled()) { return; } $assignedByFiledName = $factory->getEntityFieldNameByMap(Item::FIELD_NAME_ASSIGNED); $categoryIdFieldName = $factory->getEntityFieldNameByMap(Item::FIELD_NAME_CATEGORY_ID); $select = [ Item::FIELD_NAME_ID, ]; if ($factory->isFieldExists(Item::FIELD_NAME_ASSIGNED)) { $select[] = $assignedByFiledName; } if ($factory->isFieldExists(Item::FIELD_NAME_CATEGORY_ID)) { $select[] = $categoryIdFieldName; } $entity = $factory->getDataClass()::query() ->setSelect($select) ->whereIn('ID', $entityId) ->fetch() ; if (!$entity) { return; } $extras = []; if ($factory->isCategoriesEnabled()) { $extras['CATEGORY_ID'] = $entity[$categoryIdFieldName]; } $responsibleId = $entity[$assignedByFiledName]; $counterCodes = EntityCounterManager::prepareCodes( $entityTypeId, EntityCounterType::getAll(true), $extras ); if(!empty($counterCodes)) { EntityCounterManager::reset($counterCodes, [$responsibleId]); EntityCounterManager::resetExcludeUsersCounters($counterCodes, [$responsibleId]); } }