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');