123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389 |
- <?php
- setlocale(LC_TIME, 'es_MX.UTF-8');
- require_once("../include/nocache.php");
- require_once("../include/constantes.php");
- require_once("../include/bd_pdo.php");
- require_once("../include/util.php");
- require_once("../classes/ValidaSesion.php");
- require_once("../classes/MainMenu.php");
- include_once('../include/xTemplate/xtemplate.class.php'); // including mpdf.php
- $menu = 12;
- $submenu = 122;
- $pag = "reporte_alumnoscardex.php";
- //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
- $objSesion = new ValidaSesion($pdo, array(102, 122), GEMA);
- if(!$objSesion->tieneAcceso()){
- header("Location: ".$pag."?error=3");
- exit();
- }
- unset($objValida);
- if(!isset($_GET["id"])){
- header("Location: ".$pag."?error=0");
- exit();
- }
- $id = filter_input(INPUT_GET, "id", FILTER_SANITIZE_NUMBER_INT);//limpia texto
- //Obtiene datos
- $stmt = $pdo->prepare('Select * from fs_alumno(:id, NULL)');
- $stmt->bindParam(":id", $id);
- if(!$stmt->execute()){
- header("Location: ".$pag."?error=2");
- //$errorDesc = "Error al cargar los datos del alumno";
- //print_r($stmt->errorInfo());
- exit();
- }
- $alumno_rs = $stmt->fetchAll();
- $stmt->closeCursor();
- if(count($alumno_rs) == 0){
- header("Location: ".$pag."?error=2");
- //$errorDesc = "Error al cargar los datos del alumno";
- //print_r($stmt->errorInfo());
- exit();
- }
- $stmt = $pdo->prepare('Select * from fs_contacto(:id, NULL, NULL)');
- $stmt->bindParam(":id", $id);
- if(!$stmt->execute()){
- //$err = $stmt->errorInfo();
- //$return["error"] = "Ocurrió un error al leer los datos del usuario.".$err[2];
- header("Location: ".$pag."?error=2");
- exit();
- }
- $contacto_rs = $stmt->fetchAll();
- $stmt->closeCursor();
- ?>
- <!DOCTYPE html>
- <html lang="es" prefix="og: http://ogp.me/ns#">
- <head>
- <title>GEMA - Facultad de Ingeniería</title>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
- <link rel="icon" type="image/png" href="../img/favicon.png" />
- <link rel="stylesheet" href="../css/bootstrap-ulsa.min.css" type="text/css">
- <link rel="stylesheet" href="../css/indivisa.css" type="text/css">
- <link rel="stylesheet" href="../css/sgi.css?rand=<?php echo rand();?>" type="text/css">
- <link rel="stylesheet" href="../css/fa_all.css" type="text/css">
- <link rel="stylesheet" href="./css/alumnocardex.css" type="text/css">
- </head>
- <body>
- <div>
- <?php
- //--- Objeto que pinta menu
- $menuObj = new MainMenu($_SESSION["usuario_id"], $menu, $pdo, GEMA, $alumno_rs[0]["Usuario_apellidos"]." ".$alumno_rs[0]["Usuario_nombre"] );//usr, menu, pdo, sist
- $menuObj->printMenu();
- ?>
- <main class="container-fluid content marco">
- <div class="row">
- <div class="col-12 text-center">
- <h4 class="text-danger mb-3"><b>CURP:</b> <?php echo $alumno_rs[0]["Usuario_curp"];?></h4>
- <p id="contacto-block" class="text-center mb-4">
- <?php
- foreach($contacto_rs as $contacto){
- ?>
- <span class="contacto mx-3"><span title="<?php echo $contacto["TipoContacto_desc"]." ".$contacto["SubtipoContacto_desc"]." ".$contacto["PerfilContacto_desc"];?>">
- <span class="<?php echo $contacto["TipoContacto_icono"];?>"></span></span> <?php echo $contacto["Contacto_valor"];?></span>
- <?php } ?>
- </p>
- </div>
- </div>
-
- <ul class="nav nav-tabs d-print-none my-4" id="myTab" role="tablist">
- <li class="nav-item">
- <a class="nav-link active" id="tabEdo-tab" data-toggle="tab" href="#tabEdo" role="tab" aria-controls="calendario" aria-selected="true">Cambios de estado</a>
- </li>
- <?php
- foreach($alumno_rs as $alumno){
- ?>
- <li class="nav-item">
- <a class="nav-link" id="tab<?php echo $alumno["Usuario_claveULSA"];?>-tab" data-toggle="tab" href="#tab<?php echo $alumno["Usuario_claveULSA"];?>" role="tab" aria-controls="calendario" aria-selected="false"><?php echo "<b>".$alumno["Usuario_claveULSA"]."</b> ".$alumno["Carrera_prefijo"];?></a>
- </li>
- <?php
- }
- ?>
-
- </ul>
- <div class="tab-content" id="cardexTabContent">
- <div class="tab-pane fade show active" id="tabEdo" role="tabpanel" aria-labelledby="tabEdo-tab">
- <h4 class="mb-4">Historial de cambios de estado</h4>
- <?php
- $stmt = $pdo->prepare('Select * from fs_alumnosubestado(:id, NULL)');
- $stmt->bindParam(":id", $alumno_rs[0]["Usuario_id"]);
- if(!$stmt->execute()){
- $tmp = $stmt->errorInfo();
- echo "Ocurrió un error al leer el histórico de estados del alumno.";//.$tmp[2];
-
- }
- $subestado_rs = $stmt->fetchAll();
- $stmt->closeCursor();
-
- if(count($subestado_rs)>0){
- ?>
- <div class="col-12 table-responsive">
- <table class="table table-sm table-striped table-white">
- <thead class="thead-dark">
- <tr>
- <th>Clave</th>
- <th>Estado</th>
- <th>Fecha</th>
- <th>Comentarios</th>
- </tr>
- </thead>
- <tbody>
- <?php
- foreach($subestado_rs as $sub){
- ?>
- <tr>
- <td class="text-center"><b><?php echo $sub["Usuario_claveULSA"];?></b></td>
- <td style="color:<?php echo $sub["EstadoAlumno_color"];?>"><?php echo $ICO["circulo"]." ".$sub["EstadoAlumno_desc"]." - ".$sub["SubEstadoAlumno_desc"];?></td>
- <td class="text-center text-nowrap"><?php echo fechaSlash($sub["SEA_fecha"]);?></td>
- <td class="text-info"><?php echo trim($sub["SEA_comentario"]);?></td>
- </tr>
- <?php } ?>
- </tbody>
- </table>
- </div>
- <?php
- }
- ?>
- </div>
- <?php
- foreach($alumno_rs as $alumno){
- ?>
- <div class="tab-pane fade" id="tab<?php echo $alumno["Usuario_claveULSA"];?>" role="tabpanel" aria-labelledby="tab<?php echo $alumno["Usuario_claveULSA"];?>-tab">
- <h4><b><?php echo $alumno["Carrera_desc"]." ".$alumno["PlanEstudio_desc"];?></b> - <?php echo $alumno["Nivel_desc"];?></h4>
- <p class="mb-0"><b>Fecha de ingreso:</b> <?php echo fechaMonthPicker($alumno["Alumno_fecha_ingreso"]);?></p>
- <p class="mb-4"><b>Generación:</b> <?php echo fechaMonthPicker($alumno["Alumno_generacion"]);?></p>
-
- <?php
-
- $stmt = $pdo->prepare('Select * from fs_alumnomaterias_cardex(:clave, :plan)');
- $stmt->bindParam(":clave", $alumno["Usuario_claveULSA"]);
- $stmt->bindParam(":plan", $alumno["PlanEstudio_id"]);
- if(!$stmt->execute()){
- header("Location: ".$pag."?error=1");
- //$errorDesc = "Ocurrió un error al cargar las materias.";
- //print_r($stmt->errorInfo());
- exit();
- //echo $errorDesc;
- }
- $materias_rs = $stmt->fetchAll();
- $stmt->closeCursor();
- //formato al RS de materias
- $materiasArr = Array();
- $m = 0;
- $mat_last = -1;
- foreach($materias_rs as $mat){
- if($mat_last != $mat["Materia_id"]){
- if($mat_last != -1){
- $materiasArr[$m]["califArr"]=$califArr;
- $m++;
- }
- $mat_last = $mat["Materia_id"];
- $califArr = array();
- }
- $materiasArr[$m] = array("id" => $mat["Materia_id"], "desc" => $mat["Materia_desc"], "clave"=>$mat["Materia_clave"],
- "sem"=> $mat["Materia_semestre"], "califArr"=>array());
- if($mat["Calificacion_calif"] > 0 || $mat["Calificacion_calif"] === 0 ){
- $califArr[] = array("calif"=>$mat["Calificacion_calif"], "fecha"=>$mat["Calificacion_fecha"], "calif_tipo"=>$mat["TipoCalificacion_id"], "calif_tipo_desc"=>$mat["TipoCalificacion_desc"], "calif_tipo_corta"=>$mat["TipoCalificacion_desc_corta"],
- "revalidada"=>$mat["TipoCalificacion_esEquivalencia"], "reprobada"=>($mat["Calificacion_calif"] <=5)?true:false,
- "periodo_id"=>$mat["Periodo_id"], "periodo"=>$mat["Periodo_desc"], "intersemestral"=>($mat["Periodo_intersemestral"])?true:false,
- "grupo"=>$mat["TipoCalificacion_id"] ==2 ? $mat["Grupo_id"]: "");
- }
- }
- if($mat_last != -1){
- $materiasArr[$m]["califArr"]=$califArr;
- }
- //-----
- $xtpl = new XTemplate('./tpl/alumnocardex.tpl.html');
- $xtpl->assign("LINK", "./export/xls_alumnocardex.php?clave=".$alumno["Usuario_claveULSA"]);
- $xtpl->parse("main.topweb");
- $xtpl->assign("CLAVE", $alumno["Usuario_claveULSA"]);
- $maxCol = 5;
- $sem = -1;
- if($alumno["Nivel_id"] == 1)
- $xtpl->assign("SEMESTRE", "Semestre");
- else
- $xtpl->assign("SEMESTRE", "Cuatrimestre");
- $xtpl->assign("COL_SIZE", "12");
- foreach($materiasArr as $mat){
- if($sem != intval($mat["sem"])){
- if($sem != -1){
- $xtpl->parse("main.col.semestre");
- }
- $sem = intval($mat["sem"]);
- $xtpl->assign("COLS", $maxCol+1);
- $xtpl->assign("NUM", $sem);
- }
- $xtpl->assign("MATERIA", $mat["desc"]);
- for($c=0; $c < $maxCol; $c++){
- if($c < count($mat["califArr"])){
- if($mat["califArr"][$c]["calif"] >0)
- $xtpl->assign("CALIF", $mat["califArr"][$c]["calif"]);
- else{
- if($mat["califArr"][$c]["calif_tipo"] == 2)//ordinario
- $xtpl->assign("CALIF", "SD");
- else
- $xtpl->assign("CALIF", "NP");
- }
- switch($mat["califArr"][$c]["calif_tipo"]){
- case 1:
- $xtpl->assign("COLOR", "calif-equivalencia");
- $xtpl->assign("TIPO", "Equivalencia");
- break;
- case 2:
- if($mat["califArr"][$c]["intersemestral"]){
- $xtpl->assign("COLOR", "calif-intersemestral");
- $xtpl->assign("TIPO", "Intersemestral");
- }else{
- $xtpl->assign("COLOR", "");
- $xtpl->assign("TIPO", "Ordinario");
- }
- break;
- default:
- $xtpl->assign("COLOR", "calif-extraordinario");
- $xtpl->assign("TIPO", "Extraordinario");
- break;
- }
- $xtpl->assign("PERIODO", $mat["califArr"][$c]["periodo"]);
- $xtpl->parse("main.col.semestre.table_row.intento.tooltip");
- if($mat["califArr"][$c]["grupo"] != ""){
- $xtpl->assign("MAT", $mat["id"]);
- $xtpl->assign("GPO", $mat["califArr"][$c]["grupo"]);
- $xtpl->assign("PER", $mat["califArr"][$c]["periodo_id"]);
- $xtpl->assign("ICO", $ICO["buscar"]);
- $xtpl->parse("main.col.semestre.table_row.intento.prof");
- }
- }else{//no hay mas intentos
- $xtpl->assign("CALIF", " ");
- }
- $xtpl->parse("main.col.semestre.table_row.intento");
- }
- $xtpl->parse("main.col.semestre.table_row");
- }
- $xtpl->parse("main.col.semestre");
- $xtpl->parse("main.col");
- $xtpl->parse("main");
- $xtpl->out("main");
- ?>
- </div>
- <?php
- }//fin tab
- ?>
- </div><!-- /cardexTabContent -->
-
- <p class="mt-4 text-center">
- <a href="reporte_alumnoscardex.php" class="btn btn-outline-primary"><?php echo $ICO["cancelar"];?> Regresar</a>
- </p>
-
- </main>
-
- <!-- Modal profesor -->
- <div class="modal fade" id="modal" tabindex="-1" role="dialog" aria-labelledby="modal" aria-hidden="true">
- <div class="modal-dialog modal-sm modal-dialog-centered" role="document">
- <div class="modal-content">
- <div class="modal-header">
- <h4 class="col-12 modal-title text-center" id="modalLabel">Profesores
- <button type="button" class="close text-white" data-dismiss="modal" aria-label="Close">
- <span aria-hidden="true">×</span>
- </button>
- </h4>
- </div>
- <div class="modal-body pb-0">
- <h5 class="font-weight-bold mb-4">Grupo <span id="grupo_nombre"></span></h5>
- <ul id="prof-block" class="pl-1" style="list-style-type: none;">
- <li class="profesor mb-2"></li>
- </ul>
- </div>
- </div>
- </div>
- </div>
-
- </div>
- <script src="../js/jquery.min.js"></script>
- <script src="../js/bootstrap/popper.min.js"></script>
- <script src="../js/bootstrap/bootstrap.min.js"></script>
- <script src="../js/sidebarmenu.js"></script>
- <script>
- $(function () {
- $('[data-toggle="tooltip"]').tooltip()
- })
- $(document).ready(function(){
- $(".modal-open").click(function(){
- var mat = $(this).data("mat");
- var gpo = $(this).data("gpo");
- var per = $(this).data("per");
-
- $("#errorBox").collapse('hide');
- $("#errorBox_text").html("");
- $.ajax({
- url: './action/profesor_select.php',
- type: 'POST',
- dataType: 'json',
- data: { mat: mat, gpo:gpo, per:per},
- success: function(result) {
- if(result["error"]!= "" && result["error"] !== undefined){
- $("#errorBox").collapse('show');
- $("#errorBox_text").html(result["error"]);
- $('#messageBox')[0].scrollIntoView({ block: "end" });
- }else{
- $("#grupo_nombre").text(result["grupo"]);
-
- //cargar datos de prof
- var rows = $("#prof-block > .profesor").length;//cuenta accesos actuales
- if(rows > result["profesor"].length){//sobran
- //borrar renglones extra (rows - result.length) pero dejar al menos 1
- while(rows > result["profesor"].length && rows > 1){
- $("#prof-block .profesor:last-child").remove();
- rows--;
- }
- }else{//faltan
- // clone the rest of the rows
- for(var i=0; i<(result["profesor"].length - rows); i++){
- $("#prof-block .profesor:first-child").clone(true).appendTo("#prof-block");
- }
- }
- console.log(result["profesor"].length);
- if(result["profesor"].length != 0){//hay profesores
- $("#prof-block").children().each(function(index) {
- if(index < result["profesor"].length){//llenar info
- $(this).text(result["profesor"][index]);
- console.log(index+") "+result["profesor"][index]);
- }
- });
- }else{
- $("#prof-block").find(".profesor").html("<em>Sin profesor</em>");
- }
-
-
- $('#modal').modal("show");
- }
- },
- error: function(jqXHR, textStatus, errorThrown ){
- $("#errorBox").collapse('show');
- $("#errorBox_text").html(errorThrown);
- }
- });//ajax
- });//click
- });
- </script>
- </body>
- </html>
|