| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281 |
- <?php
- /* AJAX
- * Selecciona los datos de la carrera
- * Recibe:
- * id - ID de la carrera
- * Return:
- * resultado o cadena de error
- */
- require_once("../../include/constantes.php");
- require_once("../../include/nocache.php");
- require_once("../../include/util.php");
- require_once("../../include/bd_pdo.php");
- include_once('../../include/xTemplate/xtemplate.class.php'); // including mpdf.php
- include_once('../../include/mpdf/autoload.php'); // including mpdf.php
- $pag = "../resultados_subir.php";
- function getTestimonio($pts){
- if($pts <= 45.3){
- return "No Satisfactorio";
- }else if($pts <=59.8){
- return "Satisfactorio";
- }else if($pts <=74.2){
- return "Sobresaliente";
- }
- return "Excelencia";
- }
- //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
- if(!isset($_POST["nombre"], $_POST["apellidos"], $_POST["folio"])){
- header("Location: ".$pag."?error=0");
- exit();
- }else{
- $firma = $_POST["firma"];//array de ids
- $puesto = $_POST["puesto"];//arreglo de textos de puestos
- //--Firmas
- $i = 0;
- $numFirmas = 2;
- $stmt = $pdo->prepare('Select * from fs_constanciafirma(:id, NULL )');//firmas
- while($i < $numFirmas){
- $stmt->bindParam(":id", $firma[$i]);
- if(!$stmt->execute()){
- $pdo->rollBack();
- header("Location:".$pag."?error=2");
- //print_r($stmt->errorInfo());
- exit();
- }
- $firma_rs = $stmt->fetch();
- $stmt->closeCursor();
- $firmasArr[] = array("id"=>$firma_rs["ConstanciaFirma_id"] ,"grado"=>$firma_rs["ConstanciaFirma_grado"] ,
- "nombre"=> $firma_rs["ConstanciaFirma_nombre"] /*mb_convert_case(mb_strtolower($firma_rs["ConstanciaFirma_nombre"]), MB_CASE_TITLE, "UTF-8")*/,
- "puesto"=>$puesto[$i], "firma"=> $firma_rs["ConstanciaFirma_imagen"]
- );
- $i++;
- }
- //-- Footer
- $xtpl_footer = new XTemplate('../tpl/carta_footer.tpl.html');
- $xtpl_footer->assign("FECHA_CARTA", $fecha_carta);
-
- //$xtpl_footer->assign("FIRMA", "../../img/firmas/".$firmasArr[0]["firma"]);
- $xtpl->assign("FIRMA", "../../img/firmas/blanco.png");
- $xtpl_footer->assign("NOMBRE", $firmasArr[0]["grado"]." ".$firmasArr[0]["nombre"]);
- $xtpl_footer->assign("PUESTO", $firmasArr[0]["puesto"]);
- $xtpl_footer->assign("DIR", "left");
- $xtpl_footer->parse("main.firma");
- //$xtpl_footer->assign("FIRMA", "../../img/firmas/".$firmasArr[1]["firma"]);
- $xtpl->assign("FIRMA", "../../img/firmas/blanco.png");
- $xtpl_footer->assign("NOMBRE", $firmasArr[1]["grado"]." ".$firmasArr[1]["nombre"]);
- $xtpl_footer->assign("PUESTO", $firmasArr[1]["puesto"]);
- $xtpl_footer->assign("DIR", "right");
- $xtpl_footer->parse("main.firma");
-
- $xtpl_footer->parse("main");
- //-------
- $fecha_carta = "FECHA DE LA CARTA";
- if(isset($_POST["fecha_carta"]))
- $fecha_carta = fechaGuion(trim(filter_input(INPUT_POST, "fecha_carta", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW))));//limpia texto
- else
- $fecha_carta = date("Y-m-d");
- $fecha_carta = fechaTexto($fecha_carta);
- $alumnoArr = array();
- $al = 0;
- $row = 1;
- $repetido = 0;
- $fecha = trim(filter_input(INPUT_POST, "fecha"));//fecha como texto
- $folio = $_POST["folio"];
- $clave = $_POST["clave"];
- $nombre = $_POST["nombre"];
- $apellidos = $_POST["apellidos"];
- $res = array();
- $res[] = $_POST["res1"];
- $res[] = $_POST["res2"];
- $res[] = $_POST["res3"];
- $res[] = $_POST["res4"];
- $res[] = $_POST["res5"];
- $res[] = $_POST["total"];
-
-
- $defaultConfig = (new Mpdf\Config\ConfigVariables())->getDefaults();
- $fontDirs = $defaultConfig['fontDir'];
- $defaultFontConfig = (new Mpdf\Config\FontVariables())->getDefaults();
- $fontData = $defaultFontConfig['fontdata'];
- $defaultConfig = (new Mpdf\Config\ConfigVariables())->getDefaults();
- $fontDirs = $defaultConfig['fontDir'];
- $defaultFontConfig = (new Mpdf\Config\FontVariables())->getDefaults();
- $fontData = $defaultFontConfig['fontdata']+ [
- 'indivisa-display' => [
- 'R' => 'IndivisaDisplaySans-Regular.ttf',
- ],
- 'indivisa-title' => [
- 'R' => 'IndivisaDisplaySerif-RegularItalic.ttf',
- ],
- 'indivisa-text' => [
- 'R' => 'IndivisaTextSans-Regular.ttf',
- ]
- ];
-
- $stylesheet = "<style>";
- //$stylesheet .= file_get_contents('../../css/indivisa.css'); // external css
- $stylesheet .= file_get_contents('../css/resultados.css'); // external css
- $stylesheet .= "</style>";
- //----------- Archivos y zip ---
- $fecha_hoy = date("Y-m-d");
- $tmp_folder = "./zip/pdf_".fechaGuion($fecha_hoy);
- if (!file_exists($tmp_folder)) {
- mkdir($tmp_folder, 0777, true);
- }
- $zip = new ZipArchive();
- $zip_filename = "zip/resultadosEGC_".fechaGuion($fecha_hoy)."_".date("his").".zip";
- if ($zip->open($zip_filename, ZipArchive::CREATE)!==TRUE) {
- $pdo->rollBack();
- exit("cannot open <$zip_filename>\n");
- }
-
-
-
- $cuenta = count($apellidos);
- for($i =0; $i< count($apellidos); $i++){
- $mpdf = new \Mpdf\Mpdf([
- 'mode' => 'utf-8',
- 'format' => [215, 279],
- 'orientation' => 'P',
- 'margin_left' => 14,
- 'margin_right' => 14,
- 'margin_top' => 28,
- 'margin_header' => 7,
- 'margin_bottom' => 100,
-
- 'fontDir' => array_merge($fontDirs, [
- __DIR__ . '/../../fonts/indivisaFont/ttf',
- ]),
- 'fontdata' => $fontData,
- 'default_font' => 'indivisa-text'
- ]);
- $xtpl = new XTemplate('../tpl/carta_resultados.tpl.html');
- $num = $i+1;
- //$i=0;
- $xtpl->assign("DATO_TITULO", "Folio");
- $xtpl->assign("DATO_TEXTO", $folio[$i]);
- $xtpl->parse("main.dato");
- $xtpl->assign("DATO_TITULO", "Clave ULSA");
- $xtpl->assign("DATO_TEXTO", $clave[$i]);
- $xtpl->parse("main.dato");
- $xtpl->assign("DATO_TITULO", "Nombre del sustentante");
- $xtpl->assign("DATO_TEXTO", $nombre[$i]." ".$apellidos[$i]);
- $xtpl->parse("main.dato");
- if($fecha != ""){
- $xtpl->assign("DATO_TITULO", "Fecha de aplicación");
- $xtpl->assign("DATO_TEXTO", $fecha);
- $xtpl->parse("main.dato");
- }
- $xtpl->assign("DATO_TITULO", "Institución de Educación Superior (IES)");
- $xtpl->assign("DATO_TEXTO", "Universidad La Salle México");
- $xtpl->parse("main.dato");
-
-
- $xtpl->assign("RES", $res[0][$i]);
- $xtpl->parse("main.res");
- $xtpl->assign("RES", $res[1][$i]);
- $xtpl->parse("main.res");
- $xtpl->assign("RES", $res[2][$i]);
- $xtpl->parse("main.res");
- $xtpl->assign("RES", $res[3][$i]);
- $xtpl->parse("main.res");
- $xtpl->assign("RES", $res[4][$i]);
- $xtpl->parse("main.res");
- $xtpl->assign("RES", getTestimonio($res[5][$i]));
- $xtpl->parse("main.res.bold");
- $xtpl->parse("main.res");
-
- $cuenta--;
- //if($cuenta > 0) $xtpl->parse("main.pagebreak");
- $xtpl->parse("main");
- $carta = $xtpl->text("main");
-
- /*echo $stylesheet;
- $xtpl->out("main"); exit();*/
- $mpdf->SHYlang = 'es';
- $mpdf-> SetTitle('Resultados -' . $nombre[$i]." ".$apellidos[$i]);
- $mpdf-> SetAuthor('Facultad de Ingeniería. © Universidad La Salle A.C. '.date("Y").' Todos los derechos Reservados.');
- $mpdf->SetHTMLHeader('<img src="../../img/logopdf.png" width="40mm">');//se pone como fondo
- $mpdf->SetHTMLFooter($xtpl_footer->text("main"));
- $mpdf->WriteHTML($stylesheet);
- $mpdf->WriteHTML($carta);
-
- //$mpdf->Output("reporteEGC.pdf", 'I');
- $mpdf->SetProtection(array('print', 'print-highres'), '', md5(time()));
- $mpdf->Output($tmp_folder."/resultado_".$num.".pdf", 'F');
- $zip->addFile(
- $tmp_folder."/resultado_".$num.".pdf",
- "egc_".fechaGuion($fecha_hoy)."/".$folio[$i]."_".$clave[$i].".pdf"
- );
- $num++;
- }
-
- //ZIP
- if($zip->numFiles<=0){
- $pdo->rollBack();
- echo "Error al guardar en el zip";
- $zip->close();
- unlink($zip_filename);
- exit();
- }
- $zip->close();
- removeFolder($tmp_folder);
- header("Content-Type: application/zip");
- header("Content-Disposition: attachment; filename=".basename($zip_filename));
- header("Pragma: no-cache");
- header("Expires: 0");
- ob_end_clean();
- flush();
- readfile($zip_filename);
- //unlink($zip_filename);
- }
- function removeFolder($folderName) {
- if (is_dir($folderName))
- $folderHandle = opendir($folderName);
- if (!$folderHandle)
- return false;
- while($file = readdir($folderHandle)) {
- if ($file != "." && $file != "..") {
- if (!is_dir($folderName."/".$file))
- unlink($folderName."/".$file);
- else
- removeFolder($folderName.'/'.$file);
- }
- }
- closedir($folderHandle);
- rmdir($folderName);
- return true;
- }
- ?>
|