Browse Source

Fix: página de profesores

Alejandro Rosales 2 years ago
parent
commit
094cf8b611
2 changed files with 190 additions and 208 deletions
  1. 19 32
      action/action_profesores_update.php
  2. 171 176
      profesores.php

+ 19 - 32
action/action_profesores_update.php

@@ -1,36 +1,23 @@
 <?php
-    $ruta = "../";
-    require_once "../include/bd_pdo.php";
-    global $pdo;
+$ruta = "../";
 
-    $profesor = query(
-        "SELECT * FROM profesor WHERE :clave = profesor_clave",
-        array(":clave" => $_POST["mclave"]),
-        true
-    );
-    if($profesor){
-        if($profesor['profesor_id'] != $_POST['id']){
-            echo "clave en uso";
-            header("Location: ../profesores.php?error=2");
-            exit();
-        }
+/* ini_set('display_errors', 1);
+ini_set('display_startup_errors', 1);
+error_reporting(E_ALL); */
+require_once "../include/bd_pdo.php";
+global $db;
+$grado = $_POST['grado'];
+$grado = mb_strtoupper($grado);
+if (!empty($grado)) {
+    if (!ctype_space($grado)) {
+        if ($grado[strlen($grado) - 1] != '.')
+            $grado .= '.';
+    } else {
+        $grado = "";
     }
-    $grado = $_POST['grado'];
-    $grado = mb_strtoupper($grado);
-    if(!empty($grado)){
-        if(!ctype_space($grado)){
-            if($grado[strlen($grado)-1] != '.')
-                $grado.='.';
-        }
-        else{
-            $grado="";
-        }
-    }
-    print_r($_POST);
-    $sql = "SELECT public.fu_updateprofesor(:id, :clave, :nombre, :grado)";
-    $params = array(':id' => $_POST["id"], ':clave' => $_POST["mclave"], ':nombre' => mb_strtoupper($_POST["nombre"]), ':grado' => $grado);
-    $hecho = query($sql, $params, false);
+}
+// print_r($_POST);
 
-    header("Location: ../profesores.php", true, 307);
-    exit();
-?>
+$db->where('profesor_id', $_POST['id'])->update('profesor', ['profesor_grado' => $_POST['grado']]);
+header("Location: ../profesores.php", true, 307);
+exit();

+ 171 - 176
profesores.php

@@ -5,18 +5,17 @@ require_once 'include/bd_pdo.php';
 if (!isset($_SESSION['user'])) {
     header('Location: index.php');
     exit;
-}
-else
+} else
     $user = unserialize($_SESSION['user']);
 $user->access();
-if(!$user->admin && $user->acceso == 'n'){
+if (!$user->admin && $user->acceso == 'n') {
     header('Location: main.php?error=1');
-}else{
+} else {
     $user->print_to_log('Profesores');
 }
-$fac=$user->facultad['facultad_id'] ?? -1;//obtiene la facultad del usuario, si no tiene faculad = -1
-if($user->admin){//si es admin su facultad es null (todas las facultades)
-    $fac=null;
+$fac = $user->facultad['facultad_id'] ?? -1; //obtiene la facultad del usuario, si no tiene faculad = -1
+if ($user->admin) { //si es admin su facultad es null (todas las facultades)
+    $fac = null;
 }
 ?>
 <!DOCTYPE html>
@@ -39,57 +38,56 @@ if($user->admin){//si es admin su facultad es null (todas las facultades)
         "Gestión de Checador "
     );
     $user->access();
-    $max_count=30;
+    $max_count = 30;
+
+    if (isset($_POST["desc"])) {
+        $desc = $_POST["desc"];
+        $filter_desc = htmlspecialchars($desc, ENT_QUOTES, 'UTF-8');
 
-    if(isset($_POST["desc"])){
-        $desc=$_POST["desc"];
-        $filter_desc = trim(filter_input(INPUT_POST, "desc", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW)));
-    }else{
-        $desc=null;
+    } else {
+        $desc = null;
     }
-    if(isset($_POST["clave"])){
-        $clave=$_POST["clave"];
-        $filter_clave = trim(filter_input(INPUT_POST, "clave", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW)));
-    }else{
-        $clave=null;
+    if (isset($_POST["clave"])) {
+        $clave = $_POST["clave"];
+        $filter_clave = htmlspecialchars($clave, ENT_QUOTES, 'UTF-8');
+    } else {
+        $clave = null;
     }
-    if(isset($_POST["mclave"])){
-        $clave=$_POST["mclave"];
-        $filter_clave = trim(filter_input(INPUT_POST, "mclave", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW)));
+    if (isset($_POST["mclave"])) {
+        $clave = $_POST["mclave"];
+        $filter_clave = htmlspecialchars($clave, ENT_QUOTES, 'UTF-8');
     }
-    if(isset($_POST["nombre"])){
-        $desc=$_POST["nombre"];
-        $filter_desc = trim(filter_input(INPUT_POST, "nombre", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW)));
+    if (isset($_POST["nombre"])) {
+        $desc = $_POST["nombre"];
+        $filter_desc = htmlspecialchars($desc, ENT_QUOTES, 'UTF-8');
     }
-    if(isset($_POST["facultad"])){
-        if($_POST["facultad"]!="")
-        {
-            $fac=$_POST["facultad"];
-            $filter_fac = trim(filter_input(INPUT_POST, "facultad", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW)));
+    if (isset($_POST["facultad"])) {
+        if ($_POST["facultad"] != "") {
+            $fac = $_POST["facultad"];
+            $filter_fac = htmlspecialchars($fac, ENT_QUOTES, 'UTF-8');
         }
     }
-    $fs_profesores = query(
-        "SELECT * FROM FS_PROFESORES(:nombre, :clave, :facultad) LIMIT :maxc",
+    $fs_profesores = $db->query(
+        "SELECT DISTINCT PROFESOR.*, FACULTAD.* FROM profesor 
+        JOIN horario_profesor USING (profesor_id)
+        JOIN horario USING (horario_id)
+        JOIN materia USING (materia_id)
+        JOIN carrera USING (carrera_id)
+        JOIN facultad ON carrera.facultad_id = facultad.facultad_id
+        WHERE 
+        profesor_nombre ILIKE COALESCE(:nombre, profesor_nombre) AND profesor_clave ILIKE COALESCE(:clave, profesor_clave)
+        AND facultad.facultad_id = COALESCE(:facultad, facultad.facultad_id)
+        LIMIT :maxc",
         array(
-            ":nombre" => $desc,
-            ":clave" => $clave,
+            ":nombre" => "%$desc%",
+            ":clave" => "%$clave%",
             ":facultad" => $fac,
             ":maxc" => $max_count
-        ),
-        single: false
-    );
-    $fs_facultades = query(
-        "SELECT * FROM fs_facultades(null)", null, false
+        )
     );
+    $fs_facultades = $db->get('facultad');
     ?>
     <main class="content marco">
-        <?php if($user->acceso == 'w')  {?>
-        <div class="row">
-            <div class="col-12 text-right">
-                <button type="button" class="btn btn-outline-secondary" data-toggle="modal" data-target="#modal" data-tipo="1"><span class="ing-mas ing-fw"></span>Crear Profesor</button>
-            </div>
-        </div>
-        <?php }?>
         <!-- Filtro -->
         <div class="row">
             <div class="col-12">
@@ -98,33 +96,40 @@ if($user->admin){//si es admin su facultad es null (todas las facultades)
                         <div class="form-group row">
                             <label for="filter_desc" class="col-4 col-form-label">Nombre</label>
                             <div class="col-8 col-sm-4">
-                                <input id="filter_desc" name="desc" type="text" class="form-control" <?php if(isset($filter_desc) ){echo 'value="'.$filter_desc.'"';}?>>
+                                <input id="filter_desc" name="desc" type="text" class="form-control" <?php if (isset($filter_desc)) {
+                                    echo 'value="' . $filter_desc . '"';
+                                } ?>>
                             </div>
                         </div>
                         <div class="form-group row">
                             <label for="filter_clave" class="col-4 col-form-label">Clave</label>
                             <div class="col-8 col-sm-4">
-                                <input id="filter_clave" name="clave" type="text" class="form-control" <?php if(isset($filter_clave)){echo 'value="'.$filter_clave.'"';}?>>
+                                <input id="filter_clave" name="clave" type="text" class="form-control" <?php if (isset($filter_clave)) {
+                                    echo 'value="' . $filter_clave . '"';
+                                } ?>>
                             </div>
                         </div>
-                        <?php if($user->admin) {?>
-                        <div class="form-group row">
-                            <label for="filter_facultad" class="col-4 col-form-label">Facultad</label>
-                            <div class="col-8 col-sm-4">
-                                <div class="datalist datalist-select mb-1 w-100">
-                                    <div class="datalist-input">Mostrar todas</div>
-                                    <span class="ing-buscar icono"></span>
-                                    <ul style="display:none">
-                                        <li data-id="" class="pl-4">Mostrar todas</li>
-                                        <?php foreach($fs_facultades as $facultad){ ?>
-                                        <li data-id="<?php echo $facultad['facultad_id']; ?>" class="pl-4 <?php if(isset($filter_fac) && $facultad["facultad_id"]==$filter_fac){ echo 'selected';} ?>"><?php echo $facultad['facultad_nombre']; ?></li>
-                                        <?php }?>
-                                    </ul>
-                                    <input type="hidden" id="filter_facultad" name="facultad" value="">
+                        <?php if ($user->admin) { ?>
+                            <div class="form-group row">
+                                <label for="filter_facultad" class="col-4 col-form-label">Facultad</label>
+                                <div class="col-8 col-sm-4">
+                                    <div class="datalist datalist-select mb-1 w-100">
+                                        <div class="datalist-input">Mostrar todas</div>
+                                        <span class="ing-buscar icono"></span>
+                                        <ul style="display:none">
+                                            <li data-id="" class="pl-4">Mostrar todas</li>
+                                            <?php foreach ($fs_facultades as $facultad) { ?>
+                                                <li data-id="<?= $facultad['facultad_id']; ?>" class="pl-4 <?php if (isset($filter_fac) && $facultad["facultad_id"] == $filter_fac) {
+                                                       echo 'selected';
+                                                   } ?>">
+                                                    <?= $facultad['facultad_nombre']; ?></li>
+                                            <?php } ?>
+                                        </ul>
+                                        <input type="hidden" id="filter_facultad" name="facultad" value="">
+                                    </div>
                                 </div>
                             </div>
-                        </div>
-                        <?php }?>
+                        <?php } ?>
                     </div>
                     <div class="form-group row">
                         <div class="col-12 text-center">
@@ -145,42 +150,52 @@ if($user->admin){//si es admin su facultad es null (todas las facultades)
         <!-- Tabla -->
         <div class="row">
             <div class="col-12 table-responsive">
-                <p>Se muestran los primeros <strong><?php echo $max_count;?></strong> resultados. Utiliza los filtros para encontrar al profesor que buscas.</p>
+                <p>Se muestran los primeros <strong>
+                        <?= $max_count; ?>
+                    </strong> resultados. Utiliza los filtros para encontrar al profesor que buscas.</p>
                 <table class="table table-sm table-striped table-white">
                     <thead class="thead-dark">
                         <tr>
                             <th>Clave</th>
                             <th>Nombre</th>
-                            <?php if($user->admin) {?>
-                            <th>Facultad</th>
-                            <?php }?>
-                            <?php if($user->acceso == 'w') {?>
-                            <th>Acciones</th>
-                            <?php }?>
+                            <?php if ($user->admin) { ?>
+                                <th>Facultad</th>
+                            <?php } ?>
+                            <?php if ($user->acceso == 'w') { ?>
+                                <th>Acciones</th>
+                            <?php } ?>
                         </tr>
                     </thead>
                     <tbody>
                         <?php
-                            $cont =0;
-                            if($fs_profesores){
-                            foreach($fs_profesores as $profesor){
-                        ?>
-                        <tr data-id="<?php echo $profesor["profesor_id"]; ?>" data-facultad="<?php echo $profesor["profesor_facultad"]; ?>" id="id<?php echo $profesor["profesor_id"]; ?>">
-                            <td class="text-center font-weight-bold"><?php echo $profesor["profesor_clave"]; ?></td>
-                            <td class="text-primary"><?php echo $profesor["profesor_grado"]." ".$profesor["profesor_nombre"]; ?></td>
-                            <?php if($user->admin) {?>
-                            <td class="text-primary"><?php echo $profesor["facultad"]; ?></td>
-                            <?php }?>
-                            <?php if($user->acceso == 'w') {?>
-                            <td class="text-center icono-acciones">
-                                <a href="#" data-toggle="modal" data-target="#modal" data-tipo="2" title="Editar"><span class="ing-editar ing-fw"></span></a>
-                                <a href="#" data-toggle="modal" data-target="#modal_confirm" title="Borrar"><span class="ing-basura ing-fw"></span></a>
-                            </td>
-                            <?php }?>
-                        </tr> 
-                        <?php 
-                        }
-                    }?>
+                        $cont = 0;
+                        if ($fs_profesores) {
+                            foreach ($fs_profesores as $profesor) {
+                                ?>
+                                <tr data-id="<?= $profesor["profesor_id"]; ?>"
+                                    data-facultad="<?= $profesor["facultad_id"]; ?>"
+                                    id="id<?= $profesor["profesor_id"]; ?>">
+                                    <td class="text-center font-weight-bold">
+                                        <?= $profesor["profesor_clave"]; ?>
+                                    </td>
+                                    <td class="text-primary">
+                                        <?= $profesor["profesor_grado"] . " " . $profesor["profesor_nombre"]; ?>
+                                    </td>
+                                    <?php if ($user->admin) { ?>
+                                        <td class="text-primary">
+                                            <?= $profesor["facultad_nombre"]; ?>
+                                        </td>
+                                    <?php } ?>
+                                    <?php if ($user->acceso == 'w') { ?>
+                                        <td class="text-center icono-acciones">
+                                            <a href="#" data-toggle="modal" data-target="#modal" data-tipo="2" title="Editar"><span
+                                                    class="ing-editar ing-fw"></span></a>
+                                        </td>
+                                    <?php } ?>
+                                </tr>
+                                <?php
+                            }
+                        } ?>
                     </tbody>
                 </table>
             </div>
@@ -212,7 +227,7 @@ if($user->admin){//si es admin su facultad es null (todas las facultades)
                             <div class="form-group row">
                                 <label for="mclave" class="col-4 col-form-label">Clave *</label>
                                 <div class="col-8">
-                                    <input id="mclave" name="mclave" type="text" class="form-control" maxlength="6">
+                                    <input id="mclave" name="mclave" type="text" class="form-control" maxlength="6" disabled>
                                     <div class="invalid-feedback" id="mclave-error">
                                         Campo obligatorio
                                     </div>
@@ -227,30 +242,31 @@ if($user->admin){//si es admin su facultad es null (todas las facultades)
                             <div class="form-group row">
                                 <label for="desc" class="col-4 col-form-label">Nombre *</label>
                                 <div class="col-8">
-                                    <input id="nombre" name="nombre" type="text" class="form-control" maxlength="100">
+                                    <input id="nombre" name="nombre" type="text" class="form-control" maxlength="100" disabled>
                                     <div class="invalid-feedback">
                                         Campo obligatorio
                                     </div>
-                                </div>                                
+                                </div>
                             </div>
-                            <?php if($user->admin){?>
-                            <div class="form-group row" id="mdatalist">
-                                <label for="dlfacultad" class="col-4 col-form-label">Facultad *</label>
-                                <div class="col-8">
-                                    <div class="datalist datalist-select mb-1 w-100">
-                                        <div class="datalist-input">Mostrar todas</div>
-                                        <span class="ing-buscar icono"></span>
-                                        <ul style="display:none">
-                                            
-                                            <?php foreach($fs_facultades as $facultad){ ?>
-                                            <li data-id="<?php echo $facultad['facultad_id']; ?>" class="pl-4"><?php echo $facultad['facultad_nombre']; ?></li>
-                                            <?php }?>
-                                        </ul>
-                                        <input type="hidden" id="dlfacultad" name="dlfacultad" value="">
+                            <?php if ($user->admin) { ?>
+                                <div class="form-group row" id="mdatalist">
+                                    <label for="dlfacultad" class="col-4 col-form-label">Facultad *</label>
+                                    <div class="col-8">
+                                        <div class="datalist datalist-select mb-1 w-100">
+                                            <div class="datalist-input">Mostrar todas</div>
+                                            <span class="ing-buscar icono"></span>
+                                            <ul style="display:none">
+
+                                                <?php foreach ($fs_facultades as $facultad) { ?>
+                                                    <li data-id="<?= $facultad['facultad_id']; ?>" class="pl-4"><?= $facultad['facultad_nombre']; ?></li>
+                                                <?php } ?>
+                                            </ul>
+                                            <input type="hidden" id="dlfacultad" name="dlfacultad" value="">
+                                        </div>
+
                                     </div>
-                                    
                                 </div>
-                            </div><?php }?>
+                            <?php } ?>
                         </div>
                         <div class="form-group row">
                             <div class="offset-4 col-8">
@@ -267,27 +283,6 @@ if($user->admin){//si es admin su facultad es null (todas las facultades)
             </div>
         </div>
     </div>
-
-    <div class="modal fade" id="modal_confirm" tabindez="-1" role="dialog" aria-labelledby="modal" aria-hidden="true">
-        <div class="modal-dialog modal-dialog-centered" role="document">
-            <div class="modal-content">
-                <div class="modal-body">
-                    <div class="row">
-                        <div class="col">
-                            <p class="font-weight-bold">¿Estás seguro de querer borrar al profesor?</p>
-                        </div>
-                    </div>
-                </div>
-                <div class="modal-footer">
-                    <input type="hidden" id="id_borrar" value="">
-                    <input type="hidden" id="facultad_borrar" value="">
-                    <button type="button" class="btn btn-outline-primary btn-borrar"><span class="ing-aceptar ing-fw"></span> Borrar</button>
-                    <button type="button" class="btn btn-outline-danger" data-dismiss="modal" aria-label="Close"><span class="ing-cancelar ing-fw"></span> Cancelar</button>
-                </div>
-            </div>
-        </div>
-    </div>
-
     <script src="js/jquery.min.js"></script>
     <script src="js/bootstrap/bootstrap.min.js"></script>
     <script src="js/datalist.js"></script>
@@ -295,78 +290,78 @@ if($user->admin){//si es admin su facultad es null (todas las facultades)
     require_once 'js/messages.php';
     ?>
     <script>
-        $('#modal_confirm').on('show.bs.modal', function(event){
+        $('#modal_confirm').on('show.bs.modal', function (event) {
             var button = $(event.relatedTarget);
-            var id=button.parents("tr").data("id");
-            var facultad=button.parents("tr").data("facultad");
+            var id = button.parents("tr").data("id");
+            var facultad = button.parents("tr").data("facultad");
             $("#id_borrar").val(id);
             $("#facultad_borrar").val(facultad);
         });
 
-        $(".btn-borrar").click(function(){
+        $(".btn-borrar").click(function () {
             var cid = $("#id_borrar").val();
             var fac = $("#facultad_borrar").val();
             $.ajax({
                 url: 'action/action_profesores_borra.php',
                 type: 'post',
                 dataType: 'json',
-                data:{id_profesor: cid, id_facultad: fac, estado: false},
-                success:function(result){
+                data: { id_profesor: cid, id_facultad: fac, estado: false },
+                success: function (result) {
                     console.log("hecho");
                     $(".btn-reset").click();
                 },
-                error: function(){console.log("Error")}
+                error: function () { console.log("Error") }
             });
         });
 
-        <?php if(!$fs_profesores){?>
+        <?php if (!$fs_profesores) { ?>
             triggerMessage("No se encontraron profesores con estos datos en su facultad", "Error");
-        <?php } 
-            if(isset($_GET['error'])){ 
-                if($_GET['error']==1){ ?>
-                    triggerMessage("El profesor ya existe en la facultad", "Error");
-                <?php }
-                if($_GET['error']==2){ ?>
-                    triggerMessage("Esta clave ya esta en uso", "Error");
-                <?php }?>
-        <?php }?>
+        <?php }
+        if (isset($_GET['error'])) {
+            if ($_GET['error'] == 1) { ?>
+                triggerMessage("El profesor ya existe en la facultad", "Error");
+            <?php }
+            if ($_GET['error'] == 2) { ?>
+                triggerMessage("Esta clave ya esta en uso", "Error");
+            <?php } ?>
+        <?php } ?>
 
-        function valida_campos(){
-            var error=false;
-            if($("#mclave").val()==""){
+        function valida_campos() {
+            var error = false;
+            if ($("#mclave").val() == "") {
                 $("#mclave").addClass("is-invalid");
                 $("#mclave-error").html("Campo obligatorio");
-                error=true;
-            }else{
+                error = true;
+            } else {
                 $("#mclave").removeClass("is-invalid");
             }
-            
-            if($("#nombre").val()==""){
+
+            if ($("#nombre").val() == "") {
                 $("#nombre").addClass("is-invalid");
-                error=true;
-            }else{
+                error = true;
+            } else {
                 $("#nombre").removeClass("is-invalid");
             }
-            if($("#dlfacultad").val()=="" && $("#mfacultad").val()==""){
+            if ($("#dlfacultad").val() == "" && $("#mfacultad").val() == "") {
                 invalidDatalist("#dlfacultad", true);
-                error=true;
-            }else{
+                error = true;
+            } else {
                 invalidDatalist("#dlfacultad", false);
             }
-            if(error){
+            if (error) {
                 return false;
-            }else{
+            } else {
                 var btn = $('#submitBtn');
-                if(btn.data('tipo')==2)//update
+                if (btn.data('tipo') == 2)//update
                     $("#formaModal").prop("action", "./action/action_profesores_update.php");
-                else{//insert
-                    $("#formaModal").prop("action", "./action/action_profesores_insert.php");
+                else {//insert
+                    $("#formaModal").prop("action", "#");
                     //alert("insert");
                 }
             }
         }
 
-        $(document).on("click", ".btn-reset", function(event){
+        $(document).on("click", ".btn-reset", function (event) {
             var forma = $(this).parents("form");
             forma.find("input[type=text]").val("");
             setDatalistFirst("#filter_facultad");
@@ -378,34 +373,34 @@ if($user->admin){//si es admin su facultad es null (todas las facultades)
             var tipo = button.data('tipo');
             var modal = $(this);
             setDatalistFirst("#dlfacultad");
-            if(tipo == 1){//crear
+            if (tipo == 1) {//crear
                 $("#mdatalist").show();
                 $("#submitBtn").data('tipo', 1);
                 $("#modalLabel").html("Crear Profesor");
-                $("#mfacultad").val("<?php echo($fac);?>");
+                $("#mfacultad").val("<?= ($fac); ?>");
                 $("#mclave").val("");
                 $("#nombre").val("");
                 $("#grado").val("");
                 $("#id").val("");
             }
-            else{//editar
+            else {//editar
                 $("#mdatalist").hide();
-                var id= $(event.relatedTarget).parents("tr").data("id");//obtiene el id del registro que llamo al modal
+                var id = $(event.relatedTarget).parents("tr").data("id");//obtiene el id del registro que llamo al modal
                 $("#modalLabel").html("Editar Datos de Profesor");
                 $("#submitBtn").data('tipo', 2);
                 $.ajax({
-                    url:"action/action_profesores_select.php",
-                    type:"post",
-                    dataType:"json",
-                    data: {profesor: id},
-                    success:function(result){
+                    url: "action/action_profesores_select.php",
+                    type: "post",
+                    dataType: "json",
+                    data: { profesor: id },
+                    success: function (result) {
                         $("#mclave").val(result[0]["profesor_clave"]);
                         $("#nombre").val(result[0]["profesor_nombre"]);
                         $("#grado").val(result[0]["profesor_grado"]);
-                        
+
                         $("#id").val(result[0]["profesor_id"]);
                     },
-                    error: function(){console.log("Error")}
+                    error: function () { console.log("Error") }
                 });
             }
         });