facultades.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. <?php
  2. require_once 'class/c_login.php';
  3. require_once 'include/bd_pdo.php';
  4. if (!isset($_SESSION['user'])){
  5. header('Location: index.php');
  6. exit;
  7. }
  8. else
  9. $user = unserialize($_SESSION['user']);
  10. $user->access();
  11. if(!$user->admin && $user->acceso == 'n'){
  12. header('Location: main.php?error=1');
  13. }else{
  14. $user->print_to_log('Facultades');
  15. }
  16. if($user->admin!=true){
  17. header('Location: carreras.php?facultad='.$user->facultad['facultad_id']);
  18. }
  19. ?>
  20. <!DOCTYPE html>
  21. <html lang="en">
  22. <head>
  23. <meta charset="UTF-8">
  24. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  25. <title>Facultades</title>
  26. <?php
  27. include 'import/html_css_files.php';
  28. ?>
  29. </head>
  30. <body>
  31. <?php
  32. include "import/html_header.php";
  33. html_header(
  34. "FACULTADES",
  35. "Gestión de Checador "
  36. );
  37. $user->access();
  38. if(isset($_POST["estado"])){
  39. echo "estado=".$_POST["estado"];
  40. }
  41. if(isset($_POST["desc"])){
  42. $desc=$_POST["desc"];
  43. $filter_desc = trim(filter_input(INPUT_POST, "desc", FILTER_SANITIZE_STRING, array('flags' => FILTER_FLAG_STRIP_LOW)));
  44. }else{
  45. $desc=null;
  46. }
  47. if($user->admin==true){
  48. $fs_facultades = query(
  49. "SELECT * FROM fs_facultades(:nombre)",
  50. array(":nombre" => $desc),
  51. single:false
  52. );
  53. }else{
  54. $fs_facultades = query(
  55. "SELECT * FROM fs_facultades(:nombre) where facultad_id = :facultad",
  56. array(":nombre" => $desc, ":facultad" => $user->facultad["facultad_id"]),
  57. single:false
  58. );
  59. }
  60. ?>
  61. <main class="content marco">
  62. <?php if($user->admin==true) {?>
  63. <div class="row">
  64. <div class="col-12 text-right">
  65. <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 facultad</button>
  66. </div>
  67. </div>
  68. <?php }?>
  69. <!-- Filtro -->
  70. <div class="row">
  71. <div class="col-12">
  72. <form action="facultades.php" method="post">
  73. <div class="form-box">
  74. <div class="form-group row">
  75. <label for="filter_desc" class="col-4 col-form-label">Facultad</label>
  76. <div class="col-8 col-sm-4">
  77. <input id="filter_desc" name="desc" type="text" class="form-control"<?php if(isset($filter_desc)){ echo'value="'.$filter_desc.'"';}?>>
  78. </div>
  79. </div>
  80. </div>
  81. <div class="form-group row">
  82. <div class="col-12 text-center">
  83. <button type="submit" class="btn btn-outline-primary">
  84. <span class="ing-buscar ing-fw"></span>
  85. Filtrar
  86. </button>
  87. <button type="submit" class="btn btn-outline-danger btn-reset">
  88. <span class="ing-borrar ing-fw"></span>
  89. Limpiar
  90. </button>
  91. </div>
  92. </div>
  93. </form>
  94. </div>
  95. </div>
  96. <!-- Tabla -->
  97. <div class="row">
  98. <div class="col-12 table-responsive">
  99. <table class="table table-sm table-striped table-white">
  100. <thead class="thead-dark">
  101. <tr>
  102. <th>Estado</th>
  103. <th>Facultad</th>
  104. <?php if($user->acceso == 'w') {?>
  105. <th>Acciones</th>
  106. <?php }?>
  107. </tr>
  108. </thead>
  109. <tbody>
  110. <?php
  111. foreach($fs_facultades as $facultad){
  112. ?>
  113. <tr data-id="<?php echo $facultad["facultad_id"];?>" id="<?php echo $facultad["facultad_id"];?>">
  114. <?php
  115. $color = "danger";
  116. $title = "Inactiva";
  117. if($facultad["facultad_activa"]==1){
  118. $color ="success";
  119. $title="Activa";
  120. }
  121. ?>
  122. <td class="text-<?php echo $color;?> text-center" title="<?php echo $title;?>">
  123. <span class="ing-bullet"></span>
  124. </td>
  125. <td class="text-primary"><?php echo $facultad["facultad_nombre"];?></td>
  126. <?php if($user->acceso == 'w') {?>
  127. <td class="text-center icono-acciones">
  128. <a href="#" data-toggle="modal" data-target="#modal" data-tipo="2" title="Editar"><span class="ing-editar ing-fw"></span></a>
  129. <a href="carreras.php?facultad=<?php echo $facultad["facultad_id"];?>" title="Agregar carreras o periodos"><span class="ing-mas inf-fw"></span></a>
  130. </td>
  131. <?php }?>
  132. </tr>
  133. <?php }?>
  134. </tbody>
  135. </table>
  136. <div id="message"></div>
  137. </div>
  138. </div>
  139. </main>
  140. <!-- Footer -->
  141. <?php
  142. include "import/html_footer.php";
  143. ?>
  144. <!-- Modal -->
  145. <div class="modal fade" id="modal" tabindex="-1" role="dialog" arialabelledby="modal" aria-hidden="true">
  146. <div class="modal-dialog modal-dialog-centered" role="document">
  147. <div class="modal-content">
  148. <div class="modal-header">
  149. <h4 class="col-12 modal-title text-center">
  150. <span id="modalLabel">
  151. Editar nombre de Facultad
  152. </span>
  153. <button type="button" class="close text-white" data-dismiss="modal" aria-label="Close">
  154. <span aria-hidden="true">&times;</span>
  155. </button>
  156. </h4>
  157. </div>
  158. <div class="modal-body">
  159. <form action="" method="post" id="formaModal" onsubmit="return valida_campos()">
  160. <input type="hidden" name="id" id="id">
  161. <div class="form-box">
  162. <div class="form-group row">
  163. <label for="nombre" class="col-4 col-form-label">Nombre *</label>
  164. <div class="col-8">
  165. <input id="nombre" name="nombre" type="text" class="form-control" maxlength="100">
  166. </div>
  167. </div>
  168. <div class="form-group row">
  169. <label for="estado" class="col-4 col-form-label">Estado *</label>
  170. <div class="col-4">
  171. <div class="form-check form-check-inline">
  172. <input class="form-check-input radio-lg" type="radio" id="estado_activo" name="estado" value="1" checked="checked">
  173. <label for="estado_activo" class="col-form-label">Activo</label>
  174. </div>
  175. </div>
  176. <div class="col-4">
  177. <div class="form-check form-check-inline">
  178. <input class="form-check-input radio-lg" type="radio" id="estado_inactivo" name="estado" value="0">
  179. <label for="estado_inactivo" class="col-form-label">Inactivo</label>
  180. </div>
  181. </div>
  182. </div>
  183. <div class ="form-group row mt-3">
  184. <div class="offset-4 col-8">
  185. <button type="submit" class="btn btn-outline-primary" id="submitBtn" data-tipo="1">
  186. <span class="ing-aceptar ing-fw"></span> Guardar
  187. </button>
  188. <button type="reset" class="btn btn-outline-danger" data-dismiss="modal">
  189. <span class="ing-cancelar ing-fw"></span> Cancelar
  190. </button>
  191. </div>
  192. </div>
  193. </div>
  194. </form>
  195. </div>
  196. </div>
  197. </div>
  198. </div>
  199. <script src="js/jquery.min.js"></script>
  200. <script src="js/bootstrap/bootstrap.min.js"></script>
  201. <?php
  202. require_once 'js/messages.php';
  203. ?>
  204. <script>
  205. <?php if(!$fs_facultades){?>
  206. triggerMessage("No se encontraron facultades con estos datos", "Error");
  207. <?php }?>
  208. function valida_campos(){
  209. var error=false;
  210. if($("#nombre").val()==""){
  211. $("#nombre").addClass("is-invalid");
  212. error=true;
  213. }else{
  214. $("#nombre").removeClass("is-invalid");
  215. }
  216. if($('#estado_activo').prop('checked') == false && $('#estado_inactivo').prop('checked') == false){
  217. error=true;
  218. }
  219. if(error){
  220. return false;
  221. }else{
  222. var btn = $('#submitBtn');
  223. if(btn.data("tipo")==2)//update
  224. $('#formaModal').prop("action", "./action/action_facultades_update.php");
  225. else//insert
  226. $('#formaModal').prop("action", "./action/action_facultades_insert.php");
  227. }
  228. }
  229. $(document).on("click", ".btn-reset", function(event){
  230. var forma = $(this).parents("form");
  231. forma.find("input[type=text]").val("");
  232. setDatalistFirst("#filter_desc");
  233. forma.submit();
  234. });
  235. $('#modal').on('show.bs.modal', function(event){
  236. var button = $(event.relatedTarget);
  237. var tipo = button.data('tipo');
  238. var modal = $(this);
  239. if(tipo == 1){//crear
  240. $("#submitBtn").data('tipo', 1);
  241. $("#modalLabel").html("Crear Facultad");
  242. $("#nombre").val("");
  243. $('#estado_inactivo').prop('checked', false);
  244. $('#estado_activo').prop('checked', true);
  245. }else{//editar
  246. $("#submitBtn").data('tipo', 2);
  247. $("#modalLabel").html("Editar Facultad");
  248. $("#nombre").val("");
  249. $('#estado_inactivo').prop('checked', false);
  250. $('#estado_activo').prop('checked', true);
  251. var id = $(event.relatedTarget).parents("tr").data("id");
  252. $.ajax({
  253. url:"action/action_facultades_select.php",
  254. type:"post",
  255. dataType:"json",
  256. data:{id_facultad: id},
  257. success:function(result){
  258. $("#id").val(result[0]["facultad_id"]);
  259. $("#nombre").val(result[0]["facultad_nombre"]);
  260. if(result[0]["facultad_activa"]==1){
  261. $('#estado_inactivo').prop('checked', false);
  262. $('#estado_activo').prop('checked', true);
  263. }else{
  264. $('#estado_inactivo').prop('checked', true);
  265. $('#estado_activo').prop('checked', false);
  266. }
  267. },
  268. error: function(){console.log("Error")}
  269. });
  270. }
  271. });
  272. </script>
  273. </body>
  274. </html>