* SPDX-License-Identifier: AGPL-3.0-only ************************************/ /* crmv@29686 crmv@96742 */ ini_set('max_execution_time','1800'); ini_set('memory_limit','1024M'); require_once("modules/Reports/ReportRun.php"); require_once("modules/Reports/Reports.php"); require_once("include/mpdf/mpdf.php"); // crmv@30066 global $current_user, $theme, $mod_strings, $app_strings; $reportid = vtlib_purify($_REQUEST["record"]); $folderid = vtlib_purify($_REQUEST["folderid"]); $filtercolumn = vtlib_purify($_REQUEST["stdDateFilterField"]); $filter = vtlib_purify($_REQUEST["stdDateFilter"]); $oReport = Reports::getInstance($reportid); //crmv@sdk-25785 $sdkrep = SDK::getReport($reportid, $folderid); if (!is_null($sdkrep)) { require_once($sdkrep['reportrun']); $oReportRun = new $sdkrep['runclass']($reportid); $oReport->reportname = $oReportRun->reportname; } else { $oReportRun = ReportRun::getInstance($reportid); } //crmv@sdk-25785e // crmv@97862 if ($_REQUEST["startdate"] && $_REQUEST["enddate"]) { $oReportRun->setStdFilterFromRequest($_REQUEST); } // crmv@97862e $_REQUEST['limit_string'] = 'ALL'; // avoid any limit if ($_REQUEST['export_report_summary'] == 1) $reportcount = $oReportRun->GenerateReport("COUNT",$filterlist); if ($_REQUEST['export_report_totals'] == 1) $reporttotal = $oReportRun->GenerateReport("TOTALHTML",$filterlist); $oReportRun->_columnslist = false; // force reload of columns // crmv@169285 $search = $_REQUEST['search']; if (is_array($search) && $search['value']) { $oReportRun->setQuerySearch($search['value']); } $reqColumns = $_REQUEST['columns']; if (is_array($reqColumns) && count($reqColumns) > 0) { // extract the search info $searchCols = array(); foreach ($reqColumns as $idx => $colinfo) { $name = $colinfo['name']; if ($name && $colinfo['search']['value']) { $searchCols[$name] = array( 'index' => $idx, 'column' => $name, 'search' => $colinfo['search']['value'], ); } } if (count($searchCols) > 0) { $oReportRun->setQuerySearchColumns($searchCols); } } // crmv@169285e // crmv@177381 $ordering = $_REQUEST['order']; if (is_array($ordering) && count($ordering) > 0) { // crmv@128369 // add the columnname foreach ($ordering as &$order) { $order['index'] = $order['column']; $order['column'] = $reqColumns[$order['index']]['name']; } // crmv@128369e $oReportRun->setQueryOrdering($ordering); } // crmv@177381e if ($_REQUEST['export_report_main'] == 1) $reportdata = $oReportRun->GenerateReport("PDF",$filterlist); // TODO: sistema per report con tante righe $repcolumns = $reportdata[3]; // numero di colonne // gestione pagina in base alle colonne del report (-L for landscape) if ($repcolumns <= 5) { $format = 'A4'; } elseif ($repcolumns <= 10) { $format = 'A4-L'; } elseif ($repcolumns <= 15) { $format = 'A3'; } elseif ($repcolumns <= 20) { $format = 'A3-L'; } elseif ($repcolumns <= 25) { $format = 'A2'; } elseif ($repcolumns <= 30) { $format = 'A2-L'; } elseif ($repcolumns <= 35) { $format = 'A1'; } else { $format = 'A1-L'; // maximum size allowed } $mpdf = new mPDF( '', // mode $format, // page size/orientation '', // default font size 'Arial', // default font 10, // margin left (mm) 10, // margin right 10, // margin top 10, // margin bottom 10, // margin header 10 // margin footer ); // performance tips //$mpdf->shrink_tables_to_fit = 0; // disable font shrinking // $mpdf->debug = true; // DEBUG INFO $mpdf->SetAuthor('VTE CRM'); $mpdf->SetAutoFont(); $mpdf->setFooter('{PAGENO}'); // page number $csspath = "themes/$theme/reportpdf.css"; //$mpdf->WriteHTML(file_get_contents($csspath), 1); //$mpdf->SetHTMLHeader($header_html); //$mpdf->SetHTMLFooter($footer_html); $top_html = " \n