function postProcess() { // define some stats $activities_total = count($this->_activityHolderIds); $activities_processed = 0; $activities_detected = 0; $activities_fixed = 0; // filter for relevant activities $activity_type_id = (int) CRM_Householdmerge_Logic_Configuration::getCheckHouseholdActivityTypeID(); $activity_status_ids = CRM_Householdmerge_Logic_Configuration::getFixableActivityStatusIDs(); $activity_ids = implode(',', $this->_activityHolderIds); $filter_query = "SELECT id AS activity_id FROM civicrm_activity\n WHERE civicrm_activity.activity_type_id = {$activity_type_id} \n AND civicrm_activity.status_id IN ({$activity_status_ids})\n AND civicrm_activity.id IN ({$activity_ids});"; $filtered_activities = CRM_Core_DAO::executeQuery($filter_query); // go through all activites and try to fix them while ($filtered_activities->fetch()) { $activities_processed += 1; $problem = CRM_Householdmerge_Logic_Problem::extractProblem($filtered_activities->activity_id); if ($problem) { $activities_detected += 1; if ($problem->fix()) { $activities_fixed += 1; } } } // show stats CRM_Core_Session::setStatus(ts('%1 of the %2 selected activities were processed, %3 of them could be fixed.', array(1 => $activities_detected, 2 => $activities_total, 3 => $activities_fixed, 'domain' => 'de.systopia.householdmerge')), ts('%1 Household Problems Fixed', array(1 => $activities_fixed, 'domain' => 'de.systopia.householdmerge')), $activities_fixed > 0 ? 'info' : 'warn'); parent::postProcess(); }