Example #1
0
    $totalItemQty = isset($progressData['TOTAL_ITEMS']) ? intval($progressData['TOTAL_ITEMS']) : 0;
    if ($totalItemQty <= 0) {
        $totalItemQty = CCrmContact::GetListEx(array(), array('CHECK_PERMISSIONS' => 'N'), array(), false);
    }
    $filter = array('CHECK_PERMISSIONS' => 'N');
    if ($lastItemID > 0) {
        $filter['>ID'] = $lastItemID;
    }
    $dbResult = CCrmContact::GetListEx(array('ID' => 'ASC'), $filter, false, array('nTopCount' => 20), array('ID'));
    $itemIDs = array();
    $itemQty = 0;
    if (is_object($dbResult)) {
        while ($fields = $dbResult->Fetch()) {
            $itemIDs[] = intval($fields['ID']);
            $itemQty++;
        }
    }
    if ($itemQty > 0) {
        CCrmContact::RebuildDuplicateIndex($itemIDs);
        $progressData['TOTAL_ITEMS'] = $totalItemQty;
        $processedItemQty += $itemQty;
        $progressData['PROCESSED_ITEMS'] = $processedItemQty;
        $progressData['LAST_ITEM_ID'] = $itemIDs[$itemQty - 1];
        COption::SetOptionString('crm', '~CRM_REBUILD_CONTACT_DUP_INDEX_PROGRESS', serialize($progressData));
        __CrmContactListEndResonse(array('STATUS' => 'PROGRESS', 'PROCESSED_ITEMS' => $processedItemQty, 'TOTAL_ITEMS' => $totalItemQty, 'SUMMARY' => GetMessage('CRM_CONTACT_LIST_REBUILD_DUPLICATE_INDEX_PROGRESS_SUMMARY', array('#PROCESSED_ITEMS#' => $processedItemQty, '#TOTAL_ITEMS#' => $totalItemQty))));
    } else {
        COption::RemoveOption('crm', '~CRM_REBUILD_CONTACT_DUP_INDEX');
        COption::RemoveOption('crm', '~CRM_REBUILD_CONTACT_DUP_INDEX_PROGRESS');
        __CrmContactListEndResonse(array('STATUS' => 'COMPLETED', 'PROCESSED_ITEMS' => $processedItemQty, 'TOTAL_ITEMS' => $totalItemQty, 'SUMMARY' => GetMessage('CRM_CONTACT_LIST_REBUILD_DUPLICATE_INDEX_COMPLETED_SUMMARY', array('#PROCESSED_ITEMS#' => $processedItemQty))));
    }
}