...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/agent/activity/synchronizeentitycountabledataagent.php
- Класс: Bitrix\Crm\Agent\Activity\SynchronizeEntityCountableDataAgent
- Вызов: SynchronizeEntityCountableDataAgent::processEntityUncompletedActivityTable
private function processEntityUncompletedActivityTable(array $result): array { $limit = $this->getLimit(); $lastId = ($result['lastUncompletedActivityId'] ?? 0); $processedCount = 0; $items = $this->getUncompletedActivityList($lastId, $limit); foreach ($items as $item) { $lastId = (int)$item['ID']; $result['steps']++; $processedCount++; if ( $item['COMPLETED'] || $item['DELETED'] ) // if EntityUncompletedActivityTable contain link to wrong activity { $entityTypeId = (int)$item['ENTITY_TYPE_ID']; $entityId = (int)$item['ENTITY_ID']; if (\CCrmOwnerType::IsDefined($entityTypeId) && $entityId > 0) { (new UncompletedActivity(new ItemIdentifier($entityTypeId, $entityId), (int)$item['RESPONSIBLE_ID'])) ->synchronize(); } continue; } if (!$item['REAL_DEADLINE'] instanceof DateTime) { continue; } if ( $item['MIN_DEADLINE'] instanceof DateTime && $item['MIN_DEADLINE']->getTimestamp() === $item['REAL_DEADLINE']->getTimestamp() ) { continue; } $minDeadline = clone $item['REAL_DEADLINE']; $minDeadline->disableUserTime(); EntityUncompletedActivityTable::update($item['ID'], ['MIN_DEADLINE' => $minDeadline]); } $result['lastUncompletedActivityId'] = $lastId; if ($processedCount < $limit) { $result['currentTable'] = '-'; } return $result; }