reporte_oportunidades.php 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553
  1. <?php
  2. require_once("../include/constantes.php");
  3. require_once("../include/bd_pdo.php");
  4. require_once("../classes/ValidaSesion.php");
  5. require_once("../classes/MainMenu.php");
  6. require_once("../include/util.php");
  7. require_once("./include/charts_util.php");
  8. $menu = 12;
  9. $submenu = 126;
  10. //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
  11. $objSesion = new ValidaSesion($pdo, $submenu, GEMA);
  12. if(!$objSesion->tieneAcceso()){
  13. $objSesion->terminaSesion();
  14. }
  15. $objSesion->validaPeriodoUsuario();//si no tiene periodo manda a main
  16. ?>
  17. <!DOCTYPE html>
  18. <html lang="es" prefix="og: http://ogp.me/ns#">
  19. <head>
  20. <title>GEMA - Facultad de Ingeniería</title>
  21. <meta charset="utf-8">
  22. <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  23. <link rel="icon" type="image/png" href="../img/favicon.png" />
  24. <link rel="stylesheet" href="../css/jquery-ui.css" type="text/css">
  25. <link rel="stylesheet" href="../css/bootstrap-ulsa.min.css" type="text/css">
  26. <link rel="stylesheet" href="../css/indivisa.css" type="text/css">
  27. <link rel="stylesheet" href="../css/sgi.css?rand=<?php echo rand();?>" type="text/css">
  28. <link rel="stylesheet" href="../css/fa_all.css" type="text/css">
  29. <link rel="stylesheet" href="../css/month-picker.css" type="text/css">
  30. <link rel="stylesheet" href="../css/calendar.css" type="text/css">
  31. </head>
  32. <body>
  33. <div>
  34. <?php
  35. //--- Objeto que pinta menu
  36. $menuObj = new MainMenu($_SESSION["usuario_id"], $menu, $pdo, GEMA,"Alerta de bajas");//usr, menu, pdo, sist
  37. $menuObj->printMenu();
  38. if($_SESSION["periodo_id"] != ""){
  39. //Plan de estudios
  40. $stmt = $pdo->prepare('Select * from fs_planestudio_alumnos(:nivel, NULL, true)');
  41. $stmt->bindParam(":nivel", $_SESSION["nivel_id"]);
  42. if(!$stmt->execute()){
  43. $errorDesc = "Ocurrió un error al cargar los planes de estudio";
  44. }else{
  45. $plan_rs = $stmt->fetchAll();
  46. }
  47. $stmt->closeCursor();
  48. $filter_periodo = $_SESSION["periodo_id"];
  49. $nivel = $plan_rs[0]["Nivel_desc"];
  50. $prefijo = "";
  51. $query = "";
  52. if(isset($_POST["plan"]) && $_POST["plan"] != 0 && $_POST["plan"] != ""){
  53. $filter_plan = filter_input(INPUT_POST, "plan", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  54. foreach($plan_rs as $plan){
  55. if($plan["PlanEstudio_id"] == $filter_plan)
  56. $prefijo = "_".$plan["Carrera_prefijo"];
  57. break;
  58. }
  59. $query .= ":plan,";
  60. }else
  61. $query .= "NULL,";
  62. if(isset($_POST["generacion"]) && $_POST["generacion"] != 0 && $_POST["generacion"] != ""){
  63. $filter_generacion = fechaGuion(trim(filter_input(INPUT_POST, "generacion", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW))));//limpia texto
  64. $query .= ":generacion,";
  65. }else
  66. $query .= "NULL,";
  67. $filter_intentos = 2;
  68. if(isset($_POST["intentos"]))
  69. $filter_intentos = filter_input(INPUT_POST, "intentos", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  70. // ---- Busca intentos por materia -----
  71. $stmt = $pdo->prepare('Select * from fs_materiasintentos('.$query.' :intentos)');//sólo no revalidadas
  72. $stmt->bindParam(":intentos", $filter_intentos);
  73. if(isset($filter_plan)) $stmt->bindParam(":plan", $filter_plan);
  74. if(isset($filter_generacion)) $stmt->bindParam(":generacion", $filter_generacion);
  75. if(!$stmt->execute()){
  76. $errorDesc = "Ocurrió un error al cargar el total de materias reprobadas.";
  77. print_r($stmt->errorInfo());
  78. }else{
  79. $intentos_rs = $stmt->fetchAll();
  80. $intentosArr = array();
  81. $last = -1;
  82. $matriasArr = array();
  83. $i = 0;
  84. $total = 0;
  85. foreach($intentos_rs as $intento){
  86. if($last != $intento["Usuario_claveULSA"]){
  87. if($last != -1){
  88. $intentosArr[$i]["materiaArr"]=$materiasArr;
  89. $intentosArr[$i]["total"] = $total;
  90. $i++;
  91. $total = 0;
  92. }
  93. $last = $intento["Usuario_claveULSA"];
  94. $materiasArr = array();
  95. }
  96. $intentosArr[$i] = array("id" => $intento["Usuario_id"], "clave" => $intento["Usuario_claveULSA"], "nombre" =>$intento["Usuario_apellidos"]." ".$intento["Usuario_nombre"], "carrera"=>$intento["Carrera_desc"]." ".$intento["PlanEstudio_desc"],
  97. "fecha"=>$intento["Alumno_fecha_ingreso"], "generacion"=>$intento["Alumno_generacion"], "total"=>0, "materiaArr"=>array());
  98. $materiasArr[] = array("id" => $intento["Materia_id"], "desc" =>$intento["Materia_desc"], "total"=>$intento["Intentos_total"]);
  99. $total+= $intento["Intentos_total"];
  100. }
  101. if($last != -1){
  102. $intentosArr[$i]["materiaArr"]=$materiasArr;
  103. $intentosArr[$i]["total"] = $total;
  104. }
  105. unset($i);
  106. $filter_orden = 0;
  107. if(isset($_POST["orden"]) && $_POST["orden"] != 0){
  108. $filter_orden = filter_input(INPUT_POST, "orden", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  109. usort($intentosArr, function ($item1, $item2) {
  110. return $item2['total'] <=> $item1['total'];
  111. });
  112. }
  113. }
  114. $stmt->closeCursor();
  115. // ---- Busca intentos totales reprobados -----
  116. $stmt = $pdo->prepare('Select * from fs_materiasreprobadas('.$query.' :intentos)');//sólo no revalidadas
  117. $stmt->bindParam(":intentos", $filter_intentos);
  118. if(isset($filter_plan)) $stmt->bindParam(":plan", $filter_plan);
  119. if(isset($filter_generacion)) $stmt->bindParam(":generacion", $filter_generacion);
  120. if(!$stmt->execute()){
  121. $errorDesc = "Ocurrió un error al cargar el total de materias reprobadas.";
  122. print_r($stmt->errorInfo());
  123. }else{
  124. $intentos_rs = $stmt->fetchAll();
  125. $intentosTotalArr = array();
  126. $last = -1;
  127. $matriasArr = array();
  128. $i = 0;
  129. $total = 0;
  130. foreach($intentos_rs as $intento){
  131. if($last != $intento["Usuario_claveULSA"]){
  132. if($last != -1){
  133. $intentosTotalArr[$i]["materiaArr"]=$materiasArr;
  134. $i++;
  135. }
  136. $last = $intento["Usuario_claveULSA"];
  137. $materiasArr = array();
  138. }
  139. $intentosTotalArr[$i] = array("id" => $intento["Usuario_id"], "clave" => $intento["Usuario_claveULSA"], "nombre" =>$intento["Usuario_apellidos"]." ".$intento["Usuario_nombre"], "carrera"=>$intento["Carrera_desc"]." ".$intento["PlanEstudio_desc"],
  140. "fecha"=>$intento["Alumno_fecha_ingreso"], "generacion"=>$intento["Alumno_generacion"], "total"=>$intento["Intentos_total"], "materiaArr"=>array());
  141. $materiasArr[] = array("id" => $intento["Materia_id"], "desc" =>$intento["Materia_desc"]);
  142. }
  143. if($last != -1){
  144. $intentosTotalArr[$i]["materiaArr"]=$materiasArr;
  145. }
  146. unset($i);
  147. $filter_orden = 0;
  148. if(isset($_POST["orden"]) && $_POST["orden"] != 0){
  149. $filter_orden = filter_input(INPUT_POST, "orden", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  150. usort($intentosTotalArr, function ($item1, $item2) {
  151. return $item2['total'] <=> $item1['total'];
  152. });
  153. }
  154. }
  155. $stmt->closeCursor();
  156. }//hay periodo seleccionado
  157. //--Manejo de errores y mensajes de exito
  158. if(isset($_GET["error"]) && is_numeric($_GET["error"])){
  159. switch ($_GET["error"]){
  160. case 0: $errorDesc = "No se reciberon los datos del alumno."; break;
  161. //case 1: $errorDesc = "No existe el alumno que buscas. Selecciona una del listado."; break;
  162. //case 2: $errorDesc = "Ocurrió un error al leer los datos del alumno."; break;
  163. //case 3: $errorDesc = "No tienes permisos para realizar esa acción."; break;
  164. case 4: $errorDesc = "Ocurrió un error al actualizar el estado del alumno."; break;
  165. }
  166. }
  167. if(isset($_GET["ok"]) && is_numeric($_GET["ok"])){
  168. switch ($_GET["ok"]){
  169. case 2: $successDesc = "El estado del alumno se actualizó correctamente."; break;
  170. }
  171. }
  172. ?>
  173. <main class="container-fluid content marco">
  174. <?php include_once("../include/errorMessage.php"); ?>
  175. <?php include("../include/periodoCambio.php");?>
  176. <?php if($_SESSION["periodo_id"] != ""){ ?>
  177. <!-- Filtro -->
  178. <div class="row">
  179. <div class="col-12">
  180. <form action="#" method="post">
  181. <div class="form-box form-box-info">
  182. <div class="form-group row">
  183. <label for="plan-nueva" class="col-4 col-form-label">Programa académico</label>
  184. <div class="col-8 col-sm-4">
  185. <div class="datalist datalist-select mb-1 w-100">
  186. <div class="datalist-input">Todos en <?php echo $nivel;?></div>
  187. <span class="ing-buscar icono"></span>
  188. <ul style="display:none">
  189. <li data-id="0">Todos en <?php echo $nivel;?></li>
  190. <?php foreach($plan_rs as $plan) { ?>
  191. <li data-id="<?php echo $plan["PlanEstudio_id"];?>" <?php if(isset($filter_plan) && $filter_plan==$plan["PlanEstudio_id"]){ echo 'class="selected"'; }?>><?php echo $plan["Carrera_desc"]." ".$plan["PlanEstudio_desc"];?></li>
  192. <?php }?>
  193. </ul>
  194. <input type="hidden" id="plan-nueva" name="plan" value="">
  195. </div>
  196. </div>
  197. </div>
  198. <div class="form-group row">
  199. <label for="generacion" class="col-4 col-form-label">Generación</label>
  200. <div class="col-8 col-sm-4">
  201. <div class="input-group">
  202. <input id="generacion" type="text" class="form-control" placeholder="mm, aaaa" maxlength="10" readonly="readonly" required="required" value="<?php if(isset($filter_generacion)){echo fechaMonthPicker($filter_generacion);}?>">
  203. <input type="hidden" id="generacion-hidden" name="generacion" value="<?php if(isset($filter_generacion)){echo fechaGuion($filter_generacion);}?>">
  204. <div class="invalid-feedback">No es una generación válida.</div>
  205. <div class="input-group-append">
  206. <button class="btn btn-outline-danger clear-date" type="button"><?php echo $ICO["borrar"];?></button>
  207. </div>
  208. </div>
  209. </div>
  210. </div>
  211. <div class="form-group row">
  212. <label for="intentos" class="col-4 col-form-label">Intentos</label>
  213. <div class="col-8 col-sm-4">
  214. <div class="datalist datalist-select mb-1 w-100">
  215. <div class="datalist-input">2 o más reprobados</div>
  216. <span class="ing-buscar icono"></span>
  217. <ul style="display:none">
  218. <li data-id="2">2 o más reprobados</li>
  219. <li data-id="3" <?php if(isset($filter_intentos) && $filter_intentos==3) echo 'class="selected"'?>>3 o más reprobados</li>
  220. </ul>
  221. <input type="hidden" id="intentos" name="intentos" value="2">
  222. </div>
  223. </div>
  224. </div>
  225. <div class="form-group row">
  226. <label for="orden" class="col-4 col-form-label">Ordenar</label>
  227. <div class="col-8 col-sm-4">
  228. <div class="datalist datalist-select mb-1 w-100">
  229. <div class="datalist-input">Alfabéticamente ascendente</div>
  230. <span class="ing-buscar icono"></span>
  231. <ul style="display:none">
  232. <li data-id="0">Alfabéticamente ascendente</li>
  233. <li data-id="1" <?php if(isset($filter_orden) && $filter_orden==1) echo 'class="selected"'?>>Por intentos descendente</li>
  234. </ul>
  235. <input type="hidden" id="orden" name="orden" value="0">
  236. </div>
  237. </div>
  238. </div>
  239. </div>
  240. <div class="form-group row mt-4">
  241. <div class="col-12 text-center">
  242. <button type="submit" class="btn btn-outline-primary"><?php echo $ICO["buscar"]; ?> Filtrar</button>
  243. <button type="button" class="btn btn-outline-danger btn-reset"><?php echo $ICO["borrar"]?> Limpiar</button>
  244. </div>
  245. </div>
  246. </form>
  247. </div>
  248. </div>
  249. <!-- end Filtro -->
  250. <?php } ?>
  251. <ul class="nav nav-tabs d-print-none my-4" id="myTab" role="tablist">
  252. <li class="nav-item">
  253. <a class="nav-link active" id="tabMisma-tab" data-toggle="tab" href="#tabMisma" role="tab" aria-controls="reprobados" aria-selected="true">Intentos una materia</a>
  254. </li>
  255. <li class="nav-item">
  256. <a class="nav-link" id="tabTotal-tab" data-toggle="tab" href="#tabTotal" role="tab" aria-controls="reprobados" aria-selected="false">Acumulado total</a>
  257. </li>
  258. </ul>
  259. <div class="tab-content" id="cardexTabContent">
  260. <div class="tab-pane fade show active" id="tabMisma" role="tabpanel" aria-labelledby="tabMisma-tab">
  261. <?php if(count($intentosArr) > 0){ ?>
  262. <div class="row">
  263. <div class="col-12 text-right">
  264. <form action="./export/xls_reprobadosIntentos.php" target="_blank" method="post">
  265. <input type="hidden" name="plan" value="<?php echo isset($filter_plan)?$filter_plan:0;?>">
  266. <input type="hidden" name="generacion" value="<?php echo isset($filter_generacion)?$filter_generacion:'';?>">
  267. <input type="hidden" name="intentos" value="<?php echo $filter_intentos;?>">
  268. <input type="hidden" name="prefijo" value="<?php echo $prefijo;?>">
  269. <p class="pb-4"><button type="submit" class="btn btn-outline-secondary"><?php echo $ICO["descargar"];?> Descargar datos</button></p>
  270. </form>
  271. </div>
  272. </div>
  273. <div class="row">
  274. <div class="col-12 table-responsive">
  275. <table class="table table-sm table-striped table-white">
  276. <thead class="thead-dark">
  277. <tr >
  278. <th>Clave</th>
  279. <th>Nombre</th>
  280. <th>Generación</th>
  281. <th>Materias no acreditadas</th>
  282. <th>Acciones</th>
  283. </tr>
  284. </thead>
  285. <tbody>
  286. <?php
  287. foreach($intentosArr as $intento){
  288. ?>
  289. <tr data-clave="<?php echo $intento["clave"]; ?>">
  290. <td class="text-center font-weight-bold"><?php echo $intento["clave"]; ?></td>
  291. <td><?php echo $intento["nombre"];?></td>
  292. <td class="text-center text-capitalize"><?php echo fechaMonthPicker($intento["generacion"]); ?></td>
  293. <td>
  294. <table class="table table-sm table-borderless table-nostriped mb-0">
  295. <?php foreach($intento["materiaArr"] as $mat){?>
  296. <tr>
  297. <td class="py-0"><?php echo $mat["desc"];?></td>
  298. <td class="py-0" width="90px"><?php echo $mat["total"]==1?"1 vez":$mat["total"]." veces";?></td>
  299. </tr>
  300. <?php } ?>
  301. </table>
  302. </td>
  303. <td class="text-center icono-acciones">
  304. <a href="reporte_alumnoscardex_ver.php?id=<?php echo $intento["id"]; ?>" title="Ver cardex"><?php echo $ICO["ver"];?></a>
  305. <?php if($objSesion->puedeEditar()){ ?>
  306. <a href="#" data-toggle="modal" data-target="#modalEstado" title="Cambiar estado" data-tipo="1"><?php echo $ICO["editar"];?></a>
  307. <?php } ?>
  308. </td>
  309. </tr>
  310. <?php } ?>
  311. </tbody>
  312. </table>
  313. </div>
  314. </div>
  315. <?php } ?>
  316. </div>
  317. <div class="tab-pane fade" id="tabTotal" role="tabpanel" aria-labelledby="tabTotal-tab">
  318. <?php if(count($intentosTotalArr) > 0){ ?>
  319. <div class="row">
  320. <div class="col-12 text-right">
  321. <form action="./export/xls_reprobadosTotal.php" target="_blank" method="post">
  322. <input type="hidden" name="plan" value="<?php echo isset($filter_plan)?$filter_plan:0;?>">
  323. <input type="hidden" name="clave" value="<?php echo isset($filter_clave)?$filter_clave:'';?>">
  324. <input type="hidden" name="intentos" value="<?php echo $filter_intentos;?>">
  325. <input type="hidden" name="prefijo" value="<?php echo $prefijo;?>">
  326. <p class="pb-4"><button type="submit" class="btn btn-outline-secondary"><?php echo $ICO["descargar"];?> Descargar datos</button></p>
  327. </form>
  328. </div>
  329. </div>
  330. <div class="row">
  331. <div class="col-12 table-responsive">
  332. <table class="table table-sm table-striped table-white">
  333. <thead class="thead-dark">
  334. <tr >
  335. <th>Clave</th>
  336. <th>Nombre</th>
  337. <th>Generación</th>
  338. <th>Materias no acreditadas</th>
  339. <?php if($objSesion->puedeEditar()){ ?>
  340. <th>Acciones</th>
  341. <?php } ?>
  342. </tr>
  343. </thead>
  344. <tbody>
  345. <?php
  346. foreach($intentosTotalArr as $intento){
  347. ?>
  348. <tr data-clave="<?php echo $intento["clave"]; ?>">
  349. <td class="text-center font-weight-bold"><?php echo $intento["clave"]; ?></td>
  350. <td><?php echo $intento["nombre"];?></td>
  351. <td class="text-center text-capitalize"><?php echo fechaMonthPicker($intento["generacion"]); ?></td>
  352. <td>
  353. <table class="table table-sm table-borderless table-nostriped mb-0">
  354. <?php foreach($intento["materiaArr"] as $mat){?>
  355. <tr>
  356. <td class="py-0"><?php echo $mat["desc"];?></td>
  357. </tr>
  358. <?php } ?>
  359. </table>
  360. </td>
  361. <td class="text-center icono-acciones">
  362. <a href="reporte_alumnoscardex_ver.php?id=<?php echo $intento["id"]; ?>" title="Ver cardex"><?php echo $ICO["ver"];?></a>
  363. <?php if($objSesion->puedeEditar()){ ?>
  364. <a href="#" data-toggle="modal" data-target="#modalEstado" title="Cambiar estado" data-tipo="2" ><?php echo $ICO["editar"];?></a>
  365. <?php } ?>
  366. </td>
  367. </tr>
  368. <?php } ?>
  369. </tbody>
  370. </table>
  371. </div>
  372. </div>
  373. <?php } ?>
  374. </div>
  375. </div>
  376. </main>
  377. <!--- FOOTER--->
  378. <?php require_once("../include/footer.php"); ?>
  379. <?php if($objSesion->puedeEditar()){ ?>
  380. <!-- MODAL -->
  381. <div class="modal fade" id="modalEstado" tabindex="-1" role="dialog" aria-labelledby="modal" aria-hidden="true">
  382. <div class="modal-dialog modal-dialog-centered" role="document">
  383. <div class="modal-content">
  384. <div class="modal-header">
  385. <h4 class="col-12 modal-title text-center">Cambiar estado de alumno
  386. <button type="button" class="close text-white" data-dismiss="modal" aria-label="Close">
  387. <span aria-hidden="true">&times;</span>
  388. </button></h4>
  389. </div>
  390. <div class="modal-body">
  391. <form action="action/cambioestadoalumnos_update.php" method="post" id="formaEstado">
  392. <input type="hidden" name="id" id="id_cambio">
  393. <input type="hidden" name="target" value="reporte_oportunidades.php">
  394. <div class="form-box">
  395. <div class="form-group row">
  396. <label class="col-4 col-form-label">Estado actual</label>
  397. <div class="col- estado-color">
  398. <p class="mb-0 mt-2"><?php echo $ICO_LG["circulo"];?> <span id="static_estado"></span></p>
  399. </div>
  400. </div>
  401. <div class="form-group row">
  402. <label for="cambio_estado" class="col-4 col-form-label">Cambiar a</label>
  403. <div class="col-8">
  404. <select name="estado" id="cambio_estado" class="form-control">
  405. <?php
  406. $stmt = $pdo->prepare('Select * from fs_subestadoalumno(2, NULL)');
  407. $stmt->execute();
  408. foreach($stmt->fetchAll() as $sub) {?>
  409. <option value="<?php echo $sub["SubEstadoAlumno_id"];?>"><?php echo $sub["EstadoAlumno_desc"]." - ".$sub["SubEstadoAlumno_desc"];?></option>
  410. <?php } ?>
  411. </select>
  412. </div>
  413. </div>
  414. <div class="form-group row">
  415. <label class="col-4 col-form-label" for="fecha">Fecha de cambio</label>
  416. <div class="col-8 estado-color">
  417. <input id="fecha" name="fecha" type="text" class="form-control date-picker" placeholder="dd/mm/aaaa" value="<?php echo date("d/m/Y"); ?>" maxlength="10" readonly="readonly">
  418. </div>
  419. </div>
  420. <div class="form-group row">
  421. <label for="comentario" class="col-4 col-form-label">Comentarios</label>
  422. <div class="col-8">
  423. <textarea id="comentario" name="comentario" rows="3" class="form-control"></textarea>
  424. </div>
  425. </div>
  426. </div>
  427. <div class="form-group row">
  428. <div class="offset-4 col-8">
  429. <button type="submit" class="btn btn-outline-primary" data-tipo="1"><?php echo $ICO["aceptar"];?> Guardar</button>
  430. <button type="reset" class="btn btn-outline-danger" data-dismiss="modal"><?php echo $ICO["cancelar"];?> Cancelar</button>
  431. </div>
  432. </div>
  433. </form>
  434. </div>
  435. </div>
  436. </div>
  437. </div>
  438. <?php } ?>
  439. </div>
  440. <script src="../js/jquery.min.js"></script>
  441. <script src="../js/jquery-ui.js"></script>
  442. <script src="../js/bootstrap/popper.min.js"></script>
  443. <script src="../js/bootstrap/bootstrap.min.js"></script>
  444. <script src="../js/sidebarmenu.js"></script>
  445. <script src="../js/datalist.js"></script>
  446. <script src="../js/datepicker-es.js"></script>
  447. <script src="../js/month-picker.js"></script>
  448. <script>
  449. $(document).on( "click", ".btn-reset", function(event){
  450. var forma = $(this).parents("form");
  451. forma.find("input[type=text]").val("");
  452. forma.find("input[type=hidden]").val("");
  453. //forma.find("select").prop("selectedIndex",0);
  454. setDatalistFirst("#plan-nueva");
  455. setDatalistFirst("#intentos");
  456. setDatalistFirst("#orden");
  457. forma.submit();
  458. });
  459. $(document).on( "click", ".clear-date", function(event){
  460. $(this).parents(".input-group").find("input[type=text]").val("");
  461. });
  462. $(".date-picker" ).datepicker({ dateFormat: "dd/mm/yy", changeMonth: true, changeYear: true});
  463. $(".date-picker" ).datepicker( $.datepicker.regional[ "es" ] );
  464. $(document).ready(function(){
  465. $('#generacion').MonthPicker({ Button: false, MaxMonth: 0, MonthFormat: 'M, yy', AltFormat: 'yy-mm-dd', AltField: '#generacion-hidden' <?php if(isset($filter_generacion)){ echo ", SelectedMonth: '".fechaMonthPicker($filter_generacion)."'";}?> });
  466. setDatalist("#periodo", <?php echo $_SESSION["periodo_id"]; ?>);
  467. $(document).on('click', '#dlPeriodo ul li' ,function(){
  468. $("#formaPeriodo").submit();
  469. });
  470. <?php if($objSesion->puedeEditar()){ ?>
  471. //Cambiar estado individual
  472. $('#modalEstado').on('show.bs.modal', function (event) {
  473. var button = $(event.relatedTarget);
  474. $("#errorBox").collapse('hide');
  475. $("#errorBox_text").html("");
  476. var id = $(event.relatedTarget).parents("tr").data("clave");
  477. /*var edoDesc = $(event.relatedTarget).data("subestado");
  478. var edoColor = $(event.relatedTarget).data("color");
  479. var edoID = $(event.relatedTarget).data("estadoid");*/
  480. $("#id_cambio").val(id);
  481. $.ajax({
  482. url: './action/cambioestadoalumnos_select.php',
  483. type: 'POST',
  484. dataType: 'json',
  485. data: { usr: id },
  486. success: function(result) {
  487. if(result["error"]!= "" && result["error"] !== undefined){
  488. $("#errorBox").collapse('show');
  489. $("#errorBox_text").html(result["error"]);
  490. $('#messageBox')[0].scrollIntoView({ block: "end" });
  491. $("#modalEstado").modal("hide");
  492. }else{
  493. $("#static_estado").text(result["datos"]["estado_desc"]+" - "+result["datos"]["subestado_desc"]);
  494. $("#modalEstado .estado-color").css("color", result["datos"]["color"]);
  495. if(button.data("tipo") == 1)
  496. $("#comentario").val("Baja por exceder intentos de acreditación de materias");
  497. else
  498. $("#comentario").val("Baja por exceder materias no acreditadas");
  499. }
  500. },
  501. error: function(jqXHR, textStatus, errorThrown ){
  502. $("#errorBox").collapse('show');
  503. $("#errorBox_text").html(errorThrown);
  504. $("#modalEstado").modal("hide");
  505. }
  506. });//ajax
  507. });//click//Cambiar estado individual
  508. <?php } ?>
  509. });
  510. </script>
  511. </body>
  512. </html>