コード例 #1
0
ファイル: EditView.php プロジェクト: cin-system/cinrepo
 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);
 }
コード例 #2
0
ファイル: searchColumns.php プロジェクト: cin-system/cinrepo
    $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;
コード例 #3
0
ファイル: ChangeSteps.php プロジェクト: cin-system/cinrepo
}
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);
コード例 #4
0
ファイル: ITS4YouReports.php プロジェクト: cin-system/cinrepo
 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;
 }
コード例 #5
0
    $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);