constancias_ei.php 10.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  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 = 304;
  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 ExpoIngenia");//usr, menu, pdo, sist
  35. $menuObj->printMenu();
  36. $stmt = $pdo->prepare('SELECT * FROM ei_fs_concurso(null) 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, '.EXPOING.')');
  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. case 4: $errorDesc = "La imagen adicional es demasiado grande. El límite son 500KB."; break;
  60. case 5: $errorDesc = "Ocurrió un error al subir la imagen adicional."; break;
  61. }
  62. }
  63. if(isset($_GET["ok"]) && is_numeric($_GET["ok"])){
  64. switch ($_GET["ok"]){
  65. case 0: $successDesc = "El documento se canceló correctamente."; break;
  66. }
  67. }
  68. ?>
  69. <main class="container-fluid content marco">
  70. <?php include_once("../include/errorMessage.php");?>
  71. <div class="row">
  72. <div class="col-12">
  73. <?php if(isset($concurso_rs)){ ?>
  74. <form action="constancias_ei_alta.php" method="post" id="formaConstancia">
  75. <input type="hidden" id="part_tipo" name="part_tipo" value="">
  76. <input type="hidden" id="part_tipo_desc" name="part_tipo_desc" value="">
  77. <input type="hidden" id="doc_desc" name="doc_desc" value="">
  78. <input type="hidden" id="doc_id" name="doc_id" value="">
  79. <div class="form-box">
  80. <div class="form-group row">
  81. <label for="periodo" class="col-4 col-form-label">Concurso</label>
  82. <div class="col-8 col-sm-6">
  83. <div id="dlConcurso" class="datalist datalist-select mb-1 w-100">
  84. <div class="datalist-input">Concurso</div>
  85. <span class="ing-buscar icono"></span>
  86. <ul style="display:none">
  87. <?php foreach($concurso_rs as $concurso){ ?>
  88. <li data-id="<?php echo $concurso["idconcurso"];?>"><?php echo $concurso["nom"];?> Expo Ingenia</li>
  89. <?php }?>
  90. </ul>
  91. <input type="hidden" id="concurso" name="concurso" value="">
  92. </div>
  93. </div>
  94. </div>
  95. </div>
  96. </form>
  97. <?php
  98. } ?>
  99. </div>
  100. </div>
  101. <p>Selecciona el tipo de participante al que le deseas generar la constancia/reconocimiento</p>
  102. <div class="row">
  103. <?php
  104. foreach($tipo_rs as $tipo){
  105. ?>
  106. <div class="col-6 col-sm-4">
  107. <div class="card mt-3 card-tipo">
  108. <div class="card-header">
  109. <h5 class="card-title text-center mb-1"><?php echo $tipo["ConstanciaMotivo_desc"]; ?></h5>
  110. </div>
  111. <div class="card-body">
  112. <p class="card-text"><b>Total:</b> <span class="tipo_num" id="tipo<?php echo $tipo["ConstanciaMotivo_id"]; ?>">0</span></p>
  113. <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>
  114. </div>
  115. </div>
  116. </div>
  117. <?php } ?>
  118. </div>
  119. </main>
  120. <!--- FOOTER--->
  121. <?php require_once("../include/footer.php"); ?>
  122. </div>
  123. <script src="../js/jquery.min.js"></script>
  124. <script src="../js/bootstrap/popper.min.js"></script>
  125. <script src="../js/bootstrap/bootstrap.min.js"></script>
  126. <script src="../js/sidebarmenu.js"></script>
  127. <script src="../js/datalist.js"></script>
  128. <script>
  129. $(document).ready(function(){
  130. <?php if(empty($_GET["id"])){?>
  131. setDatalistFirst("#concurso");
  132. <?php }else{?>
  133. setDatalist("#concurso", <?php echo filter_input(INPUT_GET, "id", FILTER_SANITIZE_NUMBER_INT);?>);
  134. <?php } ?>
  135. getTotales();
  136. $('#dlConcurso ul li').click(function(){
  137. getTotales();
  138. });
  139. $(".btn-tipo").click(function(){
  140. var btn = $(this);
  141. $("#part_tipo").val(btn.data("part_tipo"));
  142. $("#part_tipo_desc").val(btn.data("part_tipo_desc"));
  143. $("#doc_desc").val(btn.data("doc_desc"));
  144. $("#doc_id").val(btn.data("doc_id"));
  145. $("#formaConstancia").submit();
  146. });
  147. });
  148. function getTotales(){
  149. $(".tipo_num").text("0");
  150. $.ajax({
  151. url: './action/tipoei_count.php',
  152. type: 'POST',
  153. dataType: 'json',
  154. data: { id: $("#concurso").val()},
  155. success: function(result) {
  156. if(result["error"]!= "" && result["error"] !== undefined){
  157. $("#errorBox").collapse('show');
  158. $("#errorBox_text").html(result["error"]);
  159. $('#messageBox')[0].scrollIntoView({ block: "end" });
  160. }else{
  161. ($(".card-tipo .btn-tipo")).prop("disabled", true);
  162. if(result["totalArr"].length != 0){//hay totales
  163. for(i=0; i<result["totalArr"].length; i++){
  164. $("#tipo"+result["totalArr"][i]["id"]).text(result["totalArr"][i]["total"]);
  165. if(result["totalArr"][i]["total"]>0){
  166. console.log("Disable #tipo"+result["totalArr"][i]["id"]);
  167. ($("#tipo"+result["totalArr"][i]["id"]).parents(".card-body").find(".btn-tipo")).prop("disabled", false);
  168. }
  169. }
  170. }
  171. }
  172. },
  173. error: function(jqXHR, textStatus, errorThrown ){
  174. $('#messageBox')[0].scrollIntoView({ block: "end" });
  175. $("#errorBox").collapse('show');
  176. $("#errorBox_text").html(errorThrown);
  177. }
  178. });//ajax
  179. }
  180. </script>
  181. </body>
  182. </html>