Ejemplo n.º 1
0
 /**
  * Get Pie chart data (non x,y axis)
  */
 public function getHighChartPieData()
 {
     $sum = $this->highchart_sql_query_options['sum'];
     $date_range = HighCharts::explodeDateRange();
     $query = $this->prepareHighChartQuery($date_range['from'], $date_range['to']);
     $base_condition = $query['condition'];
     $base_params = $query['params'];
     $series = $this->highchart_series;
     $series_colors = array();
     $data = isset($series[0]['data']) ? $series[0]['data'] : array();
     $series[0]['type'] = $this->highchart_graph_type;
     $chart_title = $this->highchart_graph_options['title'];
     $series[0]['name'] = !empty($this->highchart_graph_options['default_series_name']) ? $this->highchart_graph_options['default_series_name'] : $chart_title;
     foreach ($data as $k => $element) {
         $condition = !empty($element['condition']) ? $element['condition'] . ' AND ' . $base_condition : $base_condition;
         $params = !empty($element['params']) ? array_merge($element['params'], $base_params) : $base_params;
         $data = $sum ? $this->getSum($sum, $condition, $params) : $this->getTotals($condition, $params);
         $series[0]['data'][$k]['y'] = (int) $data;
         if (isset($series[0]['data'][$k]['condition'])) {
             unset($series[0]['data'][$k]['condition']);
         }
         if (isset($series[0]['data'][$k]['params'])) {
             unset($series[0]['data'][$k]['params']);
         }
         if (isset($series[0]['data'][$k]['color'])) {
             $series_colors[] = $series[0]['data'][$k]['color'];
             unset($series[0]['data'][$k]['color']);
         }
     }
     return array('graph_type' => $this->highchart_graph_type, 'series' => $series, 'subtitle' => !empty($this->highchart_graph_options['subtitle']) ? $this->highchart_graph_options['subtitle'] : HighCharts::getDateRange(), 'title' => $chart_title, 'colors' => $series_colors);
 }