示例#1
0
 /**
  * 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>";
 }
示例#2
0
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>";
 }