CRM_Utils_JSON::output(array('status' => ($status) ? $oper : $status));
}
- static function getDedupes() {
+ public static function getDedupes() {
$offset = isset($_REQUEST['start']) ? CRM_Utils_Type::escape($_REQUEST['start'], 'Integer') : 0;
$rowCount = isset($_REQUEST['length']) ? CRM_Utils_Type::escape($_REQUEST['length'], 'Integer') : 25;
$searchData = CRM_Utils_Array::value('search', $_REQUEST);
$searchData['value'] = CRM_Utils_Type::escape($searchData['value'], 'String');
- if ($src || !empty($searchData['value']) ) {
+ if ($src || !empty($searchData['value'])) {
$src = $src ? $src : $searchData['value'];
$where[] = " cc1.display_name LIKE '%{$src}%'";
}
$where[] = " (ca2.is_primary = 1 AND ca2.street_address LIKE '%{$dst_street}%')";
}
if (!empty($searchData['value'])) {
- $whereClause = ' ( '.implode(' OR ', $where).' ) ';
+ $whereClause = ' ( ' . implode(' OR ', $where) . ' ) ';
}
else {
if (!empty($where)) {
$whereClause = implode(' AND ', $where);
}
- }
+ }
$whereClause .= $whereClause ? ' AND de.id IS NULL' : ' de.id IS NULL';
if ($selected) {
}
$join .= " LEFT JOIN civicrm_dedupe_exception de ON ( pn.entity_id1 = de.contact_id1 AND pn.entity_id2 = de.contact_id2 )";
-
$select = array(
- 'cc1.contact_type' => 'src_contact_type',
- 'cc1.display_name' => 'src_display_name',
- 'cc1.contact_sub_type'=> 'src_contact_sub_type',
- 'cc2.contact_type' => 'dst_contact_type',
- 'cc2.display_name' => 'dst_display_name',
- 'cc2.contact_sub_type'=> 'dst_contact_sub_type',
- 'ce1.email' => 'src_email',
- 'ce2.email' => 'dst_email',
- 'ca1.postal_code' => 'src_postcode',
- 'ca2.postal_code' => 'dst_postcode',
- 'ca1.street_address' => 'src_street',
- 'ca2.street_address' => 'dst_street'
+ 'cc1.contact_type' => 'src_contact_type',
+ 'cc1.display_name' => 'src_display_name',
+ 'cc1.contact_sub_type' => 'src_contact_sub_type',
+ 'cc2.contact_type' => 'dst_contact_type',
+ 'cc2.display_name' => 'dst_display_name',
+ 'cc2.contact_sub_type' => 'dst_contact_sub_type',
+ 'ce1.email' => 'src_email',
+ 'ce2.email' => 'dst_email',
+ 'ca1.postal_code' => 'src_postcode',
+ 'ca2.postal_code' => 'dst_postcode',
+ 'ca1.street_address' => 'src_street',
+ 'ca2.street_address' => 'dst_street',
);
- if($select) {
+ if ($select) {
$join .= " INNER JOIN civicrm_contact cc1 ON cc1.id = pn.entity_id1";
$join .= " INNER JOIN civicrm_contact cc2 ON cc2.id = pn.entity_id2";
$join .= " LEFT JOIN civicrm_email ce1 ON (ce1.contact_id = pn.entity_id1 AND ce1.is_primary = 1 )";
}
}
$columnDetails = CRM_Utils_Array::value($orderColumnNumber, $_REQUEST['columns']);
- if(!empty($columnDetails)) {
+ if (!empty($columnDetails)) {
switch ($columnDetails['data']) {
- case 'src':
- $whereClause .= " ORDER BY cc1.display_name {$dir}";
- break;
- case 'src_email':
- $whereClause .= " ORDER BY ce1.email {$dir}";
- break;
- case 'src_street':
- $whereClause .= " ORDER BY ca1.street_address {$dir}";
- break;
- case 'src_postcode':
- $whereClause .= " ORDER BY ca1.postal_code {$dir}";
- break;
- case 'dst':
- $whereClause .= " ORDER BY cc2.display_name {$dir}";
- break;
- case 'dst_email':
- $whereClause .= " ORDER BY ce2.email {$dir}";
- break;
- case 'dst_street':
- $whereClause .= " ORDER BY ca2.street_address {$dir}";
- break;
- case 'dst_postcode':
- $whereClause .= " ORDER BY ca2.postal_code {$dir}";
- break;
- default:
- break;
+ case 'src':
+ $whereClause .= " ORDER BY cc1.display_name {$dir}";
+ break;
+
+ case 'src_email':
+ $whereClause .= " ORDER BY ce1.email {$dir}";
+ break;
+
+ case 'src_street':
+ $whereClause .= " ORDER BY ca1.street_address {$dir}";
+ break;
+
+ case 'src_postcode':
+ $whereClause .= " ORDER BY ca1.postal_code {$dir}";
+ break;
+
+ case 'dst':
+ $whereClause .= " ORDER BY cc2.display_name {$dir}";
+ break;
+
+ case 'dst_email':
+ $whereClause .= " ORDER BY ce2.email {$dir}";
+ break;
+
+ case 'dst_street':
+ $whereClause .= " ORDER BY ca2.street_address {$dir}";
+ break;
+
+ case 'dst_postcode':
+ $whereClause .= " ORDER BY ca2.postal_code {$dir}";
+ break;
+
+ default:
+ break;
}
}
CRM_Utils_JSON::output($paperSize);
}
- static function flipDupePairs($prevNextId = NULL) {
+ public static function flipDupePairs($prevNextId = NULL) {
if (!$prevNextId) {
$prevNextId = $_REQUEST['pnid'];
}
$prevNextId = implode(', ', $prevNextId);
$prevNextId = CRM_Utils_Type::escape($prevNextId, 'String');
$query .= "WHERE cpc.id IN ({$prevNextId}) AND cpc.is_selected = 1";
- } else {
+ }
+ else {
$prevNextId = CRM_Utils_Type::escape($prevNextId, 'Positive');
$query .= "WHERE cpc.id = $prevNextId";
}
CRM_Utils_JSON::output($addressVal);
}
- static function toggleDedupeSelect() {
+ public static function toggleDedupeSelect() {
$rgid = CRM_Utils_Type::escape($_REQUEST['rgid'], 'Integer');
$gid = CRM_Utils_Type::escape($_REQUEST['gid'], 'Integer');
$pnid = $_REQUEST['pnid'];
$params = array(
1 => array($isSelected, 'Boolean'),
- 3 => array("$cacheKeyString%", 'String') // using % to address rows with conflicts as well
+ 3 => array("$cacheKeyString%", 'String'), // using % to address rows with conflicts as well
);
//check pnid is_array or integer
| GNU Affero General Public License or the licensing of CiviCRM, |
| see the CiviCRM license FAQ at http://civicrm.org/licensing |
+--------------------------------------------------------------------+
-*/
+ */
/**
*
* $Id$
*
*/
-class CRM_Contact_Page_DedupeMerge extends CRM_Core_Page{
+class CRM_Contact_Page_DedupeMerge extends CRM_Core_Page {
const BATCHLIMIT = 2;
* @return void
* @access public
*/
- function run() {
+ public function run() {
$runner = self::getRunner();
if ($runner) {
// Run Everything in the Queue via the Web.
$runner->runAllViaWeb();
- } else {
+ }
+ else {
CRM_Core_Session::setStatus(ts('Nothing to merge.'));
}
return parent::run();
}
- static function getRunner() {
+ public static function getRunner() {
$rgid = CRM_Utils_Request::retrieve('rgid', 'Positive', $this, FALSE, 0);
$gid = CRM_Utils_Request::retrieve('gid', 'Positive', $this, FALSE, 0);
$action = CRM_Utils_Request::retrieve('action', 'String', CRM_Core_DAO::$_nullObject);
if ($action == CRM_Core_Action::MAP) {
$where = "pn.is_selected = 1";
$isSelected = 1;
- } else {
+ }
+ else {
// else merge all (2)
- $isSelected = 2;
+ $isSelected = 2;
}
$total = CRM_Core_BAO_PrevNextCache::getCount($cacheKeyString, NULL, $where);
// reset merge stats, so we compute new stats
CRM_Dedupe_Merger::resetMergeStats($cacheKeyString);
- for ($i = 1; $i <= ceil($total/self::BATCHLIMIT); $i++) {
+ for ($i = 1; $i <= ceil($total / self::BATCHLIMIT); $i++) {
$task = new CRM_Queue_Task(
- array ('CRM_Contact_Page_DedupeMerge', 'callBatchMerge'),
+ array('CRM_Contact_Page_DedupeMerge', 'callBatchMerge'),
array($rgid, $gid, $mode, TRUE, self::BATCHLIMIT, $isSelected),
- "Processed " . $i*self::BATCHLIMIT . " pair of duplicates out of " . $total
+ "Processed " . $i * self::BATCHLIMIT . " pair of duplicates out of " . $total
);
// Add the Task to the Queue
// Setup the Runner
$urlQry .= "&context=conflicts";
$runner = new CRM_Queue_Runner(array(
- 'title' => ts('Merging Duplicates..'),
- 'queue' => $queue,
- 'errorMode'=> CRM_Queue_Runner::ERROR_ABORT,
- 'onEndUrl' => CRM_Utils_System::url('civicrm/contact/dedupefind', $urlQry, TRUE, NULL, FALSE),
+ 'title' => ts('Merging Duplicates..'),
+ 'queue' => $queue,
+ 'errorMode' => CRM_Queue_Runner::ERROR_ABORT,
+ 'onEndUrl' => CRM_Utils_System::url('civicrm/contact/dedupefind', $urlQry, TRUE, NULL, FALSE),
));
return $runner;
/**
* Collect Mailchimp data into temporary working table.
*/
- static function callBatchMerge(CRM_Queue_TaskContext $ctx, $rgid, $gid = NULL, $mode = 'safe', $autoFlip = TRUE, $batchLimit = 1, $isSelected = 2) {
+ public static function callBatchMerge(CRM_Queue_TaskContext $ctx, $rgid, $gid = NULL, $mode = 'safe', $autoFlip = TRUE, $batchLimit = 1, $isSelected = 2) {
$result = CRM_Dedupe_Merger::batchMerge($rgid, $gid, $mode, $autoFlip, $batchLimit, $isSelected);
return CRM_Queue_Task::TASK_SUCCESS;
}
-}
+}
// when unsetting a value to null, we don't need to validate the type
// https://projectllr.atlassian.net/browse/VGQBMP-20
$set[$field['column_name']] = $value;
- } else {
+ }
+ else {
$set[$field['column_name']] = "%{$count}";
$params[$count] = array($value, $type);
$count++;
CRM_Core_DAO::executeQuery($sql, $params);
}
- static function markConflict($id1, $id2, $cacheKey, $conflicts) {
+ public static function markConflict($id1, $id2, $cacheKey, $conflicts) {
if (empty($cacheKey) || empty($conflicts)) {
return FALSE;
}
*/
public static function retrieve($cacheKey, $join = NULL, $where = NULL, $offset = 0, $rowCount = 0, $select = array()) {
$selectString = 'pn.*';
- if(!empty($select)) {
+ if (!empty($select)) {
$aliasArray = array();
foreach ($select as $column => $alias) {
- $aliasArray[] = $column.' as '.$alias;
+ $aliasArray[] = $column . ' as ' . $alias;
}
- $selectString .= " , ".implode(' , ', $aliasArray);
+ $selectString .= " , " . implode(' , ', $aliasArray);
}
$query = "
SELECT SQL_CALC_FOUND_ROWS {$selectString}
";
$params = array(
1 => array($cacheKey, 'String'),
- 2 => array("{$cacheKey}_conflicts", 'String')
+ 2 => array("{$cacheKey}_conflicts", 'String'),
);
if ($where) {
$extraData[$sfield] = $dao->$sfield;
}
$main[$count] = array(
- 'prevnext_id' => $dao->id,
- 'is_selected' => $dao->is_selected,
- 'entity_id1' => $dao->entity_id1,
- 'entity_id2' => $dao->entity_id2,
+ 'prevnext_id' => $dao->id,
+ 'is_selected' => $dao->is_selected,
+ 'entity_id1' => $dao->entity_id1,
+ 'entity_id2' => $dao->entity_id2,
'data' => $main[$count],
);
$main[$count] = array_merge($main[$count], $extraData);
return $main;
}
-
+
/**
* @param $string
*
$params = array(
1 => array($cacheKey, 'String'),
- 2 => array("{$cacheKey}_conflicts", 'String')
+ 2 => array("{$cacheKey}_conflicts", 'String'),
);
return (int) CRM_Core_DAO::singleValueQuery($query, $params, TRUE, FALSE);
}
* Does a force merge otherwise.
* @param bool $autoFlip to let api decide which contact to retain and which to delete.
* Wether to let api decide which contact to retain and which to delete.
- * @param bool $redirectForPerformance
+ * @param int $batchLimit number of merges to carry out in one batch.
+ * @param int $isSelected if records with is_selected column needs to be processed.
*
* @return array|bool
*/
return CRM_Dedupe_Merger::merge($dupePairs, $cacheParams, $mode, $autoFlip, $redirectForPerformance);
}
- static function updateMergeStats($cacheKeyString, $result = array()) {
+ public static function updateMergeStats($cacheKeyString, $result = array()) {
// gather latest stats
$merged = count($result['merged']);
$skipped = count($result['skipped']);
CRM_Core_BAO_PrevNextCache::setItem($values);
}
- static function resetMergeStats($cacheKeyString) {
+ public static function resetMergeStats($cacheKeyString) {
return CRM_Core_BAO_PrevNextCache::deleteItem(NULL, "{$cacheKeyString}_stats");
}
- static function getMergeStats($cacheKeyString) {
+ public static function getMergeStats($cacheKeyString) {
$stats = CRM_Core_BAO_PrevNextCache::retrieve("{$cacheKeyString}_stats");
if (!empty($stats)) {
$stats = $stats[0];
return $stats;
}
- static function getMergeStatsMsg($cacheKeyString) {
+ public static function getMergeStatsMsg($cacheKeyString) {
$msg = '';
$stats = CRM_Dedupe_Merger::getMergeStats($cacheKeyString);
if (!empty($stats['merged'])) {
$conflicts[$key] = "{$migrationInfo['rows'][$key]['title']}: '{$migrationInfo['rows'][$key]['main']}' vs. '{$migrationInfo['rows'][$key]['other']}'";
}
CRM_Core_BAO_PrevNextCache::markConflict($mainId, $otherId, $cacheKeyString, $conflicts);
- } else {
+ }
+ else {
// delete entry from PrevNextCache table so we don't consider the pair next time
// pair may have been flipped, so make sure we delete using both orders
CRM_Core_BAO_PrevNextCache::deletePair($mainId, $otherId, $cacheKeyString, TRUE);
* @return string
*
*/
- static function encodeDataTable($params, $iTotal, $iFilteredTotal, $selectorElements) {
+ public static function encodeDataTable($params, $iTotal, $iFilteredTotal, $selectorElements) {
$sOutput = '{';
$sOutput .= '"recordsTotal": ' . $iTotal . ', ';
$sOutput .= '"recordsFiltered": ' . $iFilteredTotal . ', ';
return $sOutput;
}
+
}