<?php
  session_start();
  error_reporting(E_ERROR);
  //error_reporting(0);
  
 set_time_limit(0);
  ini_set('memory_limit','256M'); 
  ob_start();
	
  define('__ROOT__', dirname(dirname(__FILE__))); 
 // require_once(__ROOT__.'\siga\html\ClsGeneradorHtml.class.php'); 
 // require_once(__ROOT__.'\siga\Connections\dbms.class.php');
 // require_once(__ROOT__.'\siga\Connections\dbmy.class.php');

   require_once('html/ClsGeneradorHtml.class.php'); 
   require_once('Connections/dbms.class.php');
   require_once('Connections/dbmy.class.php');
	
	extract ($_POST); ///EXTRAE VARIABLES DE POST A VARIABLES SIMPLES CON EL MISMO NOMBRE
	extract ($_GET);

	function celda($letrai,$posi,$letraf,$posf,$valor,$hojaActiva,$tamano,$negrita){
			$hojaActiva->mergeCells($letrai.$posi.':'.$letraf.$posf);
			$hojaActiva->getStyle($letrai.$posi,$letraf.$posf)->getAlignment()->setWrapText(true);
			$hojaActiva->getStyle($letrai.$posi,$letraf.$posf)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
			$hojaActiva->getStyle($letrai.$posi,$letraf.$posf)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
			$hojaActiva->getStyle($letrai.$posi.':'.$letraf.$posf)->getBorders()->getOutline()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
			$hojaActiva->setCellValue($letrai.$posi,utf8_decode($valor));
			$hojaActiva->getStyle($letrai.$posi.':'.$letraf.$posf)->getFont()->setBold($negrita)->setSize($tamano);

																
	}
	function celda1($letrai,$posi,$letraf,$posf,$valor,$hojaActiva,$tamano,$negrita){
			$hojaActiva->mergeCells($letrai.$posi.':'.$letraf.$posf);
			$hojaActiva->getStyle($letrai.$posi,$letraf.$posf)->getAlignment()->setWrapText(true);
			$hojaActiva->getStyle($letrai.$posi,$letraf.$posf)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
			$hojaActiva->getStyle($letrai.$posi,$letraf.$posf)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
			$hojaActiva->getStyle($letrai.$posi.':'.$letraf.$posf)->getBorders()->getOutline()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
			$hojaActiva->setCellValue($letrai.$posi,$valor);
			$hojaActiva->getStyle($letrai.$posi.':'.$letraf.$posf)->getFont()->setBold($negrita)->setSize($tamano);

																
	}
	if (!empty($cmdImprimir)){
		
			//require_once (__ROOT__.'\siga\phpexcel\Classes\PHPExcel\IOFactory.php');
			require_once ('phpexcel/Classes/PHPExcel/IOFactory.php');
         $objPHPExcel = PHPExcel_IOFactory::load("Estadisticas_aprobados_reprobados.xls");	

			$hojaActiva=$objPHPExcel->setActiveSheetIndex(0);
			$bd =new dbms('mysql','no');
	    
			$posinicial = 8;
			$posifinal=8;	
			
			$sql2 = "select * from periodos where id_periodo='$periodo'";
			$bd->EjecutarQuery($sql2);
			$data1=$bd->DataObjeto();
			$descripcion='('.$data1->mes_inicio.'-'.$data1->mes_fin.')';
			$codigo_periodo=$data1->codigo;;
			$tipo_periodo=$data1->tipo;
			$status_periodo=$data1->status;

			// Limpia el record tenporal del estudiante
			if($status_periodo=="CERRADO"){
				$sql = "delete from historico_notas_lapso";
				$bd->EjecutarQuery($sql2);
				 
				// Crea el historico temporal del lapso. 
				$sql = "insert into historico_notas_lapso select * from historico_notas where  id_periodo='$periodo'";
				$bd->EjecutarQuery($sql2);
			}


			$query = "SELECT DISTINCT id_materia, semestre,turno,sede,mencion,nmateria as nombre_materia,id_seccion FROM oferta_academica WHERE id_periodo = '$periodo'
			ORDER By semestre,id_seccion,nmateria";         
			$bd->EjecutarQuery($query);
			$data=$bd->DatosArray();			
			

			// Numero de Filas.
			$totalRows = $bd->count();
							 
			celda1('C',$posinicial,'C',$posifinal,utf8_decode($codigo_periodo)." (".$tipo_periodo.")",$hojaActiva,9,true);
			celda1('AO',$posinicial,'AO',$posifinal,utf8_decode(date("d/m/Y")),$hojaActiva,9,true);

			$posinicial=$posifinal+2;			
			$posifinal=$posifinal+2;
			foreach($data as $clave=>$registro){
					
					 $materia  = $data[$clave]['id_materia'];  
					 $semestre  = $data[$clave]['semestre'];
					 $turno  = $data[$clave]['turno'];
					 $sede=$data[$clave]['sede'];
					 $seccion=$data[$clave]['id_seccion'];
					 $nombre_materia=$data[$clave]['nombre_materia'];;
					 if($turno==1)$nombre_turno="MATUTINO";
					 if($turno==2)$nombre_turno="VESPERTINO";
					 if($turno==4)$nombre_turno="NOCTURNO";
					 $sql2 = "select * from sedes where codigo='$sede'";
					 $bd->EjecutarQuery($sql2);
					 $rstSede=$bd->DataObjeto();
					 $nombre_sede=$rstSede->nombre_sede;
	
					 if($status_periodo=="ABIERTO"){
								// NUMERO DE INSCRITOS
								  $sql_inscritos = "SELECT count(id_alumno)as total FROM inscripciones 
									WHERE 
									inscripciones.id_periodo = '$periodo'
									AND inscripciones.id_materia='$materia'
									AND inscripciones.semestre='$semestre'
									AND inscripciones.id_seccion='$seccion'";
                                                               
								 $bd->EjecutarQuery($sql_inscritos);
								 $rst_inscritos=$bd->DataObjeto();
								 $inscritos = $rst_inscritos->total;
				
				
								$sql_aprobados = "SELECT count(distinct id_alumno)as total FROM inscripciones 
								WHERE 
								inscripciones.id_periodo = '$periodo'
								AND inscripciones.id_materia='$materia'
								AND inscripciones.semestre='$semestre'
								AND inscripciones.id_seccion='$seccion'
								AND nota>=10";
								 $bd->EjecutarQuery($sql_aprobados);
								 $rst_aprobados=$bd->DataObjeto();
								 $aprobados = $rst_aprobados->total;
					
								// APLAZADOS
										// APLAZADOS
									 $sql_aplazados = "SELECT count(distinct id_alumno)as total FROM inscripciones 
									 WHERE 
									 inscripciones.id_periodo = '$periodo'
								AND inscripciones.id_materia='$materia'
								AND inscripciones.semestre='$semestre'
								AND inscripciones.id_seccion='$seccion'
								AND nota<10";								 
								 $bd->EjecutarQuery($sql_aplazados);
								 $rst_aplazados=$bd->DataObjeto();
								 $aplazados = $rst_aplazados->total;

					}else{
					
					
								 // NUMERO DE INSCRITOS
								 $sql_inscritos = "SELECT count(id_alumno)as total FROM historico_notas 
								WHERE 
								historico_notas.id_periodo = '$periodo'
								AND historico_notas.id_materia='$materia'
								AND historico_notas.semestre='$semestre'
								AND historico_notas.id_seccion='$seccion'";

								 $bd->EjecutarQuery($sql_inscritos);
								 $rst_inscritos=$bd->DataObjeto();
								 $inscritos = $rst_inscritos->total;
					
					
									 $sql_aprobados = "SELECT count(distinct id_alumno)as total FROM historico_notas_lapso 
									 WHERE 
									 historico_notas_lapso.id_periodo = '$periodo'
								AND historico_notas_lapso.id_materia='$materia'
								AND historico_notas_lapso.semestre='$semestre'
								AND historico_notas_lapso.id_seccion='$seccion'
								AND nota>=10";
 
								 $bd->EjecutarQuery($sql_aprobados);
								 $rst_aprobados=$bd->DataObjeto();
								 $aprobados = $rst_aprobados->total;

								// APLAZADOS
									 $sql_aplazados = "SELECT count(distinct id_alumno)as total FROM historico_notas_lapso 
									 WHERE 
									 historico_notas_lapso.id_periodo = '$periodo'
								AND historico_notas_lapso.id_materia='$materia'
								AND historico_notas_lapso.semestre='$semestre'
								AND historico_notas_lapso.id_seccion='$seccion'
								AND nota<10";
								 $bd->EjecutarQuery($sql_aplazados);
								 $rst_aplazados=$bd->DataObjeto();
								 $aplazados = $rst_aplazados->total;
							
					}
					 $smc = $smc + 1; 
					 // Aqui se agregan las variables formateadas al array 
					$paprobados=($aprobados*100)/$inscritos;
					$paplazados=($aplazados*100)/$inscritos;
					celda1('A',$posinicial,'A',$posifinal,$smc,$hojaActiva,8,false);
					celda1('B',$posinicial,'B',$posifinal,utf8_decode($nombre_sede),$hojaActiva,8,false);
					celda1('C',$posinicial,'C',$posifinal,utf8_decode($turno),$hojaActiva,8,false);
					celda1('J',$posinicial,'J',$posifinal,utf8_decode($semestre),$hojaActiva,8,false);
					celda1('K',$posinicial,'K',$posifinal,utf8_decode($seccion),$hojaActiva,8,false);
					celda1('L',$posinicial,'N',$posifinal,$nombre_materia,$hojaActiva,8,false);
					celda1('O',$posinicial,'O',$posifinal,utf8_decode($inscritos),$hojaActiva,8,false);
					celda1('AH',$posinicial,'AH',$posifinal,utf8_decode($aprobados),$hojaActiva,8,false);
					celda1('AI',$posinicial,'AI',$posifinal,round($paprobados,2),$hojaActiva,8,false);
					celda1('AO',$posinicial,'AO',$posifinal,utf8_decode($aplazados),$hojaActiva,8,false);
					celda1('AP',$posinicial,'AP',$posifinal,round($paplazados,2),$hojaActiva,8,false);
	
				   $posinicial=$posifinal+1;			
					$posifinal=$posifinal+1;
			}	

			//celda1('J',$posinicial,'M',$posifinal,$data[$clave]['mencion'],$hojaActiva,8,false);
			//celda1('N',$posinicial,'AH',$posifinal,$data[$clave]['Sede'],$hojaActiva,8,false);
			//celda1('AI',$posinicial,'AO',$posifinal,$data[$clave]['total'],$hojaActiva,8,false);

								
																 
							 
			//ob_get_flush();
				ob_end_clean();
    
    
    
					// Redirect output to a clients web browser (Excel5)
					header('Content-Type: application/vnd.ms-excel;charset=utf-8');
					header('Content-Disposition: attachment;filename="Estadisticas de Inscritos.xls"');
					header('Cache-Control: max-age=0');

					$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
					///$objWriter->save('./pdf_files/ICR_'.$mes.'-'.$ano.'.xls');
					$objWriter->save('php://output');
	}else{	

		$ClsGeneradorHtml=new ClsGeneradorHtml("","");
		$forma= $ClsGeneradorHtml->Pagina_Top("Impresion de Estadisticas de Inscritos","",$script);
		echo $forma;
		echo $ClsGeneradorHtml->Pagina_Inicio_Body();
		 echo "<FORM  method='POST' name='frmcerrar' target='_self' title='Cerrar'>
					<center>
						 <INPUT TYPE='SUBMIT'  name='cmdImprimir' value='Imprimir' align='middle'   title='Generar' >
						<INPUT TYPE='SUBMIT'   name='cmdCerrar' value='Cerrar' align='middle'  onClick='window.close();' title='Cerrar' >
			  </center>
			 </FORM>";	
		echo $ClsGeneradorHtml->Pagina_Fin_Body();
		echo $ClsGeneradorHtml->Pagina_Fin_Html();
		

	}		
?>
