public static function getCustomReportsQuery($reportid, $filterlist = null)
 {
     global $current_user;
     $reportnew = new ReportRun($reportid);
     $groupby = $reportnew->getGroupingList($reportid);
     $showcharts = false;
     if (!empty($groupby)) {
         $showcharts = true;
     }
     $reportQuery = $reportnew->sGetSQLforReport($reportid, $filterlist, 'HTML', $showcharts);
     return $reportQuery;
 }
Esempio n. 2
0
 function replaceReport($content, $reportid)
 {
     session_start();
     require_once "modules/Reports/ReportRun.php";
     require_once "modules/Reports/Reports.php";
     require_once 'include/utils/utils.php';
     $current_language = Users_Record_Model::getCurrentUserModel()->get('language');
     include "modules/OSSPdf/language/" . $current_language . ".lang.php";
     $language = $_SESSION['authenticated_user_language'] . '.lang.php';
     require_once "include/language/{$language}";
     $db = PearDatabase::getInstance();
     $oReport = new Reports($reportid);
     //Code given by Csar Rodrguez for Rwport Filter
     $filtercolumn = $_REQUEST["stdDateFilterField"];
     $filter = $_REQUEST["stdDateFilter"];
     $oReportRun = new ReportRun($reportid);
     $startdate = $_REQUEST['startdate'];
     $enddate = $_REQUEST['enddate'];
     if (!empty($startdate) && !empty($enddate) && $startdate != "0000-00-00" && $enddate != "0000-00-00") {
         $date = new DateTimeField($_REQUEST['startdate']);
         $endDate = new DateTimeField($_REQUEST['enddate']);
         $startdate = $date->getDBInsertDateValue();
         //Convert the user date format to DB date format
         $enddate = $endDate->getDBInsertDateValue();
         //Convert the user date format to DB date format
     }
     $filterlist = $oReportRun->RunTimeFilter($filtercolumn, $filter, $startdate, $enddate);
     ############///////////////////////////////#########################
     $sql = $oReportRun->sGetSQLforReport($reportid, $filterlist);
     $result = $db->query($sql, true);
     $modules_selected = array();
     $modules_selected[] = $oReportRun->primarymodule;
     if (!empty($oReportRun->secondarymodule)) {
         $sec_modules = split(":", $oReportRun->secondarymodule);
         for ($i = 0; $i < count($sec_modules); $i++) {
             $modules_selected[] = $sec_modules[$i];
         }
     }
     $y = $db->num_fields($result);
     $report = '<table border="1" cellpadding="2"><tr width="500px" bgcolor="lightgrey">';
     $arrayHeaders = array();
     for ($x = 0; $x < $y; $x++) {
         $fld = $db->field_name($result, $x);
         if (in_array($oReportRun->getLstringforReportHeaders($fld->name), $arrayHeaders)) {
             $headerLabel = str_replace("_", " ", $fld->name);
             $arrayHeaders[] = $headerLabel;
         } else {
             $headerLabel = str_replace($modules, " ", $oReportRun->getLstringforReportHeaders($fld->name));
             $headerLabel = str_replace("_", " ", $oReportRun->getLstringforReportHeaders($fld->name));
             $arrayHeaders[] = $headerLabel;
         }
         /*STRING TRANSLATION starts */
         $mod_name = split(' ', $headerLabel, 2);
         $moduleLabel = '';
         if (in_array($mod_name[0], $modules_selected)) {
             $moduleLabel = getTranslatedString($mod_name[0], $mod_name[0]);
         }
         if (!empty($oReportRun->secondarymodule)) {
             if ($moduleLabel != '') {
                 $headerLabel_tmp = getTranslatedString($mod_name[1], $mod_name[0]);
             } else {
                 $headerLabel_tmp = getTranslatedString($mod_name[0] . " " . $mod_name[1]);
             }
         } else {
             if ($moduleLabel != '') {
                 $headerLabel_tmp = getTranslatedString($mod_name[1], $mod_name[0]);
             } else {
                 $headerLabel_tmp = getTranslatedString($mod_name[0] . " " . $mod_name[1]);
             }
         }
         if ($headerLabel == $headerLabel_tmp) {
             $headerLabel = getTranslatedString($headerLabel_tmp);
         } else {
             $headerLabel = $headerLabel_tmp;
         }
         /*STRING TRANSLATION ends */
         $report .= "<td class='rptCellLabel'><small><b>" . $headerLabel . "</b></small></td>";
         // Performance Optimization: If direct output is required
         // END
     }
     $report .= '</tr>';
     // END
     $noofrows = $db->num_rows($result);
     $custom_field_values = $db->fetch_array($result);
     $groupslist = $oReportRun->getGroupingList($oReportRun->reportid);
     $column_definitions = $db->getFieldsDefinition($result);
     do {
         $arraylists = array();
         if (count($groupslist) == 1) {
             $newvalue = $custom_field_values[0];
         } elseif (count($groupslist) == 2) {
             $newvalue = $custom_field_values[0];
             $snewvalue = $custom_field_values[1];
         } elseif (count($groupslist) == 3) {
             $newvalue = $custom_field_values[0];
             $snewvalue = $custom_field_values[1];
             $tnewvalue = $custom_field_values[2];
         }
         if ($newvalue == "") {
             $newvalue = "-";
         }
         if ($snewvalue == "") {
             $snewvalue = "-";
         }
         if ($tnewvalue == "") {
             $tnewvalue = "-";
         }
         $report .= '<tr width="500px">';
         // Performance Optimization
         // END
         for ($i = 0; $i < $y; $i++) {
             $fld = $db->field_name($result, $i);
             $fld_type = $column_definitions[$i]->type;
             $fieldvalue = getReportFieldValue($oReportRun, $picklistarray, $fld, $custom_field_values, $i);
             //check for Roll based pick list
             $temp_val = $fld->name;
             if ($fieldvalue == "") {
                 $fieldvalue = "-";
             } else {
                 if ($fld->name == 'LBL_ACTION') {
                 }
             }
             if ($lastvalue == $fieldvalue && $oReportRun->reporttype == "summary") {
                 if ($report->reporttype == "summary") {
                     $valtemplate .= "<td class='rptEmptyGrp'>&nbsp;</td>";
                 } else {
                     $report .= "<td class='rptData'>" . $fieldvalue . "</td>";
                 }
             } else {
                 if ($secondvalue === $fieldvalue && $oReportRun->reporttype == "summary") {
                     if ($lastvalue === $newvalue) {
                         $report .= "<td class='rptEmptyGrp'>&nbsp;</td>";
                     } else {
                         $report .= "<td class='rptGrpHead'>" . $fieldvalue . "</td>";
                     }
                 } else {
                     if ($thirdvalue === $fieldvalue && $oReportRun->reporttype == "summary") {
                         if ($secondvalue === $snewvalue) {
                             $report .= "<td class='rptEmptyGrp'>&nbsp;</td>";
                         } else {
                             $report .= "<td class='rptGrpHead'>" . $fieldvalue . "</td>";
                         }
                     } else {
                         if ($oReportRun->reporttype == "tabular") {
                             $report .= "<td class='rptData'><small>" . $fieldvalue . "</small></td>";
                         } else {
                             $report .= "<td class='rptGrpHead'><small>" . $fieldvalue . "</small></td>";
                         }
                     }
                 }
             }
             // Performance Optimization: If direct output is required
             // END
         }
         $report .= "</tr>";
         // Performance Optimization: If direct output is required
         //	echo $valtemplate;
         // END
         $lastvalue = $newvalue;
         $secondvalue = $snewvalue;
         $thirdvalue = $tnewvalue;
         $arr_val[] = $arraylists;
         set_time_limit($php_max_execution_time);
     } while ($custom_field_values = $db->fetch_array($result));
     $report .= "</table></br>";
     $content = str_replace("#report_tag#", $report, $content);
     ############///////////////////////////////#########################
     return $content;
 }