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); }
$primarymodule = $ITS4YouReports->primarymodule; $reportid = $ITS4YouReports->record; if (!empty($ITS4YouReports->related_modules[$primarymodule])) { foreach ($ITS4YouReports->related_modules[$primarymodule] as $key => $value) { if (isset($_REQUEST["secondarymodule_" . $value])) { $secondarymodules[] = $_REQUEST["secondarymodule_" . $value]; } } } $secondarymodule_arr = $ITS4YouReports->getReportRelatedModules($ITS4YouReports->primarymoduleid); foreach ($secondarymodule_arr as $key => $relmodule) { $a_secondarymodule[] = $relmodule['id']; } $secondarymodule = implode(":", $a_secondarymodule); $ITS4YouReports->getSecModuleColumnsList($secondarymodule); $SumOptions = getPrimaryColumns($SumOptions, $primarymodule, true); $reporttype = vtlib_purify($_REQUEST['selectedreporttype']); if ($reporttype == 'timeline' || $reporttype == 'grouping') { $SumOptions = sgetColumntoTotalOptions($SumOptions, $primarymodule, array()); } } $search_for = vtlib_purify(trim($_REQUEST["search_for"])); if (isset($search_for) && $search_for != "") { foreach ($SumOptions as $block_name => $fields) { $fi = 0; foreach ($fields as $key => $field_array) { $pos = strpos(strtolower($field_array["text"]), strtolower($search_for)); if ($pos === false) { // show("The string '$search_for' was not found in the string '".$field_array["text"]."'"); } else { $new_SumOptions[$block_name][$fi] = $field_array;
} if ($step == "getStdFilter") { $Options = array(); $secondarymodule = ''; $secondarymodules = array(); $ITS4YouReports = ITS4YouReports::getStoredITS4YouReport(); if (isset($_REQUEST["record"]) && $_REQUEST['record'] != '') { $reportid = $_REQUEST['record']; $primarymodule = $ITS4YouReports->primarymoduleid; $primarymodulename = $ITS4YouReports->primarymodule; $ITS4YouReports->getPriModuleColumnsList($primarymodule); } else { $primarymodule = $ITS4YouReports->primarymoduleid; $primarymodulename = $ITS4YouReports->primarymodule; $ITS4YouReports->getPriModuleColumnsList($ITS4YouReports->primarymodule); $Options = getPrimaryColumns($Options, $ITS4YouReports->primarymodule); } if (!empty($ITS4YouReports->related_modules[$primarymodulename])) { foreach ($ITS4YouReports->related_modules[$primarymodulename] as $key => $value) { if (in_array(getTabid($value), $ITS4YouReports->secondarymodules)) { $secondarymodules[] = $value; $secondarymoduleids[] = getTabid($value); } } } $ITS4YouReports->getSecModuleColumnsList($ITS4YouReports->relatedmodulesstring); $Options = getPrimaryStdFilter($ITS4YouReports->primarymodule, $ITS4YouReports); if (!empty($ITS4YouReports->related_modules[$ITS4YouReports->primarymodule])) { foreach ($ITS4YouReports->related_modules[$ITS4YouReports->primarymodule] as $key => $value) { // $Options = getSecondaryStdFilter($value["id"],$Options); $Options = getSecondaryStdFilter($value, $Options);
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; }
$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); $SPSumOptions[$module_array["id"]][$module_array["id"]] = $SumOptions; } $reporttype = vtlib_purify($_REQUEST['selectedreporttype']); $step5_result = ""; if (!isset($_REQUEST["selectedmodule"])) { $secondarymodule_arr = $ITS4YouReports->getReportRelatedModules($module_array["id"]); $ITS4YouReports->getSecModuleColumnsList($secondarymodule); $available_modules[] = array("id" => $ITS4YouReports->primarymoduleid, "name" => $modulename_lbl, "checked" => "checked"); foreach ($secondarymodule_arr as $key => $value) { $available_modules[] = array("id" => $value["id"], "name" => $value["name"], "checked" => ""); } $AV_M = Zend_JSON::encode($available_modules); $step5_result .= $AV_M . "(!A#V_M@M_M#A!)"; } /*$SumOptions2 = getSecondaryColumns($SumOptions2,$secondarymodule,$ITS4YouReports);