$totalItemQty = isset($progressData['TOTAL_ITEMS']) ? intval($progressData['TOTAL_ITEMS']) : 0; if ($totalItemQty <= 0) { $totalItemQty = CCrmDeal::GetListEx(array(), array('CHECK_PERMISSIONS' => 'N'), array(), false); } $filter = array('CHECK_PERMISSIONS' => 'N'); if ($lastItemID > 0) { $filter['>ID'] = $lastItemID; } $dbResult = CCrmDeal::GetListEx(array('ID' => 'ASC'), $filter, false, array('nTopCount' => 20), array('ID')); $itemIDs = array(); $itemQty = 0; if (is_object($dbResult)) { while ($fields = $dbResult->Fetch()) { $itemIDs[] = (int) $fields['ID']; $itemQty++; } } if ($itemQty > 0) { CCrmDeal::RebuildStatistics($itemIDs); $progressData['TOTAL_ITEMS'] = $totalItemQty; $processedItemQty += $itemQty; $progressData['PROCESSED_ITEMS'] = $processedItemQty; $progressData['LAST_ITEM_ID'] = $itemIDs[$itemQty - 1]; COption::SetOptionString('crm', '~CRM_REBUILD_DEAL_STATISTICS_PROGRESS', serialize($progressData)); __CrmDealListEndResonse(array('STATUS' => 'PROGRESS', 'PROCESSED_ITEMS' => $processedItemQty, 'TOTAL_ITEMS' => $totalItemQty, 'SUMMARY' => GetMessage('CRM_DEAL_LIST_REBUILD_STATISTICS_PROGRESS_SUMMARY', array('#PROCESSED_ITEMS#' => $processedItemQty, '#TOTAL_ITEMS#' => $totalItemQty)))); } else { COption::RemoveOption('crm', '~CRM_REBUILD_DEAL_STATISTICS'); COption::RemoveOption('crm', '~CRM_REBUILD_DEAL_STATISTICS_PROGRESS'); __CrmDealListEndResonse(array('STATUS' => 'COMPLETED', 'PROCESSED_ITEMS' => $processedItemQty, 'TOTAL_ITEMS' => $totalItemQty, 'SUMMARY' => GetMessage('CRM_DEAL_LIST_REBUILD_STATISTICS_COMPLETED_SUMMARY', array('#PROCESSED_ITEMS#' => $processedItemQty)))); } }