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); }
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 .= "(|@!@|)"; }
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; }
function getSecondaryColumns($Options, $module) { $Options = getSecondaryColumns($Options, $module); // ITS4YouReports::sshow($Options);exit; return $Options; }
$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);