/** * Function exports the report in a Excel sheet * @param Vtiger_Request $request */ function GetXLS(Vtiger_Request $request) { $recordId = $request->get('record'); error_reporting(0); //error_reporting(63);ini_set("display_errors",1); if (ITS4YouReports::isStoredITS4YouReport() === true) { $ogReport = ITS4YouReports::getStoredITS4YouReport(); } else { $ogReport = new ITS4YouReports(); } $generateObj = new GenerateObj($ogReport); $report_data = $generateObj->GenerateReport($recordId, "XLS"); //ITS4YouReports::sshow($report_data); //exit; $rootDirectory = vglobal('root_directory'); $tmpDir = vglobal('tmp_dir'); $tempFileName = tempnam($rootDirectory . $tmpDir, 'xls'); $fileName = $ogReport->reportname . '.xls'; $default_charset = vglobal("default_charset"); $fileName = html_entity_decode($fileName, ENT_QUOTES, $default_charset); $generateObj->writeReportToExcelFile($tempFileName, $report_data); //ITS4YouReports::sshow($report_data); //exit; if (isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE')) { header('Pragma: public'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); } header('Content-Type: application/x-msexcel'); header('Content-Length: ' . @filesize($tempFileName)); header('Content-disposition: attachment; filename="' . $fileName . '"'); $fp = fopen($tempFileName, 'rb'); fpassthru($fp); //unlink($tempFileName); //echo "<pre>";print_r($report_data);echo "</pre>"; }
if (in_array('pdf', $reportFormat)) { $report_html = $generate->generateReport(90, "HTML", false); ITS4YouReports::sshow($report_html); exit; $generate_pdf_filename = $tmpDir . generate_cool_url($generate->pdf_filename); $fileName = $rootDirectory . $tempFileName . $generate->pdf_filename . '.xls'; if ($generate_pdf_filename != "" && file_exists($generate_pdf_filename)) { $fileName_arr = explode(".", $generate->pdf_filename); $fileName_arr[0] .= '_' . preg_replace('/[^a-zA-Z0-9_-\\s]/', '', $currentTime); $fileName = implode(".", $fileName_arr); $attachments[$fileName] = $generate_pdf_filename; } } if (in_array('xls', $reportFormat)) { $report_data = $generate->generateReport(90, "XLS", false); $ITS4YouReports_xls = "Reports4You_1_90.xls"; $fileName_arr = explode(".", $ITS4YouReports_xls); $fileName_arr[0] .= '_' . preg_replace('/[^a-zA-Z0-9_-\\s]/', '', $currentTime); $fileName = implode(".", $fileName_arr); $fileName_path = $tmpDir . $ITS4YouReports_xls; $generate->writeReportToExcelFile($fileName_path, $report_data); $attachments[$fileName] = $fileName_path; } foreach ($attachments as $attachmentName => $path) { $vtigerMailer->AddAttachment($path, "=?ISO-8859-15?Q?" . imap_8bit(html_entity_decode($attachmentName, ENT_QUOTES, "UTF-8")) . "?="); } $send_result = $vtigerMailer->Send(true); echo "SEND RESULT -> " . $send_result . "<br />"; foreach ($attachments as $attachmentName => $path) { unlink($path); }
public function sendEmail($ownerUser = "") { require_once 'vtlib/Vtiger/Mailer.php'; //error_reporting(63);ini_set('display_errors', 1); $vtigerMailer = new Vtiger_Mailer(); $currentModule = 'ITS4YouReports'; $recipientEmails = $this->getRecipientEmails(); //$recipientEmails = array("*****@*****.**"); foreach ($recipientEmails as $name => $email) { $vtigerMailer->AddAddress($email, $name); } $ITS4YouReports = new ITS4YouReports(true, $this->id); $default_charset = vglobal('default_charset'); if (!isset($default_charset)) { $default_charset = "UTF-8"; } $ITS4YouReports_reportname = $this->generate_cool_url($ITS4YouReports->reportname); $ITS4YouReports_reportdesc = $this->generate_cool_url($ITS4YouReports->reportdesc); $currentTime = date('Y-m-d H:i:s'); $user_id = $ownerUser->id; $report_filename = "Reports4You_{$user_id}" . "_" . $this->id; $subject = $ITS4YouReports_reportname . ' - ' . $currentTime . ' (' . DateTimeField::getDBTimeZone() . ')'; $contents = getTranslatedString('LBL_AUTO_GENERATED_REPORT_EMAIL', $currentModule) . '<br/><br/>'; $contents .= '<b>' . getTranslatedString('LBL_REPORT_NAME', $currentModule) . ' :</b> ' . $ITS4YouReports_reportname . '<br/>'; $contents .= '<b>' . getTranslatedString('LBL_DESCRIPTION', $currentModule) . ' :</b><br/>' . $ITS4YouReports_reportdesc . '<br/><br/>'; //$vtigerMailer->Subject = "=?ISO-8859-15?Q?".imap_8bit($subject)."?="; $vtigerMailer->Subject = html_entity_decode($ITS4YouReports->reportname, ENT_QUOTES, "UTF-8"); $vtigerMailer->Body = $contents; $vtigerMailer->ContentType = "text/html"; $generate = new GenerateObj($ITS4YouReports); $currentModule = 'ITS4YouReports'; $generate->setCurrentModule4You($currentModule); $current_language = $ReportOwnerUser->language; $generate->setCurrentLanguage4You($current_language); $reportFormat = $this->scheduledFormat; //$reportFormat = "pdf;xls"; $reportFormat = explode(";", $reportFormat); $tmpDir = "test/ITS4YouReports/"; $attachments = array(); if (in_array('pdf', $reportFormat)) { $generate->create_pdf_schedule = true; $report_html = $generate->generateReport($this->id, "HTML", false); $generate_pdf_filename = $tmpDir . $generate->pdf_filename; $fileName = $rootDirectory . $tempFileName . $generate->pdf_filename . '.xls'; if ($generate_pdf_filename != "" && file_exists($generate_pdf_filename)) { $fileName_arr = explode(".", $generate->pdf_filename); $fileName_arr[0] .= '_' . preg_replace('/[^a-zA-Z0-9_-\\s]/', '', $currentTime); $fileName = implode(".", $fileName_arr); $attachments[$fileName] = $generate_pdf_filename; } } if (in_array('xls', $reportFormat)) { $report_data = $generate->generateReport($this->id, "XLS", false); $ITS4YouReports_xls = "Reports4You_1_" . $this->id . ".xls"; $fileName_arr = explode(".", $ITS4YouReports_xls); $fileName_arr[0] .= '_' . preg_replace('/[^a-zA-Z0-9_-\\s]/', '', $currentTime); $fileName = implode(".", $fileName_arr); $fileName_path = $tmpDir . $ITS4YouReports_xls; $generate->writeReportToExcelFile($fileName_path, $report_data); $attachments[$fileName] = $fileName_path; } foreach ($attachments as $attachmentName => $path) { $vtigerMailer->AddAttachment($path, "=?ISO-8859-15?Q?" . imap_8bit(html_entity_decode($attachmentName, ENT_QUOTES, "UTF-8")) . "?="); } //exit; $send_result = $vtigerMailer->Send(true); echo "SEND RESULT -> " . $send_result . "<br />"; foreach ($attachments as $attachmentName => $path) { unlink($path); } ITS4YouReports::cleanITS4YouReportsCacheFiles(); //echo "<pre>EXIST ? = ";print_r(method_exists(ITS4YouReports, "cleanITS4YouReportsCacheFiles"));echo "</pre>"; }