<?php
require_once '../app/model/db.class.php';
require_once '../PHPExcel/PHPExcel.php';


  $grado=$_REQUEST['grado'];
  $curso=$_REQUEST['curso'];

//  echo $grado." -- ".$curso;

  $obj = new database();
  $obj->conectar(); $obj->consulta("set names 'utf8'");
  

   $desgrado1=$obj->consulta("select * from grados where codigo='".$grado."';");
   $desgrado = $obj->fetch_assoc($desgrado1);

   $descurso1=$obj->consulta("select * from cursos where codigo='".$curso."' and grado='".$grado."';");
   $descurso = $obj->fetch_assoc($descurso1);

   $desjor1=$obj->consulta("select * from jornadas where codigo='".$descurso['jornada']."';");
   $desjor = $obj->fetch_assoc($desjor1);

   $dessed1=$obj->consulta("select * from sedes where codigo='".$descurso['sede']."';");
   $dessed = $obj->fetch_assoc($dessed1);

    //-----------------------------------------------

    $cadena="select matriculas.codigo, alumnos.p_apellido, alumnos.s_apellido, alumnos.p_nombre, alumnos.s_nombre, profesores.nombres from profesores inner join (cursos inner join (titulares inner join (alumnos inner join matriculas ";
    $cadena.="on alumnos.codigo = matriculas.codigo) on (titulares.grado = matriculas.grado) and (titulares.curso = matriculas.curso)) on (cursos.codigo = matriculas.curso) and (cursos.grado = matriculas.grado)) on profesores.cedula = titulares.profesor ";
    $cadena.="where (((matriculas.grado)='".$grado."') and ((matriculas.curso)='".$curso."') and ((matriculas.estado)='A'))order by p_apellido,s_apellido,p_nombre,s_nombre";

   $resultado=$obj->consulta($cadena);

   $n=$obj->numero_de_filas($resultado); // obtenemos el numero de filas

	if($n> 0 ){

		date_default_timezone_set('America/Mexico_City');

		if (PHP_SAPI == 'cli')
			die('Este archivo solo se puede ver desde un navegador web');

		// Se crea el objeto PHPExcel
		$objPHPExcel = new PHPExcel();

		// Se asignan las propiedades del libro
		$objPHPExcel->getProperties()->setCreator("Codedrinks") //Autor
							 ->setLastModifiedBy("Codedrinks") //Ultimo usuario que lo modific&oacute;
							 ->setTitle("Reporte Excel")
							 ->setSubject("Reporte Excel")
							 ->setDescription("Reporte de alumnos")
							 ->setKeywords("reporte alumnos")
							 ->setCategory("Reporte excel");

		$tituloReporte = "LISTADO DE ALUMNOS";
		$titulosColumnas = array('No.', 'C&oacute;DIGO', 'APELLIDOS Y NOMBRES');

		$objPHPExcel->setActiveSheetIndex(0)
        		    ->mergeCells('A1:D1');

                $dias = array("DOMINGO","LUNES","MARTES","MIERCOLES","JUEVES","VIERNES","S�?BADO");
                $meses = array("ENERO","FEBRERO","MARZO","ABRIL","MAYO","JUNIO","JULIO","AGOSTO","SEPTIEMBRE","OCTUBRE","NOVIEMBRE","DICIEMBRE");


		// Se agregan los titulos del reporte
		$objPHPExcel->setActiveSheetIndex(0)
		            ->setCellValue('A1',  $tituloReporte)
        		    ->setCellValue('A5',  $titulosColumnas[0])
		            ->setCellValue('B5',  $titulosColumnas[1])
        		    ->setCellValue('C5',  $titulosColumnas[2])

                            ->setCellValue('A2',  "SEDE  :".$dessed['descripcion'])
                            ->setCellValue('A3',  "GRADO :".$grado)
                            ->setCellValue('A4',  "CURSO :".$curso)
                            ->setCellValue('C3',  "FECHA :".$dias[date('w')]." ".date('d')."/".$meses[date('n')-1]. "/".date('Y'))
                            ->setCellValue('C4',  "JORNADA:".$desjor['descripcion']);

		//Se agregan los datos de los alumnos
		$i = 6;
                $l=1;
		while ($fila = $obj->fetch_assoc($resultado)) {
			$objPHPExcel->setActiveSheetIndex(0)
        		    ->setCellValue('A'.$i,  $l)
		            ->setCellValue('B'.$i,  $fila['codigo'])
        		    ->setCellValue('C'.$i,  $fila['p_apellido']." ".$fila['s_apellido']." ".$fila['p_nombre']." ".$fila['s_nombre']);

		$i++;
                $l++;
		}

		$estiloTituloReporte = array(
        	'font' => array(
	        'name'      => 'Verdana',
    	        'bold'      => true,
        	'italic'    => false,
                'strike'    => false,
               	'size'      => 10,
	        'color'     => array(
    	        'rgb'       => '000000'
        	)
            ),
	        'fill' => array(
				'type'	=> PHPExcel_Style_Fill::FILL_SOLID,
				'color'	=> array('argb' => 'FFFFFF')
			),
            'borders' => array(
               	'allborders' => array(
                'style' => PHPExcel_Style_Border::BORDER_NONE
               	)
            ),
            'alignment' =>  array(
        			'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
        			'vertical'   => PHPExcel_Style_Alignment::VERTICAL_CENTER,
        			'rotation'   => 0,
        			'wrap'       => TRUE
    		)
        );

		$estiloTituloColumnas = array(
                'font' => array(
                'name'  => 'Arial',
                'bold'  => true,
                'color' => array(
                'rgb'   => '000000'
                )
            ),
            'fill' 	=> array(
			'type'		=> PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR,
			'rotation'   => 90,
        		'startcolor' => array(
            		'rgb' => 'FFFFFF'
        		),
        		'endcolor'   => array(
            		'argb' => 'FFFFFF'
        		)
			),
            'borders' => array(
            	'top'     => array(
                    'style' => PHPExcel_Style_Border::BORDER_MEDIUM ,
                    'color' => array(
                        'rgb' => '000000'
                    )
                ),
                'bottom'     => array(
                    'style' => PHPExcel_Style_Border::BORDER_MEDIUM ,
                    'color' => array(
                        'rgb' => '000000'
                    )
                )
            ),
			'alignment' =>  array(
        			'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
        			'vertical'   => PHPExcel_Style_Alignment::VERTICAL_CENTER,
        			'wrap'          => TRUE
    		));

		$estiloInformacion = new PHPExcel_Style();
		$estiloInformacion->applyFromArray(
			array(
           		'font' => array(
                        'name'      => 'Arial',
                        'color'     => array(
                   	'rgb' => '000000'
               	)
           	),
           	'fill' 	=> array(
				'type'		=> PHPExcel_Style_Fill::FILL_SOLID,
				'color'		=> array('argb' => 'FFFFFF')
			),
           	'borders' => array(
               	'left'     => array(
                   	'style' => PHPExcel_Style_Border::BORDER_THIN ,
	                'color' => array(
    	            	'rgb' => '3a2a47'
                   	)
               	)
           	)
        ));

		$objPHPExcel->getActiveSheet()->getStyle('A1:D1')->applyFromArray($estiloTituloReporte);
		$objPHPExcel->getActiveSheet()->getStyle('A5:C5')->applyFromArray($estiloTituloColumnas);
		$objPHPExcel->getActiveSheet()->setSharedStyle($estiloInformacion, "A6:C".($i-1));

                $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(5);
                $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(10);
                $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(50);



		// Se asigna el nombre a la hoja
		$objPHPExcel->getActiveSheet()->setTitle('Alumnos');

		// Se activa la hoja para que sea la que se muestre cuando el archivo se abre
		$objPHPExcel->setActiveSheetIndex(0);
		// Inmovilizar paneles
		//$objPHPExcel->getActiveSheet(0)->freezePane('A4');
//		$objPHPExcel->getActiveSheet(0)->freezePaneByColumnAndRow(0,4);

		// Se manda el archivo al navegador web, con el nombre que se indica (Excel2007)
		header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');

                $nombre_archivo=$grado."_".$curso.".xlsx";


                header('Content-Disposition: attachment;filename='.$nombre_archivo);
		header('Cache-Control: max-age=0');

		$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
		$objWriter->save('php://output');
		exit;

	}
	else{
		print_r('No hay resultados para mostrar');
	}
?>