<?php
	require_once("../../includes/bootstrap2.php");
	$sesion=new sesion();
	$academia=bootstrap::initBd($sesion->get('anio'));
	/** Error reporting */
	error_reporting(E_ALL);
	ini_set('display_errors', true);
	ini_set('display_startup_errors', true);
	date_default_timezone_set('Europe/London');
	
	if (PHP_SAPI == 'cli')
		die('This example should only be run from a Web Browser');
	
	/** Include PHPExcel */
	require_once("../../includes/phpExcel/PHPExcel.php");
	// Create new PHPExcel object
	$objPHPExcel = new PHPExcel(); 
	
	// Set document properties
	$objPHPExcel->getProperties()->setCreator("Academia Web")
								 ->setLastModifiedBy(date('Y-m-d H:m:s'))
								 ->setDescription("Sabana de inasistencias")
								 ->setKeywords("Academia 2013")
								 ->setCategory("Reportes Academia");
	// Add some data
	$iduser=$sesion->get('ac_userid');
	
	$iduser=$sesion->get('ac_userid');
	$configuracion=$sesion->get('configuracion');
	$nombre_grupo=$configuracion['nombres_grupos'];
	
	$grado=$academia->escapar($_GET['grado']); 
	$id_gr=$academia->escapar($_GET['id_gr']); 
	$grupo=$academia->escapar($_GET['grupo'],'int');
	$director=$academia->escapar($_GET['dir']);
	$jornada=$academia->escapar($_GET['jorn']);
	$sede=$academia->escapar(ucwords($_GET['sede'])); 
	$fini=$academia->escapar($_GET['fini']); 
	$ffin=$academia->escapar($_GET['ffin']); 
	
	//echo $sql;
	$i=0;
	$cmps="";
	//$idSede=$_GET['id'];
	
	$hojaActiva=$objPHPExcel->getActiveSheet();
	//$hojaActiva->getDefaultColumnDimension()->setWidth(4);
		
	$dtsColegio=$sesion->get('info_colegio');
	$hojaActiva->setCellValue('A1', $dtsColegio['nombre']);
	$hojaActiva->setCellValue('A2', "NIT. ".  $dtsColegio['nit']);
	$hojaActiva->setCellValue('A3',  empty($dtsColegio['resolucion']) ? $dtsColegio['decreto'] : $dtsColegio['resolucion'] );
	$hojaActiva->setCellValue('A4', 'Sede: '. $sede ." Jornada: ". $jornada ." Grupo: ". $grado  );
	$hojaActiva->setCellValue('A5', 'Sabana de inasistencias desde: '. $fini." A : ". $ffin);

	$sql="SELECT
		aca_estudiantes.numedocumento_est as numdoc,
		aca_asignaturasxgrupos.cod_asigxgrupo AS codmatxgrupo,
		LCASE(CONCAT_WS(' ',aca_estudiantes.apellido1_est, aca_estudiantes.apellido2_est, aca_estudiantes.nombre1_est, aca_estudiantes.nombre2_est)) AS nom_ape,
		(SELECT SUM(aca_inasistencias.num_horas) 
			FROM aca_inasistencias INNER JOIN aca_estxasigxgrupos ON (aca_inasistencias.cod_estxasigxgrupo = aca_estxasigxgrupos.cod_estxasigxgrupos) 
			WHERE (aca_inasistencias.justificada =0 AND aca_estxasigxgrupos.cod_estudiante=aca_estudiantes.cod_estudiante AND aca_estxasigxgrupos.cod_asigxgrupo =codmatxgrupo AND aca_inasistencias.fecha_falta BETWEEN '$fini' AND '$ffin')
		) AS just,
		(SELECT SUM(aca_inasistencias.num_horas) 
			FROM aca_inasistencias INNER JOIN aca_estxasigxgrupos ON (aca_inasistencias.cod_estxasigxgrupo = aca_estxasigxgrupos.cod_estxasigxgrupos) 
			WHERE (aca_inasistencias.justificada =1 AND aca_estxasigxgrupos.cod_estudiante=aca_estudiantes.cod_estudiante AND aca_estxasigxgrupos.cod_asigxgrupo =codmatxgrupo AND aca_inasistencias.fecha_falta BETWEEN '$fini' AND '$ffin')
		) AS injust,
		lower(aca_asignaturas.nom_asi) as nomasi
		FROM
		aca_estudiantes
		INNER JOIN aca_estxasigxgrupos ON aca_estxasigxgrupos.cod_estudiante = aca_estudiantes.cod_estudiante
		INNER JOIN aca_asignaturasxgrupos ON aca_estxasigxgrupos.cod_asigxgrupo = aca_asignaturasxgrupos.cod_asigxgrupo
		INNER JOIN aca_asignaturas ON aca_asignaturasxgrupos.cod_asi = aca_asignaturas.cod_asi
		WHERE aca_asignaturasxgrupos.cod_grupo = $grupo AND aca_asignaturasxgrupos.promediar=1
		ORDER BY nom_ape ASC, aca_asignaturas.pri_asi"; 
	$academia->instruccion($sql,0,1); 
	
	$row=$academia->extraer_registro();
	$xy=1;
	$filOrg=6;
	$colOrg=2;
	$col=$colOrg;
	$fil=$filOrg;
	$auxest=$row['numdoc'];
	$fil++;
	
	$hojaActiva->setCellValueByColumnAndRow(0, $fil, 'N°');
	$hojaActiva->setCellValueByColumnAndRow(1, $fil, 'Nombres y apellidos');
	
	$mayus_nom=$sesion->getVar('configuracion.format_nom');
	$mayus_mat=$sesion->getVar('configuracion.format_mat');
	$fil=$fil+1;
	$hojaActiva->setCellValue('A'.$fil, $xy);
	$hojaActiva->setCellValue('B'.$fil,formatoPalabras($row['nom_ape'], $mayus_nom));
	$dtmat=array();
	
	
	do{
		
		$col=$col+2;
		if($auxest==$row['numdoc']){	
			if($xy==1)
				$dtmat[]=formatoPalabras($row['nomasi'], $mayus_mat);
		}else{
			$fil++;
			$col=$colOrg;
			$hojaActiva->setCellValue('A'.$fil, $xy);
			$hojaActiva->setCellValue('B'.$fil,formatoPalabras($row['nom_ape'], $mayus_nom));
			$xy++;
		}
		$hojaActiva->setCellValueByColumnAndRow($col, $fil, $row['just']);
		$hojaActiva->setCellValueByColumnAndRow($col+1, $fil, $row['injust']);
		$auxest=$row['numdoc'];
	}while($row=$academia->extraer_registro());
	
	$ncol=$colOrg;
	$numcol=count($dtmat);
	for($x=0;$x<count($dtmat); $x++){
		$colaux=$ncol+1;
		$hojaActiva->setCellValueByColumnAndRow($ncol, $filOrg, $dtmat[$x]);
		$hojaActiva->setCellValueByColumnAndRow($ncol, $filOrg+1, "F.J");
		$hojaActiva->setCellValueByColumnAndRow($colaux, $filOrg+1, "F.IJ");
		//combino las dos columnas por materia
		$rango=$dtsLang['mod_forma_nom_cel'][$ncol].$filOrg.':'.$dtsLang['mod_forma_nom_cel'][$colaux].$filOrg;
		$hojaActiva->mergeCells($rango);
    	//aplico acnho a las columnas
		$rangoAB=$dtsLang['mod_forma_nom_cel'][$ncol];
		$hojaActiva->getColumnDimension($rangoAB)->setWidth(4);
		$rangoAB=$dtsLang['mod_forma_nom_cel'][$colaux];
		$hojaActiva->getColumnDimension($rangoAB)->setWidth(4);

		$ncol=$ncol+2;
	}
	
	//FOrmateando encabezado
	$hojaActiva->mergeCells('A1:'.$dtsLang['mod_forma_nom_cel'][$ncol-1].'1');
	$hojaActiva->mergeCells('A2:'.$dtsLang['mod_forma_nom_cel'][$ncol-1].'2');
	$hojaActiva->mergeCells('A3:'.$dtsLang['mod_forma_nom_cel'][$ncol-1].'3');
	$hojaActiva->mergeCells('A4:'.$dtsLang['mod_forma_nom_cel'][$ncol-1].'4');
	$hojaActiva->mergeCells('A5:'.$dtsLang['mod_forma_nom_cel'][$ncol-1].'5');
	
	$hojaActiva->getStyle('A1:'.$dtsLang['mod_forma_nom_cel'][$ncol-1].'5')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
	$hojaActiva->getStyle('A1:'.$dtsLang['mod_forma_nom_cel'][$ncol-1].'5')->getFont()->setBold(true);
	
	$styleArrayMat=array(
		'alignment' => array(
			'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
			'rotation' => 90,
			'wrap'=>TRUE,
		),
		"font"=>array(
			"bold"=>TRUE,
		)
	);
	
	$styleArrayEnc2=array(
		'alignment' => array(
			'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
		),
		"font"=>array(
			"bold"=>TRUE,
		)
	);
	$styleArrayBorders = array(
		'borders' => array(
			'allborders' => array(
				'style' => PHPExcel_Style_Border:: 	BORDER_THIN  ,
				'color' => array('argb' => '0000'),
			),
		),
	);
	
	$rango=$dtsLang['mod_forma_nom_cel'][0].$filOrg.':'.$dtsLang['mod_forma_nom_cel'][$ncol-1].$fil;
	$hojaActiva->getStyle($rango)->applyFromArray($styleArrayBorders);
	
	$rango=$dtsLang['mod_forma_nom_cel'][$colOrg].$filOrg.':'.$dtsLang['mod_forma_nom_cel'][$ncol].$filOrg;
	$hojaActiva->getStyle($rango)->applyFromArray($styleArrayMat);
	
	$rango=$dtsLang['mod_forma_nom_cel'][0].($filOrg+1).':'.$dtsLang['mod_forma_nom_cel'][$ncol].($filOrg+1);
	$hojaActiva->getStyle($rango)->applyFromArray($styleArrayEnc2);
	
	$hojaActiva->getRowDimension($filOrg)->setRowHeight(129);
	$hojaActiva->getColumnDimension('B')->setAutoSize(true);
	
	// Rename worksheet
	$objPHPExcel->getActiveSheet()->setTitle('Sabana de inasistencias');

	// Set active sheet index to the first sheet, so Excel opens this as the first sheet
	$objPHPExcel->setActiveSheetIndex(0);
	
	$nomdoc="Sabana inasistencias $grado.xlsx";
	// Redirect output to a client’s web browser (Excel5)
	header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
	header('Content-Disposition: attachment;filename="'.$nomdoc.'"');
	header('Cache-Control: max-age=0');

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