/** * @param $rows */ public function buildChart(&$rows) { $graphRows = array(); $count = 0; $current_year = $this->_params['yid_value']; $previous_year = $current_year - 1; $previous_two_year = $current_year - 2; $previous_three_year = $current_year - 3; $upto = $current_year - 4; $interval[$previous_year] = $previous_year; $interval[$previous_two_year] = $previous_two_year; $interval[$previous_three_year] = $previous_three_year; $interval["upto_{$upto}"] = "Up To {$upto}"; foreach ($rows as $key => $row) { $display["upto_{$upto}"] = CRM_Utils_Array::value("upto_{$upto}", $display) + CRM_Utils_Array::value("civicrm_upto_{$upto}", $row); $display[$previous_year] = CRM_Utils_Array::value($previous_year, $display) + CRM_Utils_Array::value($previous_year, $row); $display[$previous_two_year] = CRM_Utils_Array::value($previous_two_year, $display) + CRM_Utils_Array::value($previous_two_year, $row); $display[$previous_three_year] = CRM_Utils_Array::value($previous_three_year, $display) + CRM_Utils_Array::value($previous_three_year, $row); } $graphRows['value'] = $display; $config = CRM_Core_Config::Singleton(); $chartInfo = array('legend' => 'Sybunt Report', 'xname' => 'Year', 'yname' => "Amount ({$config->defaultCurrency})"); if ($this->_params['charts']) { // build the chart. CRM_Utils_OpenFlashChart::reportChart($graphRows, $this->_params['charts'], $interval, $chartInfo); $this->assign('chartType', $this->_params['charts']); } }
/** * Build chart. * * @param array $rows */ public function buildChart(&$rows) { $graphRows = array(); if (!empty($this->_params['charts'])) { if (!empty($this->_params['group_bys']['receive_date'])) { $contrib = !empty($this->_params['fields']['total_amount']) ? TRUE : FALSE; $softContrib = !empty($this->_params['fields']['soft_amount']) ? TRUE : FALSE; foreach ($rows as $key => $row) { if ($row['civicrm_contribution_receive_date_subtotal']) { $graphRows['receive_date'][] = $row['civicrm_contribution_receive_date_start']; $graphRows[$this->_interval][] = $row['civicrm_contribution_receive_date_interval']; if ($softContrib && $contrib) { // both contri & soft contri stats are present $graphRows['multiValue'][0][] = $row['civicrm_contribution_total_amount_sum']; $graphRows['multiValue'][1][] = $row['civicrm_contribution_soft_soft_amount_sum']; } elseif ($softContrib) { // only soft contributions $graphRows['multiValue'][0][] = $row['civicrm_contribution_soft_soft_amount_sum']; } else { // only contributions $graphRows['multiValue'][0][] = $row['civicrm_contribution_total_amount_sum']; } } } if ($softContrib && $contrib) { $graphRows['barKeys'][0] = ts('Contributions'); $graphRows['barKeys'][1] = ts('Soft Credits'); $graphRows['legend'] = ts('Contributions and Soft Credits'); } elseif ($softContrib) { $graphRows['legend'] = ts('Soft Credits'); } // build the chart. $config = CRM_Core_Config::Singleton(); $graphRows['xname'] = $this->_interval; $graphRows['yname'] = "Amount ({$config->defaultCurrency})"; CRM_Utils_OpenFlashChart::chart($graphRows, $this->_params['charts'], $this->_interval); $this->assign('chartType', $this->_params['charts']); } } }
function buildChart(&$rows) { $this->_interval = 'events'; $countEvent = NULL; if (CRM_Utils_Array::value('charts', $this->_params)) { foreach ($rows as $key => $value) { if ($value['civicrm_event_id']) { $graphRows['totalParticipants'][] = $rows[$key]['civicrm_line_item_participant_count_count']; $graphRows[$this->_interval][] = substr($rows[$key]['civicrm_event_title'], 0, 12) . "..(" . $rows[$key]['civicrm_event_id'] . ") "; $graphRows['value'][] = $rows[$key]['civicrm_line_item_participant_count_count']; } } if ($rows[$key]['civicrm_line_item_participant_count_count'] == 0) { $countEvent = count($rows); } if (!empty($rows) && $countEvent != 1) { $chartInfo = array('legend' => 'Participants Summary', 'xname' => 'Event', 'yname' => 'Total Participants'); if (!empty($graphRows)) { foreach ($graphRows[$this->_interval] as $key => $val) { $graph[$val] = $graphRows['value'][$key]; } $chartInfo['values'] = $graph; $chartInfo['tip'] = 'Participants : #val#'; $chartInfo['xLabelAngle'] = 20; // build the chart. CRM_Utils_OpenFlashChart::buildChart($chartInfo, $this->_params['charts']); } } } }
function buildChart(&$rows) { $graphRows = array(); $count = 0; $display = array(); $current_year = $this->_params['yid_value']; $previous_year = $current_year - 1; $interval[$previous_year] = $previous_year; $interval['life_time'] = 'Life Time'; foreach ($rows as $key => $row) { $display['life_time'] = CRM_Utils_Array::value('life_time', $display) + $row['civicrm_life_time_total']; $display[$previous_year] = CRM_Utils_Array::value($previous_year, $display) + $row[$previous_year]; } $config = CRM_Core_Config::Singleton(); $graphRows['value'] = $display; $chartInfo = array('legend' => ts('Lybunt Report'), 'xname' => ts('Year'), 'yname' => ts('Amount (%1)', array(1 => $config->defaultCurrency))); if ($this->_params['charts']) { // build chart. require_once 'CRM/Utils/OpenFlashChart.php'; CRM_Utils_OpenFlashChart::reportChart($graphRows, $this->_params['charts'], $interval, $chartInfo); $this->assign('chartType', $this->_params['charts']); } }
/** * @param $rows */ public function buildChart(&$rows) { if (empty($rows)) { return; } $chartInfo = array('legend' => ts('Mail Bounce Report'), 'xname' => ts('Mailing'), 'yname' => ts('Bounce'), 'xLabelAngle' => 20, 'tip' => ts('Mail Bounce: %1', array(1 => '#val#'))); foreach ($rows as $row) { $chartInfo['values'][$row['civicrm_mailing_mailing_name_alias']] = $row['civicrm_mailing_bounce_count']; } // build the chart. CRM_Utils_OpenFlashChart::buildChart($chartInfo, $this->_params['charts']); $this->assign('chartType', $this->_params['charts']); }
/** * @param $rows */ public function buildChart(&$rows) { $this->_interval = 'events'; $countEvent = NULL; if (!empty($this->_params['charts'])) { foreach ($rows as $key => $value) { $graphRows['totalAmount'][] = $graphRows['value'][] = CRM_Utils_Array::value('totalAmount', $rows[$key]); $graphRows[$this->_interval][] = substr($rows[$key]['civicrm_event_title'], 0, 12) . "..(" . $rows[$key]['civicrm_event_id'] . ") "; } if (CRM_Utils_Array::value('totalAmount', $rows[$key]) == 0) { $countEvent = count($rows); } if (!empty($rows) && $countEvent != 1) { $config = CRM_Core_Config::Singleton(); $chartInfo = array('legend' => 'Event Summary', 'xname' => 'Event', 'yname' => "Total Amount ({$config->defaultCurrency})"); if (!empty($graphRows)) { foreach ($graphRows[$this->_interval] as $key => $val) { $graph[$val] = $graphRows['value'][$key]; } $chartInfo['values'] = $graph; $chartInfo['xLabelAngle'] = 20; // build the chart. CRM_Utils_OpenFlashChart::buildChart($chartInfo, $this->_params['charts']); $this->assign('chartType', $this->_params['charts']); } } } }
/** * @param $rows */ public function buildChart(&$rows) { if (empty($rows)) { return; } $criteria = self::getChartCriteria(); $chartInfo = array('legend' => ts('Mail Summary'), 'xname' => ts('Mailing'), 'yname' => ts('Statistics'), 'xLabelAngle' => 20, 'tip' => array()); $plotRate = $plotCount = TRUE; foreach ($rows as $row) { $chartInfo['values'][$row['civicrm_mailing_name']] = array(); if ($plotCount) { foreach ($criteria['count'] as $criteria => $label) { if (isset($row[$criteria])) { $chartInfo['values'][$row['civicrm_mailing_name']][$label] = $row[$criteria]; $chartInfo['tip'][$label] = "{$label} #val#"; $plotRate = FALSE; } elseif (isset($criteria['count'][$criteria])) { unset($criteria['count'][$criteria]); } } } if ($plotRate) { foreach ($criteria['rate'] as $criteria => $label) { if (isset($row[$criteria])) { $chartInfo['values'][$row['civicrm_mailing_name']][$label] = $row[$criteria]; $chartInfo['tip'][$label] = "{$label} #val#"; $plotCount = FALSE; } elseif (isset($criteria['rate'][$criteria])) { unset($criteria['rate'][$criteria]); } } } } if ($plotCount) { $criteria = $criteria['count']; } else { $criteria = $criteria['rate']; } $chartInfo['criteria'] = array_values($criteria); // dynamically set the graph size $chartInfo['xSize'] = count($rows) * 125 + count($rows) * count($criteria) * 40; // build the chart. CRM_Utils_OpenFlashChart::buildChart($chartInfo, $this->_params['charts']); $this->assign('chartType', $this->_params['charts']); }
function postProcess() { $this->_params = $this->controller->exportValues($this->_name); if (empty($this->_params) && $this->_force) { $this->_params = $this->_formValues; } $this->_formValues = $this->_params; $this->processReportMode(); $this->select(); $this->from(); $this->where(); $this->groupBy(); $sql = "{$this->_select} {$this->_from} {$this->_where} {$this->_groupBy}"; $dao = CRM_Core_DAO::executeQuery($sql); $rows = $graphRows = array(); $count = 0; while ($dao->fetch()) { $row = array(); foreach ($this->_columnHeaders as $key => $value) { $row[$key] = $dao->{$key}; } if (!empty($this->_params['charts']) && $row['civicrm_contribution_receive_date_subtotal']) { $graphRows['receive_date'][] = $row['civicrm_contribution_receive_date_start']; $graphRows[$this->_interval][] = $row['civicrm_contribution_receive_date_interval']; $graphRows['value'][] = $row['civicrm_contribution_total_amount_sum']; $count++; } $rows[] = $row; } $this->formatDisplay($rows); $this->assign_by_ref('columnHeaders', $this->_columnHeaders); $this->assign_by_ref('rows', $rows); $this->assign('statistics', $this->statistics($rows)); if (!empty($this->_params['charts'])) { foreach (array('receive_date', $this->_interval, 'value') as $ignore) { unset($graphRows[$ignore][$count - 1]); } // build chart. CRM_Utils_OpenFlashChart::chart($graphRows, $this->_params['charts'], $this->_interval); } parent::endPostProcess(); }
/** * @param $rows */ public function buildChart(&$rows) { $graphRows = array(); $count = 0; $membershipTypeValues = CRM_Member_PseudoConstant::membershipType(); $isMembershipType = CRM_Utils_Array::value('membership_type_id', $this->_params['group_bys']); $isJoiningDate = CRM_Utils_Array::value('join_date', $this->_params['group_bys']); if (!empty($this->_params['charts'])) { foreach ($rows as $key => $row) { if (!($row['civicrm_membership_join_date_subtotal'] && $row['civicrm_membership_membership_type_id'])) { continue; } if ($isMembershipType) { $join_date = CRM_Utils_Array::value('civicrm_membership_join_date_start', $row); $displayInterval = CRM_Utils_Array::value('civicrm_membership_join_date_interval', $row); if ($join_date) { list($year, $month) = explode('-', $join_date); } if (!empty($row['civicrm_membership_join_date_subtotal'])) { switch ($this->_interval) { case 'Month': $displayRange = $displayInterval . ' ' . $year; break; case 'Quarter': $displayRange = 'Quarter ' . $displayInterval . ' of ' . $year; break; case 'Week': $displayRange = 'Week ' . $displayInterval . ' of ' . $year; break; case 'Year': $displayRange = $year; break; } $membershipType = $displayRange . "-" . $membershipTypeValues[$row['civicrm_membership_membership_type_id']]; } else { $membershipType = $membershipTypeValues[$row['civicrm_membership_membership_type_id']]; } $interval[$membershipType] = $membershipType; $display[$membershipType] = $row['civicrm_contribution_total_amount_sum']; } else { $graphRows['receive_date'][] = CRM_Utils_Array::value('civicrm_membership_join_date_start', $row); $graphRows[$this->_interval][] = CRM_Utils_Array::value('civicrm_membership_join_date_interval', $row); $graphRows['value'][] = $row['civicrm_contribution_total_amount_sum']; $count++; } } // build chart. if ($isMembershipType) { $graphRows['value'] = $display; $chartInfo = array('legend' => 'Membership Summary', 'xname' => 'Member Since / Member Type', 'yname' => 'Fees'); CRM_Utils_OpenFlashChart::reportChart($graphRows, $this->_params['charts'], $interval, $chartInfo); } else { CRM_Utils_OpenFlashChart::chart($graphRows, $this->_params['charts'], $this->_interval); } } $this->assign('chartType', $this->_params['charts']); }
function buildChart(&$rows) { if (empty($rows)) { return; } $chartInfo = array('legend' => ts('Mail Opened Report'), 'xname' => ts('Mailing'), 'yname' => ts('Opened'), 'xLabelAngle' => 20, 'tip' => ts('Mail Opened: %1', array(1 => '#val#'))); foreach ($rows as $row) { $chartInfo['values'][$row['civicrm_mailing_name']] = $row['civicrm_mailing_opened_count']; } // build the chart. require_once 'CRM/Utils/OpenFlashChart.php'; CRM_Utils_OpenFlashChart::buildChart($chartInfo, $this->_params['charts']); $this->assign('chartType', $this->_params['charts']); }
function buildChart(&$rows) { $graphRows = array(); $count = 0; if (CRM_Utils_Array::value('charts', $this->_params)) { foreach ($rows as $key => $row) { if ($row['civicrm_contribution_receive_date_subtotal']) { $graphRows['receive_date'][] = $row['civicrm_contribution_receive_date_start']; $graphRows[$this->_interval][] = $row['civicrm_contribution_receive_date_interval']; $graphRows['value'][] = $row['civicrm_contribution_total_amount_sum']; $count++; } } if (CRM_Utils_Array::value('receive_date', $this->_params['group_bys'])) { // build the chart. $config = CRM_Core_Config::Singleton(); $graphRows['xname'] = $this->_interval; $graphRows['yname'] = "Amount ({$config->defaultCurrency})"; CRM_Utils_OpenFlashChart::chart($graphRows, $this->_params['charts'], $this->_interval); $this->assign('chartType', $this->_params['charts']); } } }
function mulitplePieChart(&$rows, $graphData) { foreach ($rows as $index => $row) { $graphData['xlabels'][] = $this->_params['contribution_baseline_interval_value'] . ts(" months to ") . $row['to_date']; $graphData['end_date'][] = $row['to_date']; foreach ($this->_statuses as $status) { $graphData['value'][] = (int) $row[$status]; $graphData['values'][$index][$status] = (int) $row[$status]; } } // build the chart. $graphData['xname'] = 'x'; $config = CRM_Core_Config::Singleton(); $graphData['yname'] = "Renewals : "; $chartInfo = array('legend' => $this->_barChartLegend); $chartInfo['xname'] = ts('Base contribution period'); $chartInfo['yname'] = ts("Number of Donors"); $chartData = CRM_Utils_OpenFlashChart::reportChart($graphData, 'pieChart', $this->_statuses, $chartInfo); $this->assign('chartType', 'pieChart'); $this->assign('chartsData', $graphData['values']); $this->assign('chartsLabels', array('status', 'no. contacts')); $this->assign('chartInfo', $chartInfo); }