tieneAcceso()){
header("Location: ".$pag."?error=3");
exit();
}
unset($objValida);
if(!isset($_POST["area"])){
header("Location: ".$pag."?error=0");
exit();
}
//Obtiene profesores
$query = "";
if(!empty($_POST["area"]) && is_numeric($_POST["area"])){
$query .= ":area,";
$area = filter_input(INPUT_POST, "area", FILTER_SANITIZE_NUMBER_INT);//limpia texto
}else{
$query .= "NULL,";
}
if(!empty($_POST["desc"])){
$query .= ":desc,";
$filter_desc = trim(filter_input(INPUT_POST, "desc", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW)));//limpia texto
}else{
$query .= "NULL,";
}
$stmt = $pdo->prepare('Select * from fs_profesoresareahoras(:per, '.$query.' 1, 0, NULL)');//sólo activos
$stmt->bindParam(":per", $_SESSION["periodo_id"]);
if(isset($area)) $stmt->bindParam(":area", $area);
if(isset($filter_desc)) $stmt->bindParam(":desc", $filter_desc);
if(!$stmt->execute()){
print_r($stmt->errorInfo());
//header("Location:".$pag."?error=4");
exit();
}
$profesores_rs = $stmt->fetchAll();
$stmt->closeCursor();
//-----
$defaultConfig = (new Mpdf\Config\ConfigVariables())->getDefaults();
$fontDirs = $defaultConfig['fontDir'];
$defaultFontConfig = (new Mpdf\Config\FontVariables())->getDefaults();
$fontData = $defaultFontConfig['fontdata'];
$mpdf = new \Mpdf\Mpdf([
'mode' => 'utf-8',
'format' => [215, 279],
'margin_top' => 27,
'orientation' => 'P',
'fontDir' => array_merge($fontDirs, [
__DIR__ . '/../../fonts/indivisaFont/ttf',
]),
'fontdata' => $fontData + [
'indivisa-display' => [
'R' => 'IndivisaDisplaySans-Regular.ttf',
],
'indivisa-title' => [
'R' => 'IndivisaDisplaySerif-RegularItalic.ttf',
],
'indivisa-text' => [
'R' => 'IndivisaTextSans-Regular.ttf',
]
],
'default_font' => 'indivisa-text',
]);
$stylesheet = "";
$xtpl = new XTemplate('../tpl/tabla_reportes.tpl.html');
$xtpl->assign("TITULO", "Periodo: ".$_SESSION["periodo_desc"]);
$xtpl->parse("main.titulo");
$xtpl->assign("WIDTH", "10");
$xtpl->assign("TH_TEXTO", "Clave ULSA");
$xtpl->parse("main.header");
$xtpl->assign("WIDTH", "30");
$xtpl->assign("TH_TEXTO", "Profesor");
$xtpl->parse("main.header");
$xtpl->assign("WIDTH", "50");
$xtpl->assign("TH_TEXTO", "Materias");
$xtpl->parse("main.header");
$xtpl->assign("WIDTH", "10");
$xtpl->assign("TH_TEXTO", "Total");
$xtpl->parse("main.header");
//$i=0;
$query = "";
if(isset($area)){
$query .= ' AND "Area_id" = :area';
}
//Obtiene horario del usuario
$stmt = $pdo->prepare('Select * from fs_mihorario(:usr, :per, 3) WHERE "TipoHorario_id" = 3 '.$query);//Obtiene calendario docente
$stmt->bindParam(":per", $_SESSION["periodo_id"]);
if($query != "") $stmt->bindParam(":area", $area);
foreach($profesores_rs as $profesor){
$stmt->bindParam(":usr", $profesor["Usuario_id"]);
if(!$stmt->execute()){
//$t = $stmt->errorInfo();
echo "Ocurrió un error al obtener los horarios de los profesores";
print_r($stmt->errorInfo());
exit();
}
$horario_rs = $stmt->fetchAll();
$materiasArr = array();
if(count($horario_rs) > 0){
//$i++;
for($rs_i = 0; $rs_i < count($horario_rs);){
if((!isset($area) || $area=="" ) || (isset($area) && $area == $horario_rs[$rs_i]["Area_id"])){
$horas = $horario_rs[$rs_i]["Duracion"]/60;
$nombreArr = array();
$key = "";
do{
$nombreArr[] = $horario_rs[$rs_i]["Materia_desc"]." (".$horario_rs[$rs_i]["Carrera_prefijo"].")";
$key .= $horario_rs[$rs_i]["Materia_desc"].$horario_rs[$rs_i]["Carrera_prefijo"];
$rs_i++;
}while($rs_i < count($horario_rs) && date('H:i', strtotime($horario_rs[$rs_i-1]["Hora_inicio"])) == date('H:i', strtotime($horario_rs[$rs_i]["Hora_inicio"])) && $horario_rs[$rs_i]["Dia_id"] == $horario_rs[$rs_i-1]["Dia_id"]);
$materiasArr[] = array("key"=>md5($key), "nombreArr" => $nombreArr, "horas"=>$horas);
}
}
//fusiona horarios
for($ii = 0; $ii < count($materiasArr)-1; $ii++){
for($jj = $ii+1; $jj < count($materiasArr); ){
if($materiasArr[$ii]["key"] == $materiasArr[$jj]["key"]){
$materiasArr[$ii]["horas"] += $materiasArr[$jj]["horas"];
array_splice($materiasArr, $jj, 1);
}else
$jj++;
}
}
/*echo $profesor["Usuario_apellidos"]." ".$profesor["Usuario_nombre"]."
";
print_r($horario_rs); exit();*/
$xtpl->assign("TD_TEXTO", $profesor["Usuario_claveULSA"]);
$xtpl->parse("main.renglon.data.celda.borde");
$xtpl->parse("main.renglon.data.celda");
$xtpl->parse("main.renglon.data");
$xtpl->assign("TD_TEXTO", $profesor["Usuario_apellidos"]." ".$profesor["Usuario_nombre"]);
$xtpl->parse("main.renglon.data.celda.borde");
$xtpl->parse("main.renglon.data.celda");
$xtpl->parse("main.renglon.data");
$sumaHoras = 0;
foreach($materiasArr as $materia){
$xtpl->assign("WIDTH", "80");
$mat_texto = "";
foreach($materia["nombreArr"] as $nombre){
$mat_texto.=$nombre."
";
}
$xtpl->assign("TD_TEXTO", $mat_texto);
$xtpl->parse("main.renglon.data.celda_tabla.renglon.celda");
$xtpl->assign("WIDTH", "20");
$xtpl->assign("TD_TEXTO", sprintf('%0.2f', $materia["horas"])." hrs");
$xtpl->assign("CLASS", "derecha");
$sumaHoras+=$materia["horas"];
$xtpl->parse("main.renglon.data.celda_tabla.renglon.celda.class");
$xtpl->parse("main.renglon.data.celda_tabla.renglon.celda");
$xtpl->parse("main.renglon.data.celda_tabla.renglon");
}
$xtpl->parse("main.renglon.data.celda_tabla.borde");
$xtpl->parse("main.renglon.data.celda_tabla");
$xtpl->parse("main.renglon.data");
$xtpl->assign("TD_TEXTO", sprintf('%0.2f', $sumaHoras)." hrs");
$xtpl->parse("main.renglon.data.celda.borde");
$xtpl->parse("main.renglon.data.celda");
$xtpl->parse("main.renglon.data");
}
$xtpl->parse("main.renglon");
}//foreach prof
$stmt->closeCursor();
$xtpl->parse("main");
//$xtpl->out("main");
$mpdf->SHYlang = 'es';
$mpdf-> SetTitle('Materias de profesores');
$mpdf-> SetAuthor('Facultad de Ingeniería. © Universidad La Salle A.C. '.date("Y").' Todos los derechos Reservados.');
$mpdf->SetHTMLHeader('
');//se pone como fondo
$mpdf->WriteHTML($stylesheet);
$mpdf->WriteHTML($xtpl->text("main"));
$mpdf->Output("materiasprofesor.pdf", 'I');