Example #1
0
 /**
  *
  * @return array
  */
 public function areaReport()
 {
     $rows = $this->selectGraduated();
     $data = array('MANE' => 0, 'FETO' => 0, 'total' => 0);
     $schoolData = array('total' => 0, 'MANE' => 0, 'FETO' => 0, 'porcent' => 0);
     $areaScholarity = array();
     foreach ($rows as $row) {
         $gender = trim($row['gender']);
         $area = trim($row['scholarity_area']);
         if (!array_key_exists($area, $areaScholarity)) {
             $areaScholarity[$area] = $schoolData;
         }
         $areaScholarity[$area][$gender]++;
         $areaScholarity[$area]['total']++;
         $data['total']++;
         $data[$gender]++;
     }
     foreach ($areaScholarity as $area => $row) {
         $areaScholarity[$area]['porcent'] = round(100 * $row['total'] / $data['total'], 2);
     }
     $data['rows'] = $areaScholarity;
     if (!empty($data['rows'])) {
         $pie = array('series' => array(), 'labels' => array());
         $column = array('series' => array(), 'labels' => array(), 'names' => array());
         $man = array();
         $woman = array();
         $view = Zend_Layout::getMvcInstance()->getView();
         foreach ($data['rows'] as $area => $row) {
             $area = App_General_String::addBreakLine($view->truncate(ucfirst(strtolower($area)), 20), 1);
             $pie['series'][] = $row['total'];
             $pie['labels'][] = $area;
             $man[] = $row['MANE'];
             $woman[] = $row['FETO'];
             $column['labels'][] = $area;
         }
         $column['series'] = array($man, $woman);
         $column['names'] = array('MANE', 'FETO');
         $scaleConfig = array('LabelRotation' => 90, 'XMargin' => 20);
         $data['graph'][App_General_String::randomHash()] = App_Util_Chart::columnChart($column, 'Graduadu liu husi Area / Seksu', $scaleConfig);
     }
     return $data;
 }
Example #2
0
 /**
  * 
  * @return array
  */
 public function schoolQuarterReport()
 {
     $rows = $this->getFilteredRows($this->_data);
     $gender = array('mane' => 0, 'feto' => 0);
     $quarters = array_combine(range(1, 4), array_fill(0, 4, $gender));
     $data = array('total' => 0, 'totals' => $quarters, 'rows' => array());
     foreach ($rows as $row) {
         $school = empty($row['max_level_scholarity']) ? 'LA IHA' : $row['max_level_scholarity'];
         if (!array_key_exists($school, $data['rows'])) {
             $data['rows'][$school] = array('quarters' => $quarters, 'total' => 0);
         }
         $quarter = ceil($row['month_registration'] / 3);
         $gender = strtolower(trim($row['gender']));
         $data['total']++;
         $data['totals'][$quarter][$gender]++;
         $data['rows'][$school]['total']++;
         $data['rows'][$school]['quarters'][$quarter][$gender]++;
     }
     $column = array('series' => array(), 'labels' => array(), 'names' => array());
     $quarters = array(1 => array(), 2 => array(), 3 => array(), 4 => array());
     foreach ($data['rows'] as $level => $row) {
         $column['labels'][] = $level;
         foreach ($row['quarters'] as $q => $value) {
             $quarters[$q][] = $value['mane'] + $value['feto'];
         }
     }
     $column['series'] = $quarters;
     $column['names'] = array(1 => 'QTR1', 'QTR2', 'QTR3', 'QTR4');
     $data['graph'][App_General_String::randomHash()] = App_Util_Chart::columnChart($column, 'Nivel Edukasaun / Tinan ' . $this->_data['year']);
     return $data;
 }
Example #3
0
 /**
  *
  * @param array $data
  * @param string $title
  * @return resource
  */
 public static function columnChart(array $data, $title, $scaleConfig = array(), $legendConfig = array())
 {
     $fontsChart = APPLICATION_PATH . '/../library/pChart/fonts/verdana.ttf';
     App_Util_Chart::loadClass(array('pData', 'pDraw', 'pImage'));
     $myData = new pData();
     foreach ($data['series'] as $c => $serie) {
         $serieId = 'Serie' . $c;
         $myData->addPoints($serie, $serieId);
         $myData->setSerieDescription($serieId, $data['names'][$c]);
         $myData->setSerieOnAxis($serieId, 0);
     }
     $myData->addPoints($data['labels'], 'Absissa');
     $myData->setAbscissa('Absissa');
     $myData->setAxisPosition(0, AXIS_POSITION_LEFT);
     $myPicture = new pImage(700, 500, $myData);
     $Settings = array("R" => 250, "G" => 250, "B" => 250);
     $myPicture->drawFilledRectangle(0, 0, self::$_width, self::$_height, $Settings);
     $myPicture->drawRectangle(0, 0, self::$_width - 1, self::$_height - 1, array("R" => 0, "G" => 0, "B" => 0));
     $myPicture->setFontProperties(array("FontName" => $fontsChart . "verdana.ttf", "FontSize" => 14));
     $myPicture->setGraphArea(50, 50, self::$_width - 1, self::$_height - 100);
     $myPicture->setFontProperties(array("R" => 0, "G" => 0, "B" => 0, "FontName" => $fontsChart, "FontSize" => 10));
     $Settings = array("Pos" => SCALE_POS_LEFTRIGHT, "Mode" => SCALE_MODE_START0, "LabelingMethod" => LABELING_ALL, "GridR" => 255, "GridG" => 255, "GridB" => 255, "GridAlpha" => 50, "TickR" => 0, "TickG" => 0, "TickB" => 0, "TickAlpha" => 50, "CycleBackground" => 1, "LabelRotation" => 45, "DrawXLines" => 1, "DrawSubTicks" => 1, "SubTickR" => 255, "SubTickG" => 0, "SubTickB" => 0, "SubTickAlpha" => 50, "DrawYLines" => ALL);
     foreach ($scaleConfig as $c => $v) {
         $Settings[$c] = $v;
     }
     $myPicture->drawScale($Settings);
     $Config = array("DisplayValues" => 1, "AroundZero" => 1, "Gradient" => TRUE, "GradientMode" => GRADIENT_EFFECT_CAN);
     $myPicture->drawBarChart($Config);
     $pos = floor(strlen($title) / 2);
     $start = 350 - $pos * 9;
     $myPicture->setFontProperties(array('FontName' => $fontsChart, 'FontSize' => 14));
     $myPicture->drawText($start, 25, $title, array('R' => 0, 'G' => 0, 'B' => 0));
     $Config = array("FontR" => 0, "FontG" => 0, "FontB" => 0, "FontName" => $fontsChart, "FontSize" => 8, "Margin" => 6, "Alpha" => 30, "BoxSize" => 5, "Style" => LEGEND_NOBORDER, "Mode" => LEGEND_HORIZONTAL);
     foreach ($legendConfig as $c => $v) {
         $Config[$c] = $v;
     }
     $myPicture->drawLegend(480, 40, $Config);
     ob_start();
     imagepng($myPicture->Picture);
     $image = ob_get_clean();
     return $image;
 }
Example #4
0
 /**
  *
  * @return array
  */
 public function educationReport()
 {
     $rows = $this->filterAppliedJob($this->_data);
     $mapperClient = new Report_Model_Mapper_Client();
     $data = $mapperClient->registerSchoolLevel($rows);
     $column = array('series' => array(), 'labels' => array(), 'names' => array());
     $man = array();
     $woman = array();
     foreach ($data['rows'] as $school => $row) {
         $man[] = $row['MANE'];
         $woman[] = $row['FETO'];
         $column['labels'][] = $school;
     }
     $column['series'] = array($man, $woman);
     $column['names'] = array('MANE', 'FETO');
     $data['graph'][App_General_String::randomHash()] = App_Util_Chart::columnChart($column, 'Nivel Eskola / Tinan ' . $this->_data['year']);
     return $data;
 }