pdf_cartareposicion.php 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. <?php
  2. /* AJAX
  3. * Genera nombramientos en pdf
  4. * Recibe:
  5. * id reposicion
  6. * Return:
  7. * imprime pdf
  8. */
  9. setlocale(LC_TIME, 'es_MX.UTF-8');
  10. require_once("../../include/nocache.php");
  11. require_once("../../include/bd_pdo.php");
  12. require_once("../../include/util.php");
  13. require_once("../../include/constantes.php");
  14. require_once("../../classes/ValidaSesion.php");
  15. include_once('../../include/xTemplate/xtemplate.class.php'); // including mpdf.php
  16. include_once('../../include/mpdf/autoload.php'); // including mpdf.php
  17. $pag = "../perfil.php";
  18. //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
  19. $objSesion = new ValidaSesion($pdo, 52, APSA);
  20. if(!$objSesion->tieneAcceso()){
  21. echo "<script>window.close();</script>";
  22. exit();
  23. }
  24. unset($objValida);
  25. if(!isset($_GET["id"])){
  26. echo "<script>window.close();</script>";
  27. exit();
  28. }
  29. $periodo_id = $_SESSION["periodo_id"];
  30. $profesor = $_GET["id"];
  31. //Obtiene datos de reposición
  32. $stmt = $pdo->prepare('Select * from fs_reposicion(:id, :per, NULL, NULL, NULL, NULL, NULL, 0, NULL)');
  33. $stmt->bindParam(":id", $profesor);
  34. $stmt->bindParam(":per", $periodo_id);
  35. if(!$stmt->execute()){
  36. header("Location:".$pag."?error=4");
  37. //print_r($stmt->errorInfo());
  38. exit();
  39. }
  40. $reposicion_rs = $stmt->fetch();
  41. $stmt->closeCursor();
  42. if(empty($reposicion_rs["HorarioGrupo_id"]) || $reposicion_rs["ReposicionEstado_id"] < 2){
  43. //echo "Error";
  44. echo "<script>window.close();</script>";
  45. exit();
  46. }
  47. //$reposicion_rs["Horario_id"]
  48. //Obtiene datos de horario original
  49. $stmt = $pdo->prepare('Select * from fs_horario(:id)');
  50. $stmt->bindParam(":id", $reposicion_rs["HorarioGrupo_id"]);
  51. if(!$stmt->execute()){
  52. header("Location:".$pag."?error=4");
  53. //print_r($stmt->errorInfo());
  54. exit();
  55. }
  56. $horario_rs = $stmt->fetch();
  57. $stmt->closeCursor();
  58. //-----
  59. $defaultConfig = (new Mpdf\Config\ConfigVariables())->getDefaults();
  60. $fontDirs = $defaultConfig['fontDir'];
  61. $defaultFontConfig = (new Mpdf\Config\FontVariables())->getDefaults();
  62. $fontData = $defaultFontConfig['fontdata'];
  63. $defaultConfig = (new Mpdf\Config\ConfigVariables())->getDefaults();
  64. $fontDirs = $defaultConfig['fontDir'];
  65. $defaultFontConfig = (new Mpdf\Config\FontVariables())->getDefaults();
  66. $fontData = $defaultFontConfig['fontdata'];
  67. $mpdf = new \Mpdf\Mpdf([
  68. 'mode' => 'utf-8',
  69. 'format' => [215, 279],
  70. 'orientation' => 'P',
  71. 'fontDir' => array_merge($fontDirs, [
  72. __DIR__ . '/../../fonts/indivisaFont/ttf',
  73. ]),
  74. 'fontdata' => $fontData + [
  75. 'indivisa-display' => [
  76. 'R' => 'IndivisaDisplaySans-Regular.ttf',
  77. ],
  78. 'indivisa-title' => [
  79. 'R' => 'IndivisaDisplaySerif-RegularItalic.ttf',
  80. ],
  81. 'indivisa-text' => [
  82. 'R' => 'IndivisaTextSans-Regular.ttf',
  83. ]
  84. ],
  85. 'default_font' => 'indivisa-text'
  86. ]);
  87. $stylesheet = "<style>";
  88. $stylesheet .= file_get_contents('../../css/indivisa.css'); // external css
  89. $stylesheet .= file_get_contents('../css/cartareposicion.css'); // external css
  90. $stylesheet .= "</style>";
  91. $xtpl = new XTemplate('../tpl/reposicion.tpl.html');
  92. $xtpl->assign("TITULO1", "FACULTAD");
  93. $xtpl->assign("VALOR1", "FACULTAD DE INGENIERÍA");
  94. $xtpl->assign("TITULO2", "CARRERA");
  95. $xtpl->assign("VALOR2", mb_strtoupper($reposicion_rs["Carrera_desc"]));
  96. $xtpl->parse("main.tabla.renglon.data4");
  97. $xtpl->parse("main.tabla.renglon");
  98. $xtpl->assign("TITULO", "PROFESOR");
  99. $xtpl->assign("VALOR", mb_strtoupper($reposicion_rs["Usuario_nombre"]." ".$reposicion_rs["Usuario_apellidos"]));
  100. $xtpl->parse("main.tabla.renglon.data2");
  101. $xtpl->parse("main.tabla.renglon");
  102. $salon = $horario_rs["Salon_desc"];
  103. if($salon == ""){
  104. $salon = "<i>Pendiente</i>";
  105. }else{
  106. if(!empty($horario_rs["Salon_desc_larga"]))
  107. $salon = $horario_rs["Salon_desc_larga"];
  108. }
  109. $xtpl->assign("TITULO1", "SEMESTRE");
  110. $xtpl->assign("VALOR1", $reposicion_rs["Materia_semestre"]);
  111. $xtpl->assign("TITULO2", "SALON HABITUAL");
  112. $xtpl->assign("VALOR2", $salon);
  113. $xtpl->parse("main.tabla.renglon.data4");
  114. $xtpl->parse("main.tabla.renglon");
  115. $xtpl->assign("TITULO", "ASIGNATURA");
  116. $xtpl->assign("VALOR", mb_strtoupper($reposicion_rs["Materia_desc"]));
  117. $xtpl->parse("main.tabla.renglon.data2");
  118. $xtpl->parse("main.tabla.renglon");
  119. $xtpl->parse("main.tabla");
  120. $xtpl->assign("TITULO1", "FECHA DE SOLICITUD");
  121. $xtpl->assign("VALOR1", date("d/m/Y"));
  122. $xtpl->assign("TITULO2", "NÚMERO DE ALUMNOS");
  123. $xtpl->assign("VALOR2", $reposicion_rs["Reposicion_alumnos"]);
  124. $xtpl->parse("main.tabla.renglon.data4");
  125. $xtpl->parse("main.tabla.renglon");
  126. $xtpl->assign("TITULO1", "FECHA DE INASISTENCIA");
  127. $xtpl->assign("VALOR1", date("d/m/Y", strtotime($reposicion_rs["Reposicion_fecha_falta"])));
  128. $xtpl->assign("TITULO2", "HORARIO DE CLASE");
  129. $xtpl->assign("VALOR2", substr($horario_rs["Horario_hora"],0,-3)." a ".substr($horario_rs["Horario_hora_final"],0,-3)." hrs");
  130. $xtpl->parse("main.tabla.renglon.data4");
  131. $xtpl->parse("main.tabla.renglon");
  132. $xtpl->assign("TITULO1", "FECHA DE REPOSICIÓN");
  133. $xtpl->assign("VALOR1", date("d/m/Y", strtotime($reposicion_rs["Reposicion_fecha_nueva"])) );
  134. $xtpl->assign("TITULO2", "HORARIO DE CLASE");
  135. $xtpl->assign("VALOR2", date("H:i", strtotime($reposicion_rs["Reposicion_fecha_nueva"]))." A ".date("H:i", strtotime($reposicion_rs["Reposicion_fecha_nueva"].' +'.$horario_rs["Horario_duracion"].'minutes'))." hrs");
  136. $xtpl->parse("main.tabla.renglon.data4");
  137. $xtpl->parse("main.tabla.renglon");
  138. $xtpl->parse("main.tabla");
  139. $obs = "Ninguna";
  140. if(!empty($reposicion_rs["Reposicion_comentario"])){
  141. $obs = $reposicion_rs["Reposicion_comentario"];
  142. }
  143. $xtpl->assign("TITULO", "OBSERVACIONES");
  144. $xtpl->assign("VALOR", $obs);
  145. $xtpl->parse("main.tabla.renglon.data2");
  146. $xtpl->parse("main.tabla.renglon");
  147. $xtpl->parse("main.tabla");
  148. $nombres = array("Rosa Lilia Salazar Trejo", "Ivonne Valdez Medina","María Fernanda Miranda Temahuay","David Cardoso de la Cruz","Fabricio Campos Villaseñor","Gilberto Adolfo Reyes Piñón","Juan Manuel Sánchez Durán");
  149. foreach($nombres as $nom){
  150. $xtpl->assign("NOMBRE", $nom);
  151. $xtpl->parse("main.auxiliar");
  152. }
  153. $xtpl->parse("main");
  154. /*echo $stylesheet;
  155. $xtpl->out("main");exit();*/
  156. $mpdf->useActiveForms = true;
  157. $mpdf->WriteHTML($stylesheet);
  158. $mpdf->WriteHTML($xtpl->text("main"));
  159. $mpdf->Output("reposicion.pdf", 'I');