constancias_cidit.php 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  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 = 30;
  8. $submenu = 301;
  9. //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
  10. $objSesion = new ValidaSesion($pdo, $submenu, CONSTANCIA);
  11. if(!$objSesion->tieneAcceso()){
  12. $objSesion->terminaSesion();
  13. }
  14. $objSesion->validaPeriodoUsuario();//si no tiene periodo manda a main
  15. ?>
  16. <!DOCTYPE html>
  17. <html lang="es" prefix="og: http://ogp.me/ns#">
  18. <head>
  19. <title>Constancias - Facultad de Ingeniería</title>
  20. <meta charset="utf-8">
  21. <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  22. <link rel="icon" type="image/png" href="../img/favicon.png" />
  23. <link rel="stylesheet" href="../css/bootstrap-ulsa.min.css" type="text/css">
  24. <link rel="stylesheet" href="../css/indivisa.css" type="text/css">
  25. <link rel="stylesheet" href="../css/sgi.css?rand=<?php echo rand();?>" type="text/css">
  26. <link rel="stylesheet" href="../css/fa_all.css" type="text/css">
  27. <link rel="stylesheet" href="../css/jquery-ui.css" type="text/css">
  28. <link rel="stylesheet" href="../css/calendar.css" type="text/css">
  29. </head>
  30. <body>
  31. <div>
  32. <?php
  33. //--- Objeto que pinta menu
  34. $menuObj = new MainMenu($_SESSION["usuario_id"], $menu, $pdo, CONSTANCIA, "Constancias CIDIT");//usr, menu, pdo, sist
  35. $menuObj->printMenu();
  36. $stmt = $pdo->prepare('SELECT * FROM cidit_fs_concurso(null) WHERE publicable IS TRUE ORDER BY idconcurso DESC');
  37. if($stmt->execute()){
  38. $concurso_rs = $stmt->fetchAll();
  39. }else{
  40. $errorDesc = "Ocurrió un error al obtener los concursos.";
  41. }
  42. $stmt->closeCursor();
  43. $stmt = null;
  44. $stmt = $pdo->prepare('Select * from fs_constanciamotivo(NULL, '.CIDIT.')');
  45. if($stmt->execute()){
  46. $tipo_rs = $stmt->fetchAll();
  47. }else{
  48. $errorDesc = "Ocurrió un error al obtener los tipos de constancias.";
  49. }
  50. $stmt->closeCursor();
  51. $stmt = null;
  52. //--Manejo de errores y mensajes de exito
  53. if(isset($_GET["error"]) && is_numeric($_GET["error"])){
  54. switch ($_GET["error"]){
  55. case 0: $errorDesc = "No se reciberon los datos para generar el documento."; break;
  56. case 1: $errorDesc = "No tienes permisos de realizar esa acción."; break;
  57. case 2: $errorDesc = "Ocurrió un error al obtener los datos de las constancias."; break;
  58. case 3: $errorDesc = "Ocurrió un error al cancelar el documento."; break;
  59. }
  60. }
  61. if(isset($_GET["ok"]) && is_numeric($_GET["ok"])){
  62. switch ($_GET["ok"]){
  63. case 0: $successDesc = "El documento se canceló correctamente."; break;
  64. }
  65. }
  66. ?>
  67. <main class="container-fluid content marco">
  68. <?php include_once("../include/errorMessage.php");?>
  69. <div class="row">
  70. <div class="col-12">
  71. <?php if(isset($concurso_rs)){ ?>
  72. <form action="constancias_cidit_alta.php" method="post" id="formaConstancia">
  73. <input type="hidden" id="part_tipo" name="part_tipo" value="">
  74. <input type="hidden" id="part_tipo_desc" name="part_tipo_desc" value="">
  75. <input type="hidden" id="doc_desc" name="doc_desc" value="">
  76. <input type="hidden" id="doc_id" name="doc_id" value="">
  77. <div class="form-box">
  78. <div class="form-group row">
  79. <label for="periodo" class="col-4 col-form-label">Concurso</label>
  80. <div class="col-8 col-sm-6">
  81. <div id="dlConcurso" class="datalist datalist-select mb-1 w-100">
  82. <div class="datalist-input">Concurso</div>
  83. <span class="ing-buscar icono"></span>
  84. <ul style="display:none">
  85. <?php foreach($concurso_rs as $concurso){ ?>
  86. <li data-id="<?php echo $concurso["idconcurso"];?>"><?php echo $concurso["nom"]." Concurso (".$concurso["anio"].")";?> </li>
  87. <?php }?>
  88. </ul>
  89. <input type="hidden" id="concurso" name="concurso" value="">
  90. </div>
  91. </div>
  92. </div>
  93. </div>
  94. </form>
  95. <?php
  96. } ?>
  97. </div>
  98. </div>
  99. <p>Selecciona el tipo de participante al que le deseas generar la constancia/reconocimiento</p>
  100. <div class="row">
  101. <?php
  102. foreach($tipo_rs as $tipo){
  103. ?>
  104. <div class="col-6 col-sm-4">
  105. <div class="card mt-3 card-tipo">
  106. <div class="card-header">
  107. <h5 class="card-title text-center mb-1"><?php echo $tipo["ConstanciaMotivo_desc"]; ?></h5>
  108. </div>
  109. <div class="card-body">
  110. <p class="card-text"><b>Total:</b> <span class="tipo_num" id="tipo<?php echo $tipo["ConstanciaMotivo_id"]; ?>">0</span></p>
  111. <p class="text-center mb-0"><button class="btn btn-outline-primary btn-tipo" data-part_tipo="<?php echo $tipo["ConstanciaMotivo_id"]; ?>" data-part_tipo_desc="<?php echo $tipo["tipo"]; ?>" data-doc_id="<?php echo $tipo["ConstanciaLogTipo_id"]; ?>" data-doc_desc="<?php echo $tipo["ConstanciaLogTipo_desc"]; ?>">Generar <?php echo $tipo["ConstanciaMotivo_desc"]; ?></button></p>
  112. </div>
  113. </div>
  114. </div>
  115. <?php } ?>
  116. </div>
  117. </main>
  118. <!--- FOOTER--->
  119. <?php require_once("../include/footer.php"); ?>
  120. </div>
  121. <script src="../js/jquery.min.js"></script>
  122. <script src="../js/bootstrap/popper.min.js"></script>
  123. <script src="../js/bootstrap/bootstrap.min.js"></script>
  124. <script src="../js/sidebarmenu.js"></script>
  125. <script src="../js/datalist.js"></script>
  126. <script>
  127. $(document).ready(function(){
  128. <?php if(empty($_GET["id"])){?>
  129. setDatalistFirst("#concurso");
  130. <?php }else{?>
  131. setDatalist("#concurso", <?php echo filter_input(INPUT_GET, "id", FILTER_SANITIZE_NUMBER_INT);?>);
  132. <?php } ?>
  133. getTotales($("#concurso").val());
  134. $('#dlConcurso ul li').click(function(){
  135. getTotales($(this).data("id"));
  136. });
  137. $(".btn-tipo").click(function(){
  138. var btn = $(this);
  139. $("#part_tipo").val(btn.data("part_tipo"));
  140. $("#part_tipo_desc").val(btn.data("part_tipo_desc"));
  141. $("#doc_desc").val(btn.data("doc_desc"));
  142. $("#doc_id").val(btn.data("doc_id"));
  143. $("#formaConstancia").submit();
  144. });
  145. });
  146. function getTotales(id){
  147. $(".tipo_num").text("0");
  148. $.ajax({
  149. url: './action/tipocidit_count.php',
  150. type: 'POST',
  151. dataType: 'json',
  152. data: { id: id},
  153. success: function(result) {
  154. if(result["error"]!= "" && result["error"] !== undefined){
  155. $("#errorBox").collapse('show');
  156. $("#errorBox_text").html(result["error"]);
  157. $('#messageBox')[0].scrollIntoView({ block: "end" });
  158. }else{
  159. ($(".card-tipo .btn-tipo")).prop("disabled", true);
  160. if(result["totalArr"].length != 0){//hay totales
  161. for(i=0; i<result["totalArr"].length; i++){
  162. $("#tipo"+result["totalArr"][i]["id"]).text(result["totalArr"][i]["total"]);
  163. if(result["totalArr"][i]["total"]>0){
  164. console.log("Disable #tipo"+result["totalArr"][i]["id"]);
  165. ($("#tipo"+result["totalArr"][i]["id"]).parents(".card-body").find(".btn-tipo")).prop("disabled", false);
  166. }
  167. }
  168. }
  169. }
  170. },
  171. error: function(jqXHR, textStatus, errorThrown ){
  172. $('#messageBox')[0].scrollIntoView({ block: "end" });
  173. $("#errorBox").collapse('show');
  174. $("#errorBox_text").html(errorThrown);
  175. }
  176. });//ajax
  177. }
  178. </script>
  179. </body>
  180. </html>