<?php
ini_set("memory_limit","800M");

class PdfController extends Zend_Controller_Action
{
	
                   
public function printAction()
    {
    		
			//$this->_helper->viewRenderer->setNoRender();
      	$this->_helper->layout->disableLayout();
			$request = $this->getRequest();
				
				$unionFilter = $request->getParam("unionid");
				
		$order = $_GET["order"][0]["dir"];
		$column = $_GET["order"][0]["column"];
		switch ($column) {
			case 0 :
				$column = 'FirstName';
				break;
			case 1 :
				$column = 'FirstName';
				break;
			case 2 :
				$column = 'un_name';

				break;
			case 3 :
				$column = 'Email';

				break;
			case 4 :
				$column = 'TypeName';

				break;
			case 5 :
				$column = 'Mobile';
				break;
			default :
				$column = 'FirstName';
				break;
		}
				$searchSQL = null;
				@$search = $request->getParam("search");
				if($search){
					$searchSQL = $search;
				}
				
				$type = $request -> getParam("type") ;
				$title = $request -> getParam("title") ;
				$role = $request -> getParam("role") ;
				$dbUsers = new Model_DbTable_Profile;
				if($title ==2){
			$role=0;
		}
		 		$list = $dbUsers->listUsers($order, $column, $searchSQL, $unionFilter, $type, $title, $role);
				
				
				if($request->getParam("current")==1){
					
				
				$paginator = new Zend_Paginator(new Zend_Paginator_Adapter_Array($list->toArray()));
				$paginator->setCurrentPageNumber($request->getParam("page")+1);
				$paginator->setItemCountPerPage($request->getParam("length"));
				$this->view->assign("Data",$paginator);
				}else{
					$this->view->assign("Data",$list);
				}
				
					$this->view->assign("Start",$request->getParam("start")+1);
				
				$this->view->assign("Total",count($list));
				
				
				if($unionFilter>0){
					$UnionsDB = new Model_DbTable_Unions;
					$getUnion = $UnionsDB->getName($unionFilter);
					$this->view->assign("Personnel","All Personnel for ".$getUnion["un_name"]);
				}else{
					$this->view->assign("Personnel","All Personnel");
				}
			



			
		}
	
public function excelAction()
    {
    		try{
			$this->_helper->viewRenderer->setNoRender();
      	$this->_helper->layout->disableLayout();
			$request = $this->getRequest();
				
				$unionFilter = $request->getParam("unionid");
				
		$order = $_GET["order"][0]["dir"];
		$column = $_GET["order"][0]["column"];
		switch ($column) {
			case 0 :
				$column = 'FirstName';
				break;
			case 1 :
				$column = 'FirstName';
				break;
			case 2 :
				$column = 'un_name';

				break;
			case 3 :
				$column = 'Email';

				break;
			case 4 :
				$column = 'TypeName';

				break;
			case 5 :
				$column = 'Mobile';
				break;
			default :
				$column = 'FirstName';
				break;
		}
				$searchSQL = null;
				@$search = $request->getParam("search");
				if($search){
					$searchSQL = $search;
				}
				
				$type = $request -> getParam("type") ;
				$title = $request -> getParam("title") ;
				$role = $request -> getParam("role") ;
				$dbUsers = new Model_DbTable_Profile;
				if($title ==2){
			$role=0;
		}
		 		$list = $dbUsers->listUsers($order, $column, $searchSQL, $unionFilter, $type, $title, $role);
				
				
				if($request->getParam("current")==1){
					
				
				$paginator = new Zend_Paginator(new Zend_Paginator_Adapter_Array($list->toArray()));
				$paginator->setCurrentPageNumber($request->getParam("page")+1);
				$paginator->setItemCountPerPage($request->getParam("length"));
				
						$this->generateExcel($paginator);
				}else{
						$this->generateExcel($list);
				}
				}catch(Exception $e){
					echo "<pre>";
					print_r($e);
					exit;
				}
			
		}
		
		
			private function generateExcel($list){
			
			if (PHP_SAPI == 'cli')
					die('This example should only be run from a Web Browser');
				
				/** Include PHPExcel */
				require_once  'Classes/PHPExcel.php';
				
				
				// Create new PHPExcel object
				$objPHPExcel = new PHPExcel();
				
				// Set document properties
				$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
											 ->setLastModifiedBy("Maarten Balliauw")
											 ->setTitle("Office 2007 XLSX Test Document")
											 ->setSubject("Office 2007 XLSX Test Document")
											 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
											 ->setKeywords("office 2007 openxml php")
											 ->setCategory("Test result file");
				
				
				// Add some data
				$objPHPExcel->setActiveSheetIndex(0)
				            ->setCellValue('A1', '#')
				            ->setCellValue('B1', 'Full Name')
				            ->setCellValue('C1', 'Organisation')
				            ->setCellValue('D1', 'E-mail')
										->setCellValue('E1', 'Job Title')
										->setCellValue('F1', 'Mobile')
										;
				# 		 	 	 	 	Last Login
				// Miscellaneous glyphs, UTF-8
				$n =2;
				foreach ($list as $value) {
					$objPHPExcel->setActiveSheetIndex(0)
				            ->setCellValue('A'.$n, $n-1)
				            ->setCellValue('B'.$n, $value["FirstName"].' '.$value["LastName"])
				            ->setCellValue('C'.$n, $value["un_name"])
				            ->setCellValue('D'.$n, $value["Email"])
										->setCellValue('E'.$n, $value["TypeName"])
										->setCellValue('F'.$n, $value["Mobile"])
										;
										$n++;
				}
				
				
				// Rename worksheet
				$objPHPExcel->getActiveSheet()->setTitle('Simple');
				
				
				// Set active sheet index to the first sheet, so Excel opens this as the first sheet
				$objPHPExcel->setActiveSheetIndex(0);
				
				
				// Redirect output to a client’s web browser (Excel5)
				header('Content-Type: application/vnd.ms-excel');
				header('Content-Disposition: attachment;filename="01simple.xls"');
				header('Cache-Control: max-age=0');
				// If you're serving to IE 9, then the following may be needed
				header('Cache-Control: max-age=1');
				
				// If you're serving to IE over SSL, then the following may be needed
				header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
				header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
				header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
				header ('Pragma: public'); // HTTP/1.0
				
				$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
//				$objWriter->save('php://output');
				exit;
		}
	

}
