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
 /**
  * 
  */
 public function outputAction()
 {
     if (!$this->getRequest()->isPost()) {
         $this->_helper->redirector->goToSimple('index');
     }
     $dataReport = $this->_mapper->setData($this->_getAllParams())->report();
     $this->_helper->layout()->disableLayout();
     $this->_helper->viewRenderer->setRender('templates/output', null, true);
     $layoutPath = APPLICATION_PATH . '/modules/report/views/scripts/';
     $viewSpec = new Zend_View();
     $viewSpec->setScriptPath($layoutPath);
     $viewSpec->addHelperPath('App/View/Helpers/', 'App_View_Helper');
     $layoutView = new Zend_View();
     $layoutView->setScriptPath($layoutPath);
     $layoutView->addHelperPath('App/View/Helpers/', 'App_View_Helper');
     $viewSpec->data = $dataReport;
     $path = $this->_getParam('path');
     $title = $this->_getParam('title');
     require_once APPLICATION_PATH . '/../library/HTMLPurifier/HTMLPurifier.auto.php';
     $config = HTMLPurifier_Config::createDefault();
     $purifier = new HTMLPurifier($config);
     $layoutView->title = $title;
     $layoutView->path = $this->view->baseUrl();
     $layoutView->content = $purifier->purify($viewSpec->render($path . '.phtml'));
     //$layoutView->content = $viewSpec->render( $path . '.phtml' );
     if (preg_match('/fefop/i', $path)) {
         $layoutView->department = 'SECRETARIA DE ESTADO PARA A POLÍTICA DE FORMAÇÃO PROFISSIONAL E EMPREGO - FEFOP';
     }
     $reportOutput = $layoutView->render('templates/report.phtml');
     $id = App_General_String::randomHash();
     if (empty($this->_session->reportOutput)) {
         $this->_session->reportOutput = array();
     }
     $this->_session->reportOutput[$id] = $reportOutput;
     $this->_session->dataReport = $dataReport;
     $this->view->content = $reportOutput;
     $this->view->id = $id;
 }
Example #3
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 #4
0
 /**
  *
  * @return boolean 
  */
 protected function _addGraphs()
 {
     $xpath = new DOMXPath($this->_dom);
     $graphs = $xpath->query('//div[@class="graphs"]', $this->_content);
     if (empty($graphs->length)) {
         return false;
     }
     $images = $graphs->item(0)->getElementsByTagName('img');
     foreach ($images as $img) {
         $src = $img->getAttribute('src');
         $src = preg_replace('/^.+image\\/id\\//i', '', $src);
         $src = preg_replace('/\\/image.png$/i', '', $src);
         $contents = App_Cache::load($src);
         $randomName = App_General_String::randomHash();
         $fileName = $this->_tempDir . DIRECTORY_SEPARATOR . $randomName . '.png';
         file_put_contents($fileName, $contents);
         $size = getimagesize($fileName);
         $this->_mainSection->addImage($fileName, array('align' => 'center', 'width' => 675, 'height' => $size[1]));
     }
     return true;
 }
Example #5
0
 /**
  *
  * @return boolean 
  */
 protected function _addGraphs()
 {
     $xpath = new DOMXPath($this->_dom);
     $graphs = $xpath->query('//div[@class="graphs"]', $this->_content);
     if (empty($graphs->length)) {
         return false;
     }
     $images = $graphs->item(0)->getElementsByTagName('img');
     foreach ($images as $img) {
         $src = $img->getAttribute('src');
         $src = preg_replace('/^.+image\\/id\\//i', '', $src);
         $src = preg_replace('/\\/image.png$/i', '', $src);
         $contents = App_Cache::load($src);
         $randomName = App_General_String::randomHash();
         $fileName = $this->_tempDir . DIRECTORY_SEPARATOR . $randomName . '.png';
         file_put_contents($fileName, $contents);
         $size = getimagesize($fileName);
         $position = PHPExcel_Cell::stringFromColumnIndex($this->_startCol) . ($this->_currentRow += 2);
         $objDrawing = new PHPExcel_Worksheet_Drawing();
         $objDrawing->setPath($fileName)->setResizeProportional(true)->setCoordinates($position)->setWorksheet($this->_mainSheet);
         $this->_currentRow += ceil($size[1] / 25) + 4;
     }
     return true;
 }
Example #6
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;
 }