Warning: chmod(): Operation not permitted in /data/html/improve/wp-content/plugins/wordfence/wordfence.php on line 8
403WebShell
403Webshell
Server IP : 52.9.100.119  /  Your IP : 216.73.216.193
Web Server : Apache/2.4.61 (Amazon) OpenSSL/1.0.2k-fips PHP/7.3.30 Phusion_Passenger/5.1.5
System : Linux ip-172-31-9-35 4.14.355-196.618.amzn1.x86_64 #1 SMP Mon Apr 7 17:09:50 UTC 2025 x86_64
User : root ( 0)
PHP Version : 7.3.30
Disable Function : exec,passthru,shell_exec,system,popen,proc_open
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : OFF
Directory :  /data/html/seica-apis/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /data/html/seica-apis/create_pdf.php
<?php

ini_set('memory_limit', '5000M');

header('Content-Type: application/json,application/x-www-form-urlencoded');
header('Access-Control-Allow-Headers: Content-Type');
include_once 'lib/rb_setup.php';
//require_once 'lib/api_token.php';
 //ini_set('display_errors', 1);
 //ini_set('display_startup_errors', 1);
 //error_reporting(E_ALL);
// R::fancyDebug(true);
$data = array();
$en_proceso     = array();
$terminados     = array();
$STATUS_FILTER = 3;
$pdf_language = "es-MX";

$query_base = 'select p.* from proyecto p';

$query_condition = '';

if(isset($_POST['lang_filter'])){

    $pdf_language = $_POST['lang_filter'];
}


if(isset($_POST['status_filter'])){
    $STATUS_FILTER = $_POST['status_filter'];
}

if(isset($_POST['location_filter'])){

    $query_base = $query_base.' inner join estado_municipio em on p.municipio = em.municipio_id';
    $query_condition = $query_condition.' and em.estado_id = '.$_POST['location_filter'];

}

if(isset($_POST['client_filter'])){

    $query_base = $query_base.' inner join cliente c on p.cliente = c.id';
    $query_condition = $query_condition.' and p.cliente = '.$_POST['client_filter'];

}

if(isset($_POST['description_filter'])){

    $query_base = $query_base.' inner join categoria_proyecto catp on p.id = catp.proyecto';
    $query_condition = $query_condition.' and catp.categoria = '.$_POST['description_filter'];

}

if(isset($_POST['leed_filter'])){

    $query_base = $query_base.' inner join certificacion_proyecto cerp on p.id = cerp.proyecto';
    $query_condition = $query_condition.' and cerp.nivel = '.$_POST['leed_filter'];

}

if(isset($_POST['year_filter'])){

    $query_condition = $query_condition." and p.fin like '".$_POST['year_filter']."%'";

}

if(isset($_POST['order_filter'])){

    $query_condition = $query_condition.' order by p.nombre '.$_POST['order_filter'];

}


if ($STATUS_FILTER == 3 || $STATUS_FILTER == 2) {

    $query_condition_base =' where mostrar = 1 and status = 2 ';

//error_log(print_r($query_base.$query_condition_base.$query_condition, TRUE));

    $raw_query_result = R::getAll( $query_base.$query_condition_base.$query_condition );

    $process_list = R::convertToBeans( 'proyecto', $raw_query_result );
    if (!empty($process_list)) {
        foreach ($process_list as $proyect) {
            $id = $proyect->id;
            $fav = $proyect->fav;
            $nombre = $proyect->nombre;
            $avance = $proyect->avance;


            if (!empty($proyect->portada)) {
                $portada = $proyect->portada;
            } else {
                $portada = defaultImage();
            }

            $f_inicio = $proyect->inicio;
            $f_fin = $proyect->fin;
            $metros = number_format($proyect->superficie_metros);
            $pies = number_format($proyect->superficie_pies);
            if ($proyect->status == 1) {
                $status = "Terminado";
            } else {
                $status = "En proceso";
            }
            $descripciones = R::findAll('categoria_proyecto', 'where proyecto = ?', [$id]);
            $categorias = array();
            foreach ($descripciones as $d) {
                $cat = R::getRow('select id, nombre,nombre_en from categoria where id =?', [$d["categoria"]]);
                array_push($categorias, $cat);
            }
            $cert = R::findAll('certificacion_proyecto', 'where proyecto = ?', [$id]);
            $certificaciones = array();
            foreach ($cert as $c) {
                $certi = R::getRow('select c.id as certificacion_id, c.nombre as certificacion_nombre,  cn.id as nivel_id, cn.nombre as nivel_nombre, cn.nombre_en as nivel_nombre_en from certificacion as c join certificacion_nivel cn on c.id = cn.certificacion where c.id = ? and cn.id = ?', [$c["certificacion"], $c["nivel"]]);
                array_push($certificaciones, $certi);
            }
            $cliente = R::load('cliente', $proyect->cliente);
            $ubicacion = R::getRow('select m.id as ciudad_id, m.municipio as ciudad, latitud, longitud, e.id as estado_id, e.estado as estado from municipio m inner join estado_municipio em on m.id = em.municipio_id inner  join estado e on em.estado_id = e.id where m.id = ?', [$proyect->municipio]);
            array_push($en_proceso, ["id" => $id, "fav" => $fav, "nombre" => $nombre, "portada" => $portada, "status" => $status, "inicio" => $f_inicio, "fin" => $f_fin, "metros" => $metros, "pies" => $pies, "cliente" => $cliente, "Categorias" => $categorias, "certificaciones" => $certificaciones, "ubicacion" => $ubicacion, "avance"=>$avance]);

        }

    }
}

if ($STATUS_FILTER == 3 || $STATUS_FILTER == 1) {

    $query_condition_base =' where mostrar = 1 and status = 1 ';

//error_log(print_r($query_base.$query_condition_base.$query_condition, TRUE));

    $raw_query_result = R::getAll( $query_base.$query_condition_base.$query_condition.' order by fin desc' );

    $finish_list = R::convertToBeans( 'proyecto', $raw_query_result );
    if (!empty($finish_list)) {
        foreach ($finish_list as $proyect) {
            $id = $proyect->id;
            $fav = $proyect->fav;
            $nombre = $proyect->nombre;
            $avance = $proyect->avance;

            if (!empty($proyect->portada)) {
                $portada = $proyect->portada;

            } else {
                $portada = defaultImage();
            }

            $f_inicio = $proyect->inicio;
            $f_fin = $proyect->fin;
            $metros = number_format($proyect->superficie_metros);
            $pies = number_format($proyect->superficie_pies);
            if ($proyect->status == 1) {
                $status = "Terminado";
            } else {
                $status = "En proceso";
            }
            $descripciones = R::findAll('categoria_proyecto', 'where proyecto = ?', [$id]);
            $categorias = array();
            foreach ($descripciones as $d) {
                $cat = R::getRow('select id, nombre,nombre_en from categoria where id =?', [$d["categoria"]]);
                array_push($categorias, $cat);
            }
            $cert = R::findAll('certificacion_proyecto', 'where proyecto = ?', [$id]);
            $certificaciones = array();
            foreach ($cert as $c) {
                $certi = R::getRow('select c.id as certificacion_id, c.nombre as certificacion_nombre, cn.id as nivel_id, cn.nombre as nivel_nombre, cn.nombre_en as nivel_nombre_en from certificacion as c join certificacion_nivel cn on c.id = cn.certificacion where c.id = ? and cn.id = ?', [$c["certificacion"], $c["nivel"]]);
                array_push($certificaciones, $certi);
            }
            $cliente = R::load('cliente', $proyect->cliente);
            $ubicacion = R::getRow('select m.id as ciudad_id, m.municipio as ciudad, latitud, longitud, e.id as estado_id, e.estado as estado from municipio m inner join estado_municipio em on m.id = em.municipio_id inner  join estado e on em.estado_id = e.id where m.id = ?', [$proyect->municipio]);
            array_push($terminados, ["id" => $id, "fav" => $fav, "nombre" => $nombre, "portada" => $portada, "status" => $status, "inicio" => $f_inicio, "fin" => $f_fin, "metros" => $metros, "pies" => $pies, "cliente" => $cliente, "Categorias" => $categorias, "certificaciones" => $certificaciones, "ubicacion" => $ubicacion, "avance"=>$avance]);

        }

    }
}

// Require composer autoload
require_once __DIR__ . '/vendor/autoload.php';
$defaultConfig = (new Mpdf\Config\ConfigVariables())->getDefaults();
$fontDirs = $defaultConfig['fontDir'];

$defaultFontConfig = (new Mpdf\Config\FontVariables())->getDefaults();
$fontData = $defaultFontConfig['fontdata'];

use Ilovepdf\Ilovepdf;
// Create an instance of the class:
$mpdf= new \Mpdf\Mpdf(['mode' => 'utf-8','format' => 'A4','margin_left' => 0,'margin_right' => 0,'margin_top' => 0,'margin_bottom' => 0,'margin_header' => 0,'margin_footer' => 0,'fontDir' => array_merge($fontDirs, [ __DIR__ . '/assets_pdf/', ]), 'fontdata' => $fontData + ['roc-grotesk' => [ 'R' => 'roc-grotesk-regular.ttf', ], 'roc-grotesk-wide' => [ 'R' => 'roc-grotesk-wide-regular.ttf', ], 'roc-grotesk-wide-bold' => [ 'R' => 'roc-grotesk-wide-500.ttf', ], ]]); //use this customization
$mpdf->showImageErrors = true;
$mpdf->SetCompression(true);
$mpdf->simpleTables = true; //Quitar tablas complejas y tratar de reducir el tamano del archivo
$mpdf->img_dpi = 15; //antes 20
if($pdf_language == "es-MX"){
    $html = file_get_contents("lib/pdf_start.html");
}
else{
    $html = file_get_contents("lib/pdf_start_en.html");
}


/*$html = $html.'<pagebreak>';
if($pdf_language == "es-MX"){
    $xx = file_get_contents("lib/title_inprogress.html");
}
else{
    $xx = file_get_contents("lib/title_inprogress_en.html");
}
$html = $html.$xx;*/

$p_count = 4;

if($pdf_language == "es-MX"){

    foreach ($en_proceso as $proyecto){



        if(( $p_count % 4 ) == 0){

            $html = $html.'<pagebreak>';
            $xx = file_get_contents("lib/title_inprogress.html");
            $html = $html.$xx;
        }

        $item = file_get_contents("lib/item.html");
        $portada = $proyecto["portada"];
        $portada = str_replace("https://apis.seica.com.mx/","",$portada);

	$cats ='';
        foreach($proyecto["Categorias"] as $cat){
                $cats.= '-'.$cat["nombre"].'<br>';
        }

	$certs = '';
	foreach($proyecto["certificaciones"] as $c){
                $certs.= '-'.$c["nivel_nombre"].'<br>';
        }

        $item = str_replace('$_portada',$portada,$item);
        $item = str_replace('$_nombre',$proyecto["nombre"],$item);
        $item = str_replace('$_metros',$proyecto["metros"],$item);
        $item = str_replace('$_cliente',$proyecto["cliente"]["nombre"],$item);
        $item = str_replace('$_categoria',$cats,$item);
        $item = str_replace('$_ubicacion',$proyecto["ubicacion"]["ciudad"],$item);
        $item = str_replace('$_date_start',$proyecto["inicio"],$item);
        $item = str_replace('$_date_end',$proyecto["fin"],$item);
        $item = str_replace('$_avance',$proyecto["avance"],$item);
        $item = str_replace('$_cert',$certs,$item);
        $html = $html.$item;

        $p_count ++;

    }
}
else{

    foreach ($en_proceso as $proyecto){

        if(( $p_count % 4 ) == 0){

            $html = $html.'<pagebreak>';
            $xx = file_get_contents("lib/title_inprogress_en.html");
            $html = $html.$xx;
        }

        $item = file_get_contents("lib/item_en.html");
        $portada = $proyecto["portada"];
	$portada = str_replace("https://apis.seica.com.mx/","",$portada);


	$cats ='';
        foreach($proyecto["Categorias"] as $cat){
                $cats.= '-'.$cat["nombre_en"].'<br>';
        }
        $certs = '';
	foreach($proyecto["certificaciones"] as $c){
                $certs.= '-'.$c["nivel_nombre_en"].'<br>';
        }

        $item = str_replace('$_portada',$portada,$item);
        $item = str_replace('$_nombre',$proyecto["nombre"],$item);
        $item = str_replace('$_pies',$proyecto["pies"],$item);
        $item = str_replace('$_cliente',$proyecto["cliente"]["nombre"],$item);
        $item = str_replace('$_categoria',$cats,$item);
        $item = str_replace('$_ubicacion',$proyecto["ubicacion"]["ciudad"],$item);
        $item = str_replace('$_date_start',$proyecto["inicio"],$item);
        $item = str_replace('$_date_end',$proyecto["fin"],$item);
        $item = str_replace('$_avance',$proyecto["avance"],$item);
	$item = str_replace('$_cert',$certs,$item);

	$html = $html.$item;

        $p_count ++;

    }
}


/*$html = $html.'<pagebreak>';
if($pdf_language == "es-MX"){
    $xx = file_get_contents('lib/title_completed.html');
}
else{
    $xx = file_get_contents('lib/title_completed_en.html');
}
$html = $html.$xx;*/

$p_count = 4;

if($pdf_language == "es-MX"){

    foreach ($terminados as $proyecto){


        if(( $p_count % 4 ) == 0){

            $html = $html.'<pagebreak>';
            $xx = file_get_contents("lib/title_completed.html");
            $html = $html.$xx;
        }

        $item = file_get_contents("lib/item_f.html");
        $portada = $proyecto["portada"];
	$portada = str_replace("https://apis.seica.com.mx/","",$portada);

	$date = DateTime::createFromFormat("Y-m-d", $proyecto["fin"]);

	$cats ='';
        foreach($proyecto["Categorias"] as $cat){
                $cats.= '-'.$cat["nombre"].'<br>';
        }
        $certs = '';
        foreach($proyecto["certificaciones"] as $c){
                $certs.= '-'.$c["nivel_nombre"].'<br>';
        }

        $item = str_replace('$_portada',$portada,$item);
        $item = str_replace('$_nombre',$proyecto["nombre"],$item);
        $item = str_replace('$_metros',$proyecto["metros"],$item);
        $item = str_replace('$_cliente',$proyecto["cliente"]["nombre"],$item);
        $item = str_replace('$_categoria',$cats,$item);
        $item = str_replace('$_ubicacion',$proyecto["ubicacion"]["ciudad"],$item);
        $item = str_replace('$_date_start',$proyecto["inicio"],$item);
        $item = str_replace('$_date_end',$date->format("Y"),$item);
        $item = str_replace('$_avance',"100",$item);
	$item = str_replace('$_cert',$certs,$item);

        $html = $html.$item;
        $p_count ++;

    }
}
else{

    foreach ($terminados as $proyecto){


        if(( $p_count % 4 ) == 0){

            $html = $html.'<pagebreak>';
            $xx = file_get_contents("lib/title_completed_en.html");
            $html = $html.$xx;
        }

        $item = file_get_contents("lib/item_en_f.html");
        $portada = $proyecto["portada"];
        $portada = str_replace("https://apis.seica.com.mx/","",$portada);

	$date = DateTime::createFromFormat("Y-m-d", $proyecto["fin"]);

	$cats ='';
	foreach($proyecto["Categorias"] as $cat){
		$cats.= '-'.$cat["nombre_en"].'<br>';
	}
	$certs = '';
        foreach($proyecto["certificaciones"] as $c){
                $certs.= '-'.$c["nivel_nombre_en"].'<br>';
        }

        $item = str_replace('$_portada',$portada,$item);
        $item = str_replace('$_nombre',$proyecto["nombre"],$item);
        $item = str_replace('$_pies',$proyecto["pies"],$item);
        $item = str_replace('$_cliente',$proyecto["cliente"]["nombre"],$item);
        $item = str_replace('$_categoria',$cats,$item);
        $item = str_replace('$_ubicacion',$proyecto["ubicacion"]["ciudad"],$item);
        $item = str_replace('$_date_start',$proyecto["inicio"],$item);
        $item = str_replace('$_date_end',$date->format("Y"),$item);
        $item = str_replace('$_avance',"100",$item);
	$item = str_replace('$_cert',$certs,$item);

	$html = $html.$item;
        $p_count ++;

    }
}

$xx = file_get_contents('lib/finish_close.html');
$html = $html.$xx;


// Write some HTML code:
$mpdf->WriteHTML($html);


    // Output a PDF file directly to the browser
    $mpdf->Output("catalogo.pdf", 'D');

/// compress ilovepdf
///
    try {
        $ilovepdf = new Ilovepdf('project_public_49d950d99f4634a2f5f87d6a1f3304b0_ENp_e07e6077b5e316a73a6d6da2319a0d22d','secret_key_8f0eb7580a22b26fed3ae44b58fa1e2c_KewA0cfad31badfdb1c3a2edd3872b4d5c362');
        $myTask = $ilovepdf->newTask('compress');
        $file1 = $myTask->addFile('catalogo.pdf');
        $myTask->execute();
        $myTask->download();


    }
    catch (Exception $e){
        echo $e;
    }

$filename="catalogo.pdf";

header('Content-type:application/pdf');
header('Content-disposition: inline; filename="'.$filename.'"');
header('content-Transfer-Encoding:binary');
header('Accept-Ranges:bytes');
readfile($filename);







Youez - 2016 - github.com/yon3zu
LinuXploit