/** * @param $rev */ public function upgrade_3_4_6($rev) { $modifiedReportIds = array('event/summary', 'activity', 'Mailing/bounce', 'Mailing/clicks', 'Mailing/opened'); $instances = CRM_Core_DAO::executeQuery("SELECT id, form_values, report_id FROM civicrm_report_instance WHERE report_id IN ('" . implode("','", $modifiedReportIds) . "')"); while ($instances->fetch()) { $formValues = unserialize($instances->form_values); switch ($instances->report_id) { case 'event/summary': $eventDates = array('event_start_date_from', 'event_start_date_to', 'event_end_date_from', 'event_end_date_to'); foreach ($eventDates as $date) { if (isset($formValues[$date]) && $formValues[$date] == ' ') { $formValues[$date] = ''; } } break; case 'activity': if (isset($formValues['group_bys'])) { if (is_array($formValues['group_bys'])) { $orderBy = array(); $count = 0; foreach ($formValues['group_bys'] as $col => $isSet) { if (!$isSet) { continue; } $orderBy[++$count] = array('column' => $col, 'order' => 'ASC'); } if (!empty($orderBy)) { $formValues['order_bys'] = $orderBy; } } unset($formValues['group_bys']); } break; case 'Mailing/bounce': case 'Mailing/clicks': case 'Mailing/opened': $formValues['fields']['mailing_name'] = 1; break; } // save updated instance criteria $dao = new CRM_Report_DAO_ReportInstance(); $dao->id = $instances->id; $dao->form_values = serialize($formValues); $dao->save(); $dao->free(); } $bulkEmailActivityType = CRM_Core_DAO::singleValueQuery("\nSELECT v.id\nFROM civicrm_option_value v,\n civicrm_option_group g\nWHERE v.option_group_id = g.id\n AND g.name = %1\n AND g.is_active = 1\n AND v.name = %2", array(1 => array('activity_type', 'String'), 2 => array('Bulk Email', 'String'))); // CRM-8852, reset contact field cache CRM_Core_BAO_Cache::deleteGroup('contact fields'); $upgrade = new CRM_Upgrade_Form(); $upgrade->assign('bulkEmailActivityType', $bulkEmailActivityType); $upgrade->processSQL($rev); }