nombramientos.php 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551
  1. <?php
  2. require_once("../include/constantes.php");
  3. require_once("../include/util.php");
  4. require_once("../include/bd_pdo.php");
  5. require_once("../classes/ValidaSesion.php");
  6. require_once("../classes/MainMenu.php");
  7. $menu = 5;
  8. $submenu = 54;
  9. //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
  10. $objSesion = new ValidaSesion($pdo, $submenu, APSA);
  11. if(!$objSesion->tieneAcceso()){
  12. $objSesion->terminaSesion();
  13. }
  14. $objSesion->validaPeriodoUsuario();//si no tiene periodo manda a main
  15. /*if(!$objSesion->puedeEditar()){
  16. $errorDesc = "No puedes generar nombramientos.";
  17. }*/
  18. //Obtiene grupos del periodo
  19. $stmt = $pdo->prepare('Select * from fs_grupo(NULL, :periodo)');
  20. $stmt->bindParam(":periodo", $_SESSION["periodo_id"]);
  21. if(!$stmt->execute()){
  22. header("Location: grupos.php?error=4");
  23. exit();
  24. }else{
  25. $grupos_rs = $stmt->fetchAll();
  26. }
  27. $stmt->closeCursor();
  28. if(!is_array($grupos_rs) || count($grupos_rs) == 0){
  29. header("Location: grupos.php?error=5");
  30. exit();
  31. }
  32. ?>
  33. <!DOCTYPE html>
  34. <html lang="es" prefix="og: http://ogp.me/ns#">
  35. <head>
  36. <title>APSA - Facultad de Ingeniería</title>
  37. <meta charset="utf-8">
  38. <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  39. <link rel="icon" type="image/png" href="../img/favicon.png" />
  40. <link rel="stylesheet" href="../css/bootstrap-ulsa.min.css" type="text/css">
  41. <link rel="stylesheet" href="../css/indivisa.css" type="text/css">
  42. <link rel="stylesheet" href="../css/sgi.css?rand=<?php echo rand();?>" type="text/css">
  43. <link rel="stylesheet" href="../css/fa_all.css" type="text/css">
  44. <link rel="stylesheet" href="../css/jquery-ui.css" type="text/css">
  45. <link rel="stylesheet" href="../css/calendar.css" type="text/css">
  46. <link rel="stylesheet" href="./css/richtext.css" type="text/css">
  47. </head>
  48. <body>
  49. <div>
  50. <?php
  51. //--- Objeto que pinta menu
  52. $menuObj = new MainMenu($_SESSION["usuario_id"], $menu, $pdo, APSA, "Nombramientos");//usr, menu, pdo, sist
  53. $menuObj->printMenu();
  54. //Obtiene fechas de periodo
  55. $stmt = $pdo->prepare('Select * from fs_periodo(:periodo, NULL, NULL, true)');
  56. $stmt->bindParam(":periodo", $_SESSION["periodo_id"]);
  57. if(!$stmt->execute()){
  58. $errorDesc = "Ocurrió un error al cargar las fechas del periodo";
  59. }else{
  60. $periodo_rs = $stmt->fetch();
  61. $nivel = $periodo_rs["Nivel_id"];
  62. }
  63. $stmt->closeCursor();
  64. $stmt = null;
  65. $stmt = $pdo->prepare('Select * from fs_profesoresperiodo(:periodo, NULL, 0, NULL)');
  66. $stmt->bindParam(":periodo", $_SESSION["periodo_id"]);
  67. if(!$stmt->execute()){
  68. $errorDesc = "Ocurrió un error al cargar las profesores del periodo";
  69. }else{
  70. $profesores_rs = $stmt->fetchAll();
  71. }
  72. $stmt->closeCursor();
  73. $stmt = null;
  74. //--Manejo de errores y mensajes de exito
  75. if(isset($_GET["error"]) && is_numeric($_GET["error"])){
  76. switch ($_GET["error"]){
  77. case 0: $errorDesc = "No se reciberon los datos del usuario."; break;
  78. case 1: $errorDesc = "Ocurrió un error al leer la información de los nombremientos."; break;
  79. case 2: $errorDesc = "Ocurrió un error al leer los datos del profesor."; break;
  80. case 3: $errorDesc = "No tienes permisos para realizar esa acción."; break;
  81. case 4: $errorDesc = "Ocurrió un error al guardar las fechas de la carta."; break;
  82. case 5: $errorDesc = "Ocurrió un error al guardar el texto de la carta."; break;
  83. }
  84. }
  85. if(isset($_GET["ok"]) && is_numeric($_GET["ok"])){
  86. switch ($_GET["ok"]){
  87. case 0: $successDesc = "La carta de nombramiento se guardó correctamente."; break;
  88. }
  89. }
  90. ?>
  91. <main class="container-fluid content marco">
  92. <?php include_once("../include/errorMessage.php");?>
  93. <?php include("../include/periodoCambio.php");?>
  94. <?php if(isset($periodo_rs)){ ?>
  95. <p>Completa las fechas para generar los nombramientos de los profesores del periodo.</p>
  96. <div class="row ">
  97. <div class="col-12">
  98. <form action="./export/pdf_nombramientos.php" method="post" onsubmit="return validaRangos()" target="_blank" id="formaNombramiento">
  99. <?php
  100. $stmt = $pdo->prepare('Select * from fs_fechaimportante(:periodo, 4)');
  101. $stmt->bindParam(":periodo", $_SESSION["periodo_id"]);
  102. if($stmt->execute()){
  103. $fecha_rs = $stmt->fetch();
  104. }
  105. $stmt->closeCursor();
  106. $stmt = null;
  107. ?>
  108. <div class="form-box form-box-info">
  109. <div class="form-group row">
  110. <label for="fecha_carta" class="col-4 col-form-label">Fecha de la carta *</label>
  111. <div class="col-4">
  112. <input id="fecha_carta" name="fecha_carta" type="text" class="form-control date-picker-all" placeholder="dd/mm/aaaa" maxlength="10" required="required" readonly="readonly" value="<?php echo fechaSlash($fecha_rs["FechaImportante_inicial"])?>">
  113. </div>
  114. </div>
  115. </div>
  116. <div class="row bg-info my-3 px-3">
  117. <div class="col-12">
  118. <p class="alert-heading mb-0 py-2">
  119. <a class="d-block collapsed" data-toggle="collapse" href="#avanzadoBox" role="button" aria-expanded="false" aria-controls="collapseExample">
  120. <i class="ing-caret ing-fw float-right"></i> <span class="ing-importante2"></span> Fechas del periodo</a>
  121. </p>
  122. </div>
  123. <div class="col-12 collapse" id="avanzadoBox">
  124. <div class="form-box">
  125. <div class="row form-group">
  126. <?php
  127. $stmt = $pdo->prepare('Select * from fs_fechaimportante(:periodo, 3)');
  128. $stmt->bindParam(":periodo", $_SESSION["periodo_id"]);
  129. if($stmt->execute()){
  130. $fecha_rs = $stmt->fetch();
  131. }
  132. $stmt->closeCursor();
  133. $stmt = null;
  134. ?>
  135. <div class="row">
  136. <div class="col-7"><p>Escribe los siguientes códigos en el texto de la carta para reemplazarlos por las fechas correspondientes.</p></div>
  137. <div class=" col-2 font-weight-bold text-center">Sin año</div>
  138. <div class="col-2 font-weight-bold text-center">Con año</div>
  139. </div>
  140. <div class="form-box">
  141. <div class="form-group row">
  142. <label for="fecha_inicial" class="col-3 col-form-label">Inicio del periodo *</label>
  143. <div class="col-4">
  144. <input type="text" id="fecha_inicial" name="fecha_inicial" class="form-control text-info" placeholder="dd/mm/aaaa" maxlength="10" required="required" readonly="readonly" value="<?php echo fechaSlash($fecha_rs["FechaImportante_inicial"])?>">
  145. </div>
  146. <div class="col-2">
  147. <div class="input-group">
  148. <input type="text" class="form-control texto-copiar text-info" value="<?php echo PE_INI;?>" readonly="true">
  149. <div class="input-group-append">
  150. <button class="btn btn-outline-primary btn-copiar" type="button"><span class="ing-copiar"></span></button>
  151. </div>
  152. </div>
  153. </div>
  154. <div class="col-2">
  155. <div class="input-group">
  156. <input type="text" class="form-control texto-copiar text-info" value="<?php echo PE_INI_Y;?>" readonly="true">
  157. <div class="input-group-append">
  158. <button class="btn btn-outline-primary btn-copiar" type="button"><span class="ing-copiar"></span></button>
  159. </div>
  160. </div>
  161. </div>
  162. </div>
  163. <div class="form-group row">
  164. <label for="fecha_final" class="col-3 col-form-label">Fin del periodo *</label>
  165. <div class="col-4">
  166. <input type="text" id="fecha_final" name="fecha_final" class="form-control text-info" placeholder="dd/mm/aaaa" maxlength="10" required="required" readonly="readonly" value="<?php echo fechaSlash($fecha_rs["FechaImportante_final"])?>">
  167. </div>
  168. <div class="col-2">
  169. <div class="input-group">
  170. <input type="text" class="form-control texto-copiar text-info" value="<?php echo PE_FIN;?>" readonly="true">
  171. <div class="input-group-append">
  172. <button class="btn btn-outline-primary btn-copiar" type="button"><span class="ing-copiar"></span></button>
  173. </div>
  174. </div>
  175. </div>
  176. <div class="col-2">
  177. <div class="input-group">
  178. <input type="text" class="form-control texto-copiar text-info" value="<?php echo PE_FIN_Y;?>" readonly="true">
  179. <div class="input-group-append">
  180. <button class="btn btn-outline-primary btn-copiar" type="button"><span class="ing-copiar"></span></button>
  181. </div>
  182. </div>
  183. </div>
  184. </div>
  185. <div class="form-group row">
  186. <label for="fecha_inicial_clases" class="col-3 col-form-label">Inicio de clases *</label>
  187. <div class="col-4">
  188. <input id="fecha_inicial_clases" type="text" class="form-control text-info" placeholder="dd/mm/aaaa" maxlength="10" required="required" readonly="readonly" value="<?php echo fechaSlash($periodo_rs["Periodo_fecha_inicial"])?>">
  189. </div>
  190. <div class="col-2">
  191. <div class="input-group">
  192. <input type="text" class="form-control texto-copiar text-info" value="<?php echo PR_INI;?>" readonly="true">
  193. <div class="input-group-append">
  194. <button class="btn btn-outline-primary btn-copiar" type="button"><span class="ing-copiar"></span></button>
  195. </div>
  196. </div>
  197. </div>
  198. <div class="col-2">
  199. <div class="input-group">
  200. <input type="text" class="form-control texto-copiar text-info" value="<?php echo PR_INI_Y;?>" readonly="true">
  201. <div class="input-group-append">
  202. <button class="btn btn-outline-primary btn-copiar" type="button"><span class="ing-copiar"></span></button>
  203. </div>
  204. </div>
  205. </div>
  206. </div>
  207. <div class="form-group row">
  208. <label for="fecha_final_clases" class="col-3 col-form-label">Fin de clases *</label>
  209. <div class="col-4">
  210. <input id="fecha_final_clases" type="text" class="form-control text-info" placeholder="dd/mm/aaaa" maxlength="10" required="required" readonly="readonly" value="<?php echo fechaSlash($periodo_rs["Periodo_fecha_final"])?>">
  211. </div>
  212. <div class="col-2">
  213. <div class="input-group">
  214. <input type="text" class="form-control texto-copiar text-info" value="<?php echo PR_FIN;?>" readonly="true">
  215. <div class="input-group-append">
  216. <button class="btn btn-outline-primary btn-copiar" type="button"><span class="ing-copiar"></span></button>
  217. </div>
  218. </div>
  219. </div>
  220. <div class="col-2">
  221. <div class="input-group">
  222. <input type="text" class="form-control texto-copiar text-info" value="<?php echo PR_FIN_Y;?>" readonly="true">
  223. <div class="input-group-append">
  224. <button class="btn btn-outline-primary btn-copiar" type="button"><span class="ing-copiar"></span></button>
  225. </div>
  226. </div>
  227. </div>
  228. </div>
  229. <?php
  230. if($nivel == 1){
  231. $stmt = $pdo->prepare('Select * from fs_fechaimportante(:periodo, 2)');
  232. $stmt->bindParam(":periodo", $_SESSION["periodo_id"]);
  233. if($stmt->execute()){
  234. $fecha_rs = $stmt->fetch();
  235. }
  236. $stmt->closeCursor();
  237. $stmt = null;
  238. ?>
  239. <div class="form-group row">
  240. <label for="fecha_inicial_extras" class="col-3 col-form-label">Inicio de extraordinarios *</label>
  241. <div class="col-4">
  242. <input id="fecha_inicial_extras" name="fecha_inicial_extras" type="text" class="form-control text-info" placeholder="dd/mm/aaaa" maxlength="10" required="required" readonly="readonly" value="<?php echo fechaSlash($fecha_rs["FechaImportante_inicial"])?>">
  243. </div>
  244. <div class="col-2">
  245. <div class="input-group">
  246. <input type="text" class="form-control texto-copiar text-info" value="<?php echo EX_INI;?>" readonly="true">
  247. <div class="input-group-append">
  248. <button class="btn btn-outline-primary btn-copiar" type="button"><span class="ing-copiar"></span></button>
  249. </div>
  250. </div>
  251. </div>
  252. <div class="col-2">
  253. <div class="input-group">
  254. <input type="text" class="form-control texto-copiar text-info" value="<?php echo EX_INI_Y;?>" readonly="true">
  255. <div class="input-group-append">
  256. <button class="btn btn-outline-primary btn-copiar" type="button"><span class="ing-copiar"></span></button>
  257. </div>
  258. </div>
  259. </div>
  260. </div>
  261. <div class="form-group row">
  262. <label for="fecha_final_extras" class="col-3 col-form-label">Fin de extraordinarios *</label>
  263. <div class="col-4">
  264. <input id="fecha_final_extras" name="fecha_final_extras" type="text" class="form-control text-info" placeholder="dd/mm/aaaa" maxlength="10" required="required" readonly="readonly" value="<?php echo fechaSlash($fecha_rs["FechaImportante_final"])?>">
  265. </div>
  266. <div class="col-2">
  267. <div class="input-group">
  268. <input type="text" class="form-control texto-copiar text-info" value="<?php echo EX_FIN;?>" readonly="true">
  269. <div class="input-group-append">
  270. <button class="btn btn-outline-primary btn-copiar" type="button"><span class="ing-copiar"></span></button>
  271. </div>
  272. </div>
  273. </div>
  274. <div class="col-2">
  275. <div class="input-group">
  276. <input type="text" class="form-control texto-copiar text-info" value="<?php echo EX_FIN_Y;?>" readonly="true">
  277. <div class="input-group-append">
  278. <button class="btn btn-outline-primary btn-copiar" type="button"><span class="ing-copiar"></span></button>
  279. </div>
  280. </div>
  281. </div>
  282. </div>
  283. <?php }//fin sólo licenciatura ?>
  284. <p class="mb-0 mt-2 text-right">
  285. <a href="periodos.php" class="btn btn-sm btn-outline-secondary"><?php echo $ICO["editar"];?> Ir a periodos</a>
  286. </p>
  287. </div>
  288. </div>
  289. </div>
  290. </div>
  291. </div>
  292. <div class="form-box">
  293. <?php
  294. $stmt = $pdo->prepare('Select * from fs_cartanombramiento(:periodo)');
  295. $stmt->bindParam(":periodo", $_SESSION["periodo_id"]);
  296. if($stmt->execute()){
  297. $carta_rs = $stmt->fetch();
  298. }
  299. $stmt->closeCursor();
  300. $stmt = null;
  301. if(!empty($carta_rs["CartaNombramiento_texto"])){
  302. $texto_carta = $carta_rs["CartaNombramiento_texto"];
  303. }else{
  304. if($nivel == 1){
  305. $texto_carta = '<div>Por su desempeño, experiencia y formación académica, la Facultad de Ingeniería de la Universidad La Salle le otorga este nombramiento para el período comprendido del PE_INI$ al PE_FIN_Y$, para el calendario escolar comprendido del PR_INI$ al PR_FIN_Y$, con un período para exámenes extraordinarios del EX_INI$ al EX_FIN$ de este mismo año.</div><div>El Reglamento General de la Universidad, en su Capítulo III, Artículo 8°, establece a la letra que: "El personal académico apoyará con su presencia y participación en las actividades académicas y formativas de la Facultad, y asistirá cuando sea requerido, inclusive en los periodos intersemestrales de suspensión de clases". Le pedimos su apoyo en este sentido para el cabal cumplimiento de las actividades institucionales.</div><div>Por lo anterior, le recordamos los compromisos que Usted adquiere con la Facultad en la asistencia a las Juntas de Academia que convoque su Jefe de Carrera, su participación puntual a los eventos y reuniones en donde se atiendan asuntos diversos de su especialidad.</div><div>De igual forma le pedimos su apoyo en exámenes extraordinarios y profesionales, así como en la asesoría de proyectos institucionales que fomenten la investigación y la vinculación.</div><div>Para el periodo intrasemestral de evaluaciones extraordinarias, le pedimos coordinarse con su jefe de carrera para la posible aplicación de un examen en este periodo.</div><div>No olvide que es obligatorio utilizar la plataforma Moodle como apoyo a sus materias.</div><div>Con base en las observaciones anteriores, queda Ud. asignado para impartir los cursos de la(s) siguiente(s) asignatura(s), con los horarios y salones que se indican a continuación:</div>';
  306. }else{
  307. $texto_carta = '<div>Este nombramiento aplica para el período cuatrimestral comprendido del PE_INI$ al PE_FIN_Y$, en donde las sesiones de clase inician desde el PR_INI$ y terminarán el PR_FIN_Y$.</div><div>Además de sus cátedras, el compromiso que Usted adquiere con la Facultad es la asistencia a las Juntas de Academia que convoque su Coordinador de la Maestría; su participación puntual a los eventos y reuniones en donde se atiendan asuntos diversos del Posgrado y se realicen actualizaciones de planes de estudio y diseños curriculares; así como también, su colaboración en los proyectos de Investigación y Desarrollo, y en exámenes de Grado que le sean designados por parte de su Coordinación.</div><div>Le recordamos que el Reglamento General de Universidades La Salle, en su Capítulo IV, Artículo 180, Fracción VI, establece a la letra que: "El personal académico participará en los programas de capacitación personal y docente y en los actos y actividades formativas y de servicio a la comunidad universitaria que determinen sus autoridades superiores y los ordenamientos correspondientes."</div>';
  308. }
  309. }
  310. ?>
  311. <div class="form-group row">
  312. <label for="texto" class="col-3 col-form-label">Texto de la carta *</label>
  313. <div class="col-9">
  314. <textarea name="texto" id="texto" class="richtext" rows="10"><?php echo $texto_carta;?></textarea>
  315. </div>
  316. </div>
  317. <div class="form-group row">
  318. <label for="fecha_final_extras" class="col-3 col-form-label">Profesor</label>
  319. <div class="col-4">
  320. <select name="profesor" class="form-control" id="profesor">
  321. <option value="0">- Todos los profesores -</option>
  322. <?php foreach ($profesores_rs as $profesor){
  323. $nombre = $profesor["Usuario_apellidos"]." ".$profesor["Usuario_nombre"];
  324. echo '<option value="'.$profesor["Usuario_id"].'" >'.$nombre.'</option>';
  325. }?>
  326. </select>
  327. </div>
  328. </div>
  329. <div class="form-group row align-items-center" id="tipo_descarga">
  330. <label class="col-3 col-form-label">Tipo de descarga</label>
  331. <div class="col-4 ">
  332. <div class="form-check form-check-inline">
  333. <input class="form-check-input radio-lg radio_descarga" type="radio" id="multiple_no" name="inter" value="0" checked="true">
  334. <label for="multiple_no" class="col-form-label">Un archivo único</label>
  335. </div>
  336. </div>
  337. <div class="col-5 ">
  338. <div class="form-check form-check-inline">
  339. <input class="form-check-input radio-lg radio_descarga" type="radio" id="multiple_si" name="inter" value="1">
  340. <label for="multiple_si" class="col-form-label">Un archivo para cada profesor</label>
  341. </div>
  342. </div>
  343. </div>
  344. <div class="form-group row align-items-center" id="categoria">
  345. <label class="col-3 col-form-label">Categorías docentes</label>
  346. <div class="col-4 ">
  347. <div class="form-check form-check-inline">
  348. <input class="form-check-input radio-lg radio_categoria" type="radio" id="categoria_si" name="categoria" value="1" checked="true">
  349. <label for="categoria_si" class="col-form-label">Actualizar categorías</label>
  350. </div>
  351. </div>
  352. <div class="col-5 ">
  353. <div class="form-check form-check-inline">
  354. <input class="form-check-input radio-lg radio_categoria" type="radio" id="categoria_no" name="categoria" value="0">
  355. <label for="categoria_no" class="col-form-label">No actualizar categorías</label>
  356. </div>
  357. </div>
  358. </div>
  359. </div>
  360. <input type="hidden" name="split" id="split" value="0">
  361. <div class="form-group row">
  362. <div class="col-12 text-center">
  363. <input type="hidden" name="pdf" id="pdf" value="0">
  364. <button type="button" data-pdf="0" class="btn btn-outline-primary btn-submit"><?php echo $ICO["aceptar"];?> Guardar carta</button>
  365. <button type="button" data-pdf="1" class="btn btn-outline-primary btn-submit"><?php echo $ICO["descargar"];?> Generar pdf</button>
  366. </div>
  367. </div>
  368. </form>
  369. </div>
  370. </div>
  371. <?php } ?>
  372. </main>
  373. <!--- FOOTER--->
  374. <?php require_once("../include/footer.php"); ?>
  375. </div>
  376. <script src="../js/jquery.min.js"></script>
  377. <script src="../js/jquery-ui.js"></script>
  378. <script src="../js/datepicker-es.js"></script>
  379. <script src="../js/bootstrap/popper.min.js"></script>
  380. <script src="../js/bootstrap/bootstrap.min.js"></script>
  381. <script src="../../js/util.js"></script>
  382. <script src="../js/fechas.js"></script>
  383. <script src="./js/richtext.js"></script>
  384. <script src="../js/sidebarmenu.js"></script>
  385. <script src="../js/datalist.js"></script>
  386. <script>
  387. var _periodo_fecha_inicial = "<?php echo fechaSlash($periodo_rs["Periodo_fecha_inicial"]); ?>";
  388. var _periodo_fecha_final = "<?php echo fechaSlash($periodo_rs["Periodo_fecha_final"]); ?>";
  389. var datepickerOptions = { dateFormat: "dd/mm/yy", minDate:_periodo_fecha_inicial, maxDate:_periodo_fecha_final };
  390. var datepickerOptions_all = { dateFormat: "dd/mm/yy"};
  391. function validaRangos(){
  392. var error = 0;
  393. $('#fecha_carta').removeClass('is-invalid');
  394. $('#fecha_inicial').removeClass('is-invalid');
  395. $('#fecha_final').removeClass('is-invalid');
  396. $('#fecha_inicial_extras').removeClass('is-invalid');
  397. $('#fecha_final_extras').removeClass('is-invalid');
  398. if($("#fecha_carta").val() == ""){
  399. $('#fecha_carta').addClass('is-invalid');
  400. $("#errorBox_text").html("Debes seleccionar la fecha en la que se emitirá la carta de nombramiento.");
  401. error++;
  402. }
  403. if($("#fecha_inicial").val() == ""){
  404. $('#fecha_inicial').addClass('is-invalid');
  405. $('#avanzadoBox').collapse('show');
  406. $("#errorBox_text").html("No se puede generar la carta de nombramiento porque el periodo tiene fechas vacías.");
  407. error++;
  408. }
  409. if($("#fecha_final").val() == ""){
  410. $('#fecha_final').addClass('is-invalid');
  411. $('#avanzadoBox').collapse('show');
  412. $("#errorBox_text").html("No se puede generar la carta de nombramiento porque el periodo tiene fechas vacías.");
  413. error++;
  414. }
  415. <?php if($nivel == 1){?>
  416. if($("#fecha_inicial_extras").val() == ""){
  417. $('#fecha_inicial_extras').addClass('is-invalid');
  418. $('#avanzadoBox').collapse('show');
  419. $("#errorBox_text").html("No se puede generar la carta de nombramiento porque el periodo tiene fechas vacías.");
  420. error++;
  421. }
  422. if($("#fecha_final_extras").val() == ""){
  423. $('#fecha_final_extras').addClass('is-invalid');
  424. $('#avanzadoBox').collapse('show');
  425. $("#errorBox_text").html("No se puede generar la carta de nombramiento porque el periodo tiene fechas vacías.");
  426. error++;
  427. }
  428. <?php } ?>
  429. if(error != 0){
  430. $("#errorBox").collapse('show');
  431. $('#messageBox')[0].scrollIntoView({ block: "end" });
  432. return false;
  433. }
  434. if( cuentaDias( fechaObjeto($("#fecha_inicial").val()) , fechaObjeto($("#fecha_final").val()) ) <= 0 ){
  435. $('#fecha_inicial').addClass('is-invalid');
  436. $('#fecha_final').addClass('is-invalid');
  437. return false;
  438. }
  439. <?php if($nivel == 1){?>
  440. if( cuentaDias( fechaObjeto($("#fecha_inicial_extras").val()) , fechaObjeto($("#fecha_final_extras").val()) ) <= 0 /*|| cuentaDias( fechaObjeto($("#fecha_final").val()) , fechaObjeto($("#fecha_inicial_extras").val()) ) <= 0*/){
  441. $('#fecha_inicial_extras').addClass('is-invalid');
  442. $('#fecha_final_extras').addClass('is-invalid');
  443. return false;
  444. }
  445. <?php }?>
  446. return true;
  447. }
  448. $(document).on('focusin', function(e) {
  449. if ($(event.target).closest(".mce-window").length) {
  450. e.stopImmediatePropagation();
  451. }
  452. });
  453. $(document).ready(function(){
  454. setDatalist("#periodo", <?php echo $_SESSION["periodo_id"]; ?>);
  455. $(document).on('click', '#dlPeriodo ul li' ,function(){
  456. $("#formaPeriodo").submit();
  457. });
  458. $('.richtext').richText();
  459. $(".date-picker" ).datepicker(datepickerOptions);
  460. $(".date-picker" ).datepicker( $.datepicker.regional[ "es" ] );
  461. $(".date-picker").blur(function(){
  462. var fechaObj = fechaObjeto($(this).val());
  463. if( fechaObj !== false ){
  464. if(Date.parse(fechaObj) < Date.parse(fechaObjeto(_periodo_fecha_inicial))){
  465. $(this).val(_periodo_fecha_inicial);
  466. }else if(Date.parse(fechaObj) > Date.parse(fechaObjeto(_periodo_fecha_final))){
  467. $(this).val(_periodo_fecha_final);
  468. }
  469. }
  470. });
  471. $(".date-picker-all" ).datepicker(datepickerOptions_all);
  472. $(".date-picker-all" ).datepicker( $.datepicker.regional[ "es" ] );
  473. $(".btn-copiar").click(function(){
  474. var textoCopiar = $(this).parents(".input-group").find('.texto-copiar');
  475. textoCopiar.select();
  476. document.execCommand("copy");
  477. window.getSelection().removeAllRanges();
  478. //textoCopiar.blur();
  479. });
  480. $(".btn-submit").click(function(){
  481. $("#pdf").val($(this).data("pdf"));
  482. if($(this).data("pdf")==0){
  483. $("#formaNombramiento").prop("action", "./export/pdf_nombramientos.php");
  484. $("#formaNombramiento").prop("target", "_self");
  485. }else{
  486. $("#formaNombramiento").prop("target", "_blank");
  487. }
  488. $("#formaNombramiento").submit();
  489. });
  490. $("#tipo_descarga").removeClass("d-none");
  491. $("#formaNombramiento").prop("action", "./export/pdf_nombramientos.php");
  492. $("#multiple_no").prop("checked", true);
  493. $("#profesor").change(function(){
  494. if($(this).val() == 0){
  495. $("#tipo_descarga").removeClass("d-none");
  496. }else{
  497. $("#tipo_descarga").addClass("d-none");
  498. $("#multiple_no").prop("checked", true);
  499. $("#formaNombramiento").prop("action", "./export/pdf_nombramientos.php");
  500. }
  501. });
  502. $(".radio_descarga").change(function(){
  503. $("#split").val($(this).val());
  504. /*if($(this).val()==0){
  505. $("#formaNombramiento").prop("action", "./export/pdf_nombramientos.php");
  506. }else{
  507. $("#formaNombramiento").prop("action", "./export/pdf_nombramientos_split.php");
  508. }*/
  509. });
  510. });
  511. </script>
  512. </body>
  513. </html>