reporteevaluacion.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. <?php
  2. session_start();
  3. require_once 'classes/Template.php';
  4. require_once 'classes/MainMenu.php';
  5. require_once 'classes/Concurso.php';
  6. require_once 'classes/Etapa.php';
  7. require_once 'classes/ValidaSesion.php';
  8. require_once 'include/bd_pdo.php';
  9. //CONSTANTES Y VARIABLES GLOBALES
  10. $menu = 23;
  11. $submenu = 233;
  12. $titulo = 'Reporte de Evaluaciones';
  13. $errorBD = false;
  14. $actual = null;
  15. $etapaEvaluacion['idetapa'] = 0;
  16. $revisionVisible = false;
  17. if (is_null($pdo) || !isset($_SESSION['usuario_id']))
  18. ValidaSesion::salirPagina();
  19. else{
  20. if (is_null($pdo))
  21. $errorBD = true;
  22. if (isset($_SESSION['actual'])){
  23. $actual = unserialize($_SESSION['actual']);
  24. if (!$errorBD)
  25. $etapaEvaluacion = Etapa::buscaEtapaXClave($pdo, 'EVALUACION');
  26. }
  27. if(isset($_SESSION['usuario_id'])){
  28. $objSesion = new ValidaSesion($pdo,$submenu);
  29. } else
  30. ValidaSesion::salirPagina();
  31. }
  32. ?>
  33. <!doctype html>
  34. <html lang="es">
  35. <head>
  36. <title><?php echo $titulo; ?> - CIDIT</title>
  37. <?php Template::getCSS(array('elementos.css','secciones/reporte.css')); ?>
  38. </head>
  39. <body>
  40. <?php Template::agregaLoading();
  41. $menuObj = new MainMenu($_SESSION['usuario_id'], $menu, $pdo);
  42. $menuObj->printMenu();
  43. Template::getNavInfo(); ?>
  44. <main class="margen-principal mb-4">
  45. <input type="hidden" value="<?php echo $actual->getId(); ?>" id="actual">
  46. <input type="hidden" value="<?php echo $etapaEvaluacion['idetapa']; ?>" id="etapa">
  47. <div class="d-flex flex-row justify-content-between align-items-center my-3">
  48. <h1 class="mb-0 d-inline-flex align-items-center flex-wrap"><?php echo $titulo; ?><span id="nomConcurso" class="small text-azul6 ml-1"><?php if(isset($actual)) echo '(' . $actual->getNOmbre() . ' CIDIT)'; ?></span></h1>
  49. <?php if (isset($objSesion) && $objSesion->tieneAcceso()){?>
  50. <input id="pestana" type="hidden" value="<?php echo base64_encode($objSesion->puedeEditar()); ?>">
  51. <div id="divDLConcurso" class="ml-auto">
  52. <div class="d-inline-flex">
  53. <label class="ing-buscar bigIcon pointer text-secondary mx-2 mt-1"></label>
  54. <div id="dlConcurso" class="position-relative datalist">
  55. <input id="inputConcurso" class="datalist-input" type="text" placeholder="Escribe aquí el concurso que buscas" autocomplete="off">
  56. <span id="iconConcurso" class="text-primary input-buscar"></span>
  57. <ul style="display:none">
  58. <?php $concursos = $actual->getCouncursos($pdo);
  59. $concursos = array_reverse($concursos);
  60. foreach($concursos as $concurso){ ?>
  61. <li data-id="<?php echo $concurso['idconcurso']; ?>"><?php echo $concurso['nom']; ?></li>
  62. <?php } ?>
  63. </ul>
  64. </div>
  65. </div>
  66. </div>
  67. <?php } ?>
  68. </div>
  69. <?php if (isset($objSesion) && $objSesion->tieneAcceso()){
  70. Template::agregaLoading('mainTabs', 'mt-5', true); ?>
  71. <div id="divTabs">
  72. <ul class="nav nav-tabs mt-5">
  73. <li id="tabMomento" class="nav-item"><a class="nav-link active" data-toggle="tab" href="#momento"><span class="ing-eventos mr-1"></span>Al Momento</a></li>
  74. <li id="tabGraficas" class="nav-item"><a class="nav-link" data-toggle="tab" href="#graficas"><span class="ing-grafica mr-1"></span>Gráficas</a></li>
  75. <li id="tabProyectos" class="nav-item"><a class="nav-link" data-toggle="tab" href="#proyecto"><span class="ing-mi-cartel mr-1"></span>Proyectos</a></li>
  76. <li class="nav-item"><a class="nav-link" data-toggle="tab" href="#asignaciones"><span class="ing-insignia1 mr-1"></span>Ganadores</a></li>
  77. <div class="flex-fill p-2 d-flex justify-content-end align-content-center"><div id="bloqueExcel"><div id="excel" class="ml-1 p-2 border-0 rounded d-flex flex-row align-items-center btn-extra"><span class="ing-descarga mr-2 text-success" style="font-size: 20px"></span>Excel Resultados</div></div></div>
  78. </ul>
  79. <div class="tab-content">
  80. <div class="tab-pane fade show active" id="momento">
  81. <div class="d-flex flex-column justify-content-center align-items-center p-2">
  82. <div class="indivisa-text-bold display-4 text-center text-primary py-4">Resultados al momento</div>
  83. <div id="momentoDiv" class="d-flex flex-column w-100 mb-5"></div>
  84. </div>
  85. </div>
  86. <div class="tab-pane fade" id="graficas">
  87. <div class="p-2">
  88. <div class="row">
  89. <div class="col-sm-3"></div>
  90. <div class="col-sm-9 indivisa-text-bold display-4 text-center text-primary py-4">Gráficas por Rubro</div>
  91. </div>
  92. <div class="row px-3">
  93. <div id="rubros" class="col-sm-3"></div>
  94. <div class="col-sm-9">
  95. <?php Template::agregaLoading('loaderGrafica', 'h-100', true) ?>
  96. <div id="eligeRubro" class="canvas h-100">
  97. <div class="w-100 h-100 d-flex flex-column justify-content-center alig-items-center canvas">
  98. <div id="msgGrafica" class="indivisa-text-italic display-5 text-center text-primary my-5">Elige el rubro que deseas consultar</div>
  99. <div id="iconGrafica" class="display-1 text-center text-azul1 ing-mi-cartel"></div>
  100. </div>
  101. </div>
  102. <div id="divCanvas" class="w-100 canvas"></div>
  103. </div>
  104. </div>
  105. <div class="w-100 bg-barra px-3 py-4 mt-4">
  106. <div id="leyenda" class="row px-3"></div>
  107. </div>
  108. </div>
  109. </div>
  110. <div class="tab-pane fade" id="proyecto">
  111. <div class="d-flex flex-column justify-content-center">
  112. <div class="bg-primary d-flex flex-row justify-content-start alig-items-center py-2 px-4">
  113. <div class="align-self-center mr-3 indivisa-text-bold text-white">Proyecto</div>
  114. <div id="dlProyecto" class="position-relative datalist w-100">
  115. <input id="inputProyecto" class="bg-white datalist-input" type="text" placeholder="Escribe aquí el nombre del proyecto a consultar" autocomplete="off">
  116. <span id="iconProyecto" class="text-primary input-buscar"></span>
  117. <ul id="ulProyecto" style="display:none"></ul>
  118. </div>
  119. </div>
  120. <?php Template::agregaLoading('loaderProyecto', 'mt-3', true) ?>
  121. <div id="titProyecto" class="w-100 indivisa-text-bold text-primary text-center display-6 py-2 px-4 bordeInf" style="display:none"></div>
  122. <div id="datosProyecto" class="w-100 mt-2"></div>
  123. <div id="errorProyecto" class="fondoAnuncio mt-3">
  124. <div class="d-flex flex-column justify-content-center align-items-center px-5">
  125. <div class="d-flex flex-column justify-content-center align-items-center">
  126. <div id="msgProyecto" class="indivisa-text-italic display-5 text-center text-primary py-4">Por favor selecciona el proyecto que deseas consultar</div>
  127. <div id="iconMsgProyecto" class="ing-mi-cartel display-1 text-azul1 mb-4"></div>
  128. </div>
  129. </div>
  130. </div>
  131. </div>
  132. </div>
  133. <style>
  134. </style>
  135. <div class="tab-pane fade" id="asignaciones">
  136. <div class="p-2">
  137. <div class="indivisa-text-bold display-4 text-center text-primary py-4">Ganadores</div>
  138. <div id="divAsignaciones" class='p-4'></div>
  139. </div>
  140. </div>
  141. </div>
  142. </div>
  143. <div id="error" class="fondoAnuncio mt-5">
  144. <div class="d-flex flex-column justify-content-center align-items-center">
  145. <div class="text-primary text-center mt-5 tit">¡Lo sentimos!</div>
  146. <div class="text-primary text-center small m-3 msg">No podemos mostrar la información en éste momento</div>
  147. <div class="display-1 text-danger mb-4 ing-no-cargado"></div>
  148. </div>
  149. </div>
  150. <div class="modal fade modalMarco" id="modalFaltantes">
  151. <div class="modal-dialog modal-lg modal-dialog-centered">
  152. <div class="modal-content p-3">
  153. <div class="modal-header p-0">
  154. <div class="m-3 display-5 indivisa-text-bold-italic text-primary">
  155. A<span id="userFaltante" class="text-azul1 mx-2"></span>le faltan los siguientes proyectos:
  156. </div>
  157. <button type="button" class="cerrar" data-dismiss="modal"><div class="ing-cancelar"></div></button>
  158. </div>
  159. <div class="modal-body d-flex flex-row align-items-start justify-content-center p-0">
  160. <div id="listaFaltantes" class="d-flex flex-column w-100 px-3 mb-3"></div>
  161. </div>
  162. </div>
  163. </div>
  164. </div>
  165. <div class="modal fade modalMarco" id="modalArchivo">
  166. <div class="modal-dialog modal-lg modal-dialog-centered">
  167. <div class="modal-content p-4">
  168. <div class="modal-body p-3">
  169. <?php Template::agregaLoading('loaderArchivo','p-0',false,'Generando Archivo'); ?>
  170. <div id="bodyArchivo" style="display:none;">
  171. <div class="d-flex flex-column align-items-center justify-content-center">
  172. <button type="button" class="cerrar align-self-end" data-dismiss="modal"><div class="ing-cancelar"></div></button>
  173. <div id="msgArchivo" class="px-3 mb-3 text-center text-primary display-5">No fue posible obtener los datos para generar el archivo</div>
  174. <div id="iconArchivo" class="display-1 ing-no-cargado text-danger mb-2"></div>
  175. </div>
  176. </div>
  177. </div>
  178. </div>
  179. </div>
  180. </div>
  181. <?php } else { ?>
  182. <div class="fondoAnuncio mt-5">
  183. <div class="d-flex flex-column justify-content-center align-items-center">
  184. <div class="text-primary text-center mt-5 tit">¡Lo sentimos!</div>
  185. <div class="text-primary text-center small m-3 msg">No tienes accceso a éste sitio</div>
  186. <div class="ing-negar display-1 text-danger mb-4"></div>
  187. </div>
  188. </div>
  189. <?php } ?>
  190. </main>
  191. <div style="isolation: isolate;">
  192. <?php Template::footer(); ?>
  193. </div>
  194. <?php Template::getJS(array('elementos.js','-adds/Chartjs/js/Chart.min.js','-adds/Chartjs/js/chartjs-plugin-datalabels.min.js','secciones/reporte.js','secciones/reporteeval.js')); ?>
  195. </body>
  196. </html>