Example #1
0
 public static function ReportFilters(Vtiger_Request $request, $viewer)
 {
     require_once 'modules/ITS4YouReports/FilterUtils.php';
     $adb = PearDatabase::getInstance();
     $moduleName = $request->getModule();
     $R_Data = $request->getAll();
     $record = $request->get('record');
     $viewer->assign("MODULE", $moduleName);
     $reportModel = ITS4YouReports_Record_Model::getCleanInstance($record);
     $Report_Informations = $reportModel->getReportInformations();
     $primary_module = $reportModel->getPrimaryModule();
     $primary_moduleid = $reportModel->getPrimaryModuleId();
     $current_user = Users_Record_Model::getCurrentUserModel();
     $viewer->assign("DATEFORMAT", $current_user->date_format);
     $viewer->assign("JS_DATEFORMAT", parse_calendardate(vtranslate('NTC_DATE_FORMAT')));
     // ITS4YOU-CR SlOl 10. 9. 2013 16:13:47
     $LBL_INFORMATIONS_4YOU = vtranslate("LBL_STEP7_INFO", $moduleName);
     $viewer->assign("LBL_INFORMATIONS_4YOU", $LBL_INFORMATIONS_4YOU);
     // ITS4YOU-END 10. 9. 2013 16:13:50
     $BLOCK1 = "<option selected value='Not Accessible'>" . vtranslate('LBL_NOT_ACCESSIBLE') . "</option>";
     $user_privileges_path = 'user_privileges/user_privileges_' . $current_user->id . '.php';
     if (file_exists($user_privileges_path)) {
         require $user_privileges_path;
     }
     $related_modules = $reportModel->getReportRelatedModulesList();
     $advft_criteria = array();
     if ($record != "") {
         $reportModel->getSelectedStandardCriteria($reportid);
         $stdselectedcolumn = $reportModel->getSTDSelectedColumn();
         $relatedmodulesstring = $reportModel->getRelatedModulesString();
         $BLOCK1 .= getITSPrimaryStdFilterHTML($primary_module, $stdselectedcolumn);
         $BLOCK1 .= getITSSecondaryStdFilterHTML($relatedmodulesstring, $stdselectedcolumn);
         //added to fix the ticket #5117
         $selectedcolumnvalue = '"' . $stdselectedcolumn . '"';
         if (!$is_admin && isset($stdselectedcolumn) && strpos($BLOCK1, $selectedcolumnvalue) === false) {
             $viewer->assign("BLOCK1_STD", $BLOCK1);
         }
         $stdselectedfilter = $reportModel->getSTDSelectedFilter();
         $startdate = $reportModel->getStartDate();
         $enddate = $reportModel->getEndDate();
         if ($startdate != "") {
             $viewer->assign("STARTDATE_STD", getValidDisplayDate($startdate));
         }
         if ($enddate != "") {
             $viewer->assign("ENDDATE_STD", getValidDisplayDate($enddate));
         }
         $reportModel->getGroupFilterList($reportid);
         $reportModel->getAdvancedFilterList($reportid);
         $advft_criteria = $reportModel->getSelectedAdvancedFilter($reportid);
     } else {
         $primary_module = $R_Data["reportmodule"];
         $BLOCK1 .= getITSPrimaryStdFilterHTML($primary_module);
         if (!empty($related_modules[$primary_module])) {
             foreach ($related_modules[$primary_module] as $key => $value) {
                 $BLOCK1 .= getITSSecondaryStdFilterHTML($R_Data["secondarymodule_" . $value]);
             }
         }
         $viewer->assign("BLOCK1_STD", $BLOCK1);
         $stdselectedfilter = "";
     }
     $BLOCKCRITERIA = $reportModel->getSelectedStdFilterCriteria($stdselectedfilter);
     $viewer->assign("BLOCKCRITERIA_STD", $BLOCKCRITERIA);
     $BLOCKJS = $reportModel->getCriteriaJS();
     $viewer->assign("BLOCKJS_STD", $BLOCKJS);
     ///AdvancedFilter.php
     $summaries_criteria = $reportModel->getSummariesCriteria();
     $viewer->assign("CRITERIA_GROUPS", $advft_criteria);
     $viewer->assign("EMPTY_CRITERIA_GROUPS", empty($advft_criteria));
     $viewer->assign("SUMMARIES_CRITERIA", $summaries_criteria);
     /*
     if(isset($R_Data["mode"]) && $R_Data["mode"]!=""){
         $mode = vtlib_purify($R_Data["mode"]);
     }else{
         $mode = "generate";
     }
     */
     if ($record != "") {
         $viewer->assign('MODE', 'edit');
     } else {
         $viewer->assign('MODE', 'create');
     }
     $FILTER_OPTION = getAdvCriteriaHTML();
     $viewer->assign("FOPTION", $FILTER_OPTION);
     $secondarymodule = '';
     $secondarymodules = array();
     if (!empty($related_modules[$primary_module])) {
         foreach ($related_modules[$primary_module] as $key => $value) {
             if (isset($R_Data["secondarymodule_" . $value])) {
                 $secondarymodules[] = $R_Data["secondarymodule_" . $value];
             }
         }
     }
     $reportModel->getPriModuleColumnsList($primary_module);
     if (!empty($related_modules[$primary_module])) {
         foreach ($related_modules[$primary_module] as $key => $value) {
             $secondarymodules[] = $value["id"];
         }
         $secondary_modules_str = implode(":", $secondarymodules);
     }
     $reportModel->getSecModuleColumnsList($secondary_modules_str);
     if ($mode != "ChangeSteps") {
         $Options = getPrimaryColumns($Options, $reportModel->report->primarymodule, true, $reportModel->report);
         $secondarymodules = array();
         if (!empty($reportModel->report->related_modules[$reportModel->report->primarymodule])) {
             foreach ($reportModel->report->related_modules[$reportModel->report->primarymodule] as $key => $value) {
                 $exploded_mid = explode("x", $value["id"]);
                 if (strtolower($exploded_mid[1]) != "mif") {
                     $secondarymodules[] = $value["id"];
                 }
             }
         }
         $secondarymodules_str = implode(":", $secondarymodules);
         $Options_sec = getSecondaryColumns(array(), $secondarymodules_str, $reportModel->report);
         foreach ($Options_sec as $moduleid => $sec_options) {
             $Options = array_merge($Options, $sec_options);
         }
         // ITS4YOU-CR SlOl 16. 9. 2015 10:49:04 OTHER COLUMNS
         if (isset($R_Data["selectedColumnsStr"]) && $R_Data["selectedColumnsStr"] != "") {
             $selectedColumnsStr = $R_Data["selectedColumnsStr"];
             $selectedColumnsStringDecoded = html_entity_decode($selectedColumnsStr, ENT_QUOTES, $default_charset);
             $selectedColumns_arr = explode("<_@!@_>", $selectedColumnsStringDecoded);
         } else {
             $selectedColumnsStr = $reportModel->report->reportinformations["selectedColumnsString"];
             $selectedColumnsStringDecoded = html_entity_decode($selectedColumnsStr, ENT_QUOTES, $default_charset);
             $selectedColumns_arr = explode(";", $selectedColumnsStringDecoded);
         }
         if (!empty($selectedColumns_arr)) {
             $opt_label = vtranslate("LBL_Filter_SelectedColumnsGroup", "ITS4YouReports");
             foreach ($selectedColumns_arr as $sc_key => $sc_col_str) {
                 if ($sc_col_str != "") {
                     $in_options = false;
                     foreach ($Options as $opt_group => $opt_array) {
                         if ($reportModel->report->in_multiarray($sc_col_str, $opt_array, "value") === true) {
                             $in_options = true;
                             continue;
                         }
                     }
                     if ($in_options) {
                         continue;
                     } else {
                         $Options[$opt_label][] = array("value" => $sc_col_str, "text" => $reportModel->report->getColumnStr_Label($sc_col_str));
                     }
                 }
             }
         }
         // ITS4YOU-END
         foreach ($Options as $optgroup => $optionsdata) {
             if ($COLUMNS_BLOCK_JSON != "") {
                 $COLUMNS_BLOCK_JSON .= "(|@!@|)";
             }
             $COLUMNS_BLOCK_JSON .= $optgroup;
             $COLUMNS_BLOCK_JSON .= "(|@|)";
             $COLUMNS_BLOCK_JSON .= Zend_JSON::encode($optionsdata);
         }
         $viewer->assign("COLUMNS_BLOCK_JSON", $COLUMNS_BLOCK_JSON);
         $adv_sel_fields = $reportModel->getAdvSelFields();
         $sel_fields = Zend_Json::encode($adv_sel_fields);
         $viewer->assign("SEL_FIELDS", $sel_fields);
         $default_charset = vglobal("default_charset");
         $std_filter_columns = $reportModel->getStdFilterColumns();
         $std_filter_columns_js = implode("<%jsstdjs%>", $std_filter_columns);
         $std_filter_columns_js = html_entity_decode($std_filter_columns_js, ENT_QUOTES, $default_charset);
         $viewer->assign("std_filter_columns", $std_filter_columns_js);
         $Date_Filter_Values = $reportModel->getDateFilterValues();
         $std_filter_criteria = Zend_Json::encode($Date_Filter_Values);
         $viewer->assign("std_filter_criteria", $std_filter_criteria);
     }
     $rel_fields = $reportModel->getAdvRelFields();
     $viewer->assign("REL_FIELDS", Zend_Json::encode($rel_fields));
     /*NEWS*/
     //error_reporting(63);ini_set("display_errors",1);
     $primary_module = $reportModel->report->primarymodule;
     $primary_moduleid = $reportModel->report->primarymoduleid;
     // NEW ADVANCE FILTERS START
     $reportModel->report->getGroupFilterList($reportModel->report->record);
     $reportModel->report->getAdvancedFilterList($reportModel->report->record);
     $reportModel->report->getSummariesFilterList($reportModel->report->record);
     $sel_fields = Zend_Json::encode($reportModel->report->adv_sel_fields);
     $viewer->assign("SEL_FIELDS", $sel_fields);
     if (isset($_REQUEST["reload"])) {
         $criteria_groups = $reportModel->report->getRequestCriteria($sel_fields);
     } else {
         $criteria_groups = $reportModel->report->advft_criteria;
     }
     $viewer->assign("CRITERIA_GROUPS", $criteria_groups);
     $viewer->assign("EMPTY_CRITERIA_GROUPS", empty($criteria_groups));
     $viewer->assign("SUMMARIES_CRITERIA", $reportModel->report->summaries_criteria);
     $FILTER_OPTION = getAdvCriteriaHTML();
     $viewer->assign("FOPTION", $FILTER_OPTION);
     $COLUMNS_BLOCK_JSON = $reportModel->report->getAdvanceFilterOptionsJSON($primary_module);
     $viewer->assign("COLUMNS_BLOCK", $COLUMNS_BLOCK);
     if ($mode != "ajax") {
         //echo "<div class='none' style='display:none;' id='filter_columns'>" . $COLUMNS_BLOCK_JSON . "</div>";
         //echo "<input type='hidden' name='filter_columns' id='filter_columns' value='".$COLUMNS_BLOCK_JSON."' />";
         $viewer->assign("filter_columns", $COLUMNS_BLOCK_JSON);
         $sel_fields = Zend_Json::encode($reportModel->report->adv_sel_fields);
         $viewer->assign("SEL_FIELDS", $sel_fields);
         global $default_charset;
         $std_filter_columns = $reportModel->report->getStdFilterColumns();
         $std_filter_columns_js = implode("<%jsstdjs%>", $std_filter_columns);
         $std_filter_columns_js = html_entity_decode($std_filter_columns_js, ENT_QUOTES, $default_charset);
         $viewer->assign("std_filter_columns", $std_filter_columns_js);
         $std_filter_criteria = Zend_Json::encode($reportModel->report->Date_Filter_Values);
         $viewer->assign("std_filter_criteria", $std_filter_criteria);
     }
     $rel_fields = $reportModel->report->adv_rel_fields;
     $rel_fields = Zend_Json::encode($rel_fields);
     $rel_fields = str_replace("'", "\\'", $rel_fields);
     $viewer->assign("REL_FIELDS", $rel_fields);
     // NEW ADVANCE FILTERS END
     $BLOCKJS = $reportModel->getCriteriaJS();
     $viewer->assign("BLOCKJS_STD", $BLOCKJS);
     /*NEWE*/
     return $viewer->view('ReportFilters.tpl', $moduleName, true);
 }
Example #2
0
require_once 'Smarty_setup.php';
require_once "data/Tracker.php";
require_once 'include/logging.php';
require_once 'include/utils/utils.php';
// ITS4YOU-CR SlOl 20.12.2010 R4U singlerow
require_once 'modules/ITS4YouReports/ITS4YouReports.php';
global $app_strings;
global $mod_strings;
$recordid = vtlib_purify($_REQUEST['record']);
$sec_module = array();
$BLOCK1 = "";
$SumOptions = array();
$searchtype = vtlib_purify($_REQUEST["searchtype"]);
if ($searchtype == "secondary") {
    $SumOptions2 = $SumOptionsR = array();
    $SumOptions2 = getSecondaryColumns($SumOptions2, $secondarymodule);
    $reporttype = vtlib_purify($_REQUEST['selectedreporttype']);
    if ($reporttype == 'timeline' || $reporttype == 'grouping') {
        foreach ($ITS4YouReports->relatedmodulesarray as $secondarymodule) {
            $SumOptionsL = sgetColumntoTotalOptions($SumOptions2, $secondarymodule);
            if (!empty($SumOptionsL)) {
                $SumOptionsR = array_merge($SumOptionsR, $SumOptionsL, array());
            }
        }
    } else {
        $SumOptionsR = $SumOptions2;
    }
    foreach ($SumOptionsR as $optgroup2 => $optionsdata2) {
        if ($BLOCK2 != "") {
            $BLOCK2 .= "(|@!@|)";
        }
Example #3
0
 public function getAdvanceFilterOptionsJSON($primarymodule)
 {
     $Options = array();
     $Options_json = "";
     global $default_charset;
     if ($primarymodule != "") {
         $p_options = getPrimaryColumns($Options, $primarymodule, true, $this);
         if (isset($_REQUEST["selectedColumnsStr"]) && $_REQUEST["selectedColumnsStr"] != "") {
             $selectedColumnsStr = vtlib_purify($_REQUEST["selectedColumnsStr"]);
             $selectedColumnsStringDecoded = html_entity_decode($selectedColumnsStr, ENT_QUOTES, $default_charset);
             $selectedColumns_arr = explode("<_@!@_>", $selectedColumnsStringDecoded);
         } else {
             $selectedColumnsStr = $this->reportinformations["selectedColumnsString"];
             $selectedColumnsStringDecoded = html_entity_decode($selectedColumnsStr, ENT_QUOTES, $default_charset);
             $selectedColumns_arr = explode(";", $selectedColumnsStringDecoded);
         }
         if ($selectedColumnsStr != "") {
             $opt_label = vtranslate("LBL_Filter_SelectedColumnsGroup", $this->currentModule);
             foreach ($selectedColumns_arr as $sc_key => $sc_col_str) {
                 if ($sc_col_str != "") {
                     $in_options = false;
                     foreach ($Options as $opt_group => $opt_array) {
                         if ($this->in_multiarray($sc_col_str, $opt_array, "value") === true) {
                             $in_options = true;
                             continue;
                         }
                     }
                     if ($in_options) {
                         continue;
                     } else {
                         list($sc_tablename, $sc_columnname, $sc_modulestr) = explode(':', $sc_col_str);
                         list($sc_module) = explode('_', $sc_modulestr);
                         $sc_module_id = getTabid($sc_module);
                         $sc_tablename = trim(strtolower($sc_tablename), "_mif");
                         $adb = PearDatabase::getInstance();
                         //$adb->setDebug(true);
                         $sc_field_row = $adb->fetchByAssoc($adb->pquery("SELECT uitype FROM vtiger_field WHERE tablename = ? and columnname = ? and tabid=?", array($sc_tablename, $sc_columnname, $sc_module_id)), 0);
                         //$adb->setDebug(false);
                         $sc_field_uitype = $sc_field_row["uitype"];
                         if (in_array($sc_field_uitype, ITS4YouReports::$s_uitypes)) {
                             $this->adv_sel_fields[$sc_col_str] = true;
                         }
                         $Options[$opt_label][] = array("value" => $sc_col_str, "text" => $this->getColumnStr_Label($sc_col_str));
                     }
                 }
             }
         }
         $secondarymodules = array();
         if (!empty($this->related_modules[$primarymodule])) {
             foreach ($this->related_modules[$primarymodule] as $key => $value) {
                 $exploded_mid = explode("x", $value["id"]);
                 if (strtolower($exploded_mid[1]) != "mif") {
                     $secondarymodules[] = $value["id"];
                 }
             }
         }
         if (!empty($secondarymodules)) {
             $secondarymodules_str = implode(":", $secondarymodules);
             $this->getSecModuleColumnsList($secondarymodules_str);
             $Options_sec = getSecondaryColumns(array(), $secondarymodules_str, $this);
             if (!empty($Options_sec)) {
                 foreach ($Options_sec as $moduleid => $sec_options) {
                     $Options = array_merge($Options, $sec_options);
                 }
             }
         }
         foreach ($Options as $optgroup => $optionsdata) {
             if ($Options_json != "") {
                 $Options_json .= "(|@!@|)";
             }
             $Options_json .= $optgroup;
             $Options_json .= "(|@|)";
             $Options_json .= Zend_JSON::encode($optionsdata);
         }
     }
     return $Options_json;
 }
Example #4
0
 function getSecondaryColumns($Options, $module)
 {
     $Options = getSecondaryColumns($Options, $module);
     //        ITS4YouReports::sshow($Options);exit;
     return $Options;
 }
Example #5
0
$BLOCK0 = $BLOCK1 = $BLOCK2 = "";
$SumOptions = array();
$secondarymodule = '';
$secondarymodules = array();
$ITS4YouReports = ITS4YouReports::getStoredITS4YouReport();
if (isset($_REQUEST['primarymodule']) && $_REQUEST['primarymodule'] != "") {
    $primarymodule = vtlib_purify($_REQUEST['primarymodule']);
} else {
    $primarymodule = $ITS4YouReports->primarymodule;
}
$reportid = $ITS4YouReports->record;
$modulename_prefix = "";
if (isset($_REQUEST["selectedmodule"]) && $_REQUEST["selectedmodule"] != "") {
    $modulename = vtlib_purify($_REQUEST["selectedmodule"]);
    $ITS4YouReports->getSecModuleColumnsList($modulename);
    $SumOptions = getSecondaryColumns($SumOptions, $modulename, $ITS4YouReports);
    $SPSumOptions[$modulename] = $SumOptions;
    $module_array["id"] = $modulename;
    $modulename_arr = explode("x", $modulename);
    $modulename_id = $modulename_arr[0];
    if ($modulename_arr[1] != "") {
        $modulename_prefix = $modulename_arr[1];
    }
} else {
    $module_array["module"] = $ITS4YouReports->primarymodule;
    $module_array["id"] = $ITS4YouReports->primarymoduleid;
    $modulename = $module_array["module"];
    $modulename_lbl = getTranslatedString($modulename, $modulename);
    $availModules[$module_array["id"]] = $modulename_lbl;
    $modulename_id = $module_array["id"];
    $SumOptions = getPrimaryColumns($SumOptions, $modulename, true, $ITS4YouReports);