/**
  * Function to prepare the clause from the session filter
  * @public
  */
 function prepare_list_subselection($form_action)
 {
     $processed = $this->getProcessed();
     if ($form_action == "list" && $this->FG_FILTER_SEARCH_FORM) {
         if (isset($processed['cancelsearch']) && $processed['cancelsearch'] == true) {
             $_SESSION[$this->FG_FILTER_SEARCH_SESSION_NAME] = '';
         }
         // RETRIEVE THE CONTENT OF THE SEARCH SESSION AND
         if (strlen($_SESSION[$this->FG_FILTER_SEARCH_SESSION_NAME]) > 5 && $processed['posted_search'] != 1) {
             $element_arr = preg_split("/\\|/", $_SESSION[$this->FG_FILTER_SEARCH_SESSION_NAME]);
             foreach ($element_arr as $val_element_arr) {
                 $pos = strpos($val_element_arr, '=');
                 if ($pos !== false) {
                     $entity_name = substr($val_element_arr, 0, $pos);
                     $entity_value = substr($val_element_arr, $pos + 1);
                     $this->_processed[$entity_name] = $entity_value;
                 }
             }
         }
         if ($processed['posted_search'] != 1 && isset($_SESSION[$this->FG_FILTER_SEARCH_SESSION_NAME]) && strlen($_SESSION[$this->FG_FILTER_SEARCH_SESSION_NAME]) > 10) {
             $arr_session_var = preg_split("/\\|/", $_SESSION[$this->FG_FILTER_SEARCH_SESSION_NAME]);
             foreach ($arr_session_var as $arr_val) {
                 list($namevar, $valuevar) = preg_split("/=/", $arr_val);
                 $this->_processed[$namevar] = $valuevar;
                 $processed[$namevar] = $valuevar;
                 $_POST[$namevar] = $valuevar;
             }
             $processed['posted_search'] = 1;
         }
         // Search Form On
         if ($processed['posted_search'] == 1) {
             $this->_processed[fromstatsday_sday] = normalize_day_of_month($processed[fromstatsday_sday], $processed[fromstatsmonth_sday], 1);
             $this->_processed[tostatsday_sday] = normalize_day_of_month($processed[tostatsday_sday], $processed[tostatsmonth_sday], 1);
             $this->_processed[fromstatsday_sday_bis] = normalize_day_of_month($processed[fromstatsday_sday_bis], $processed[fromstatsmonth_sday_bis], 1);
             $this->_processed[tostatsday_sday_bis] = normalize_day_of_month($processed[tostatsday_sday_bis], $processed[tostatsmonth_sday_bis], 1);
             $SQLcmd = '';
             $search_parameters = "Period={$processed['Period']}|frommonth={$processed['frommonth']}|fromstatsmonth={$processed['fromstatsmonth']}|tomonth={$processed['tomonth']}";
             $search_parameters .= "|tostatsmonth={$processed['tostatsmonth']}|fromday={$processed['fromday']}|fromstatsday_sday={$processed['fromstatsday_sday']}";
             $search_parameters .= "|fromstatsmonth_sday={$processed['fromstatsmonth_sday']}|today={$processed['today']}|tostatsday_sday={$processed['tostatsday_sday']}";
             $search_parameters .= "|tostatsmonth_sday={$processed['tostatsmonth_sday']}";
             $search_parameters .= "|Period_bis={$processed['Period_bis']}|frommonth_bis={$processed['frommonth_bis']}|fromstatsmonth_bis={$processed['fromstatsmonth_bis']}|tomonth_bis={$processed['tomonth_bis']}";
             $search_parameters .= "|tostatsmonth_bis={$processed['tostatsmonth_bis']}|fromday_bis={$processed['fromday_bis']}|fromstatsday_sday_bis={$processed['fromstatsday_sday_bis']}";
             $search_parameters .= "|fromstatsmonth_sday_bis={$processed['fromstatsmonth_sday_bis']}|today_bis={$processed['today_bis']}|tostatsday_sday_bis={$processed['tostatsday_sday_bis']}";
             $search_parameters .= "|tostatsmonth_sday_bis={$processed['tostatsmonth_sday_bis']}";
             foreach ($this->FG_FILTER_SEARCH_FORM_1C as $r) {
                 $search_parameters .= "|{$r['1']}=" . $processed[$r[1]] . "|{$r['2']}=" . $processed[$r[2]];
                 $SQLcmd = $this->do_field($SQLcmd, $r[1], 0, $processed);
             }
             foreach ($this->FG_FILTER_SEARCH_FORM_2C as $r) {
                 $search_parameters .= "|{$r['1']}=" . $processed[$r[1]] . "|{$r['2']}=" . $processed[$r[2]];
                 $search_parameters .= "|{$r['3']}=" . $processed[$r[3]] . "|{$r['4']}=" . $processed[$r[4]];
                 $SQLcmd = $this->do_field_duration($SQLcmd, $r[1], $r[5]);
                 $SQLcmd = $this->do_field_duration($SQLcmd, $r[3], $r[5]);
             }
             foreach ($this->FG_FILTER_SEARCH_FORM_SELECT as $r) {
                 $search_parameters .= "|{$r['2']}=" . $processed[$r[2]];
                 $SQLcmd = $this->do_field($SQLcmd, $r[2], 1, null, $r[4]);
             }
             $_SESSION[$this->FG_FILTER_SEARCH_SESSION_NAME] = $search_parameters;
             $date_clause = '';
             if ($processed[fromday] && isset($processed[fromstatsday_sday]) && isset($processed[fromstatsmonth_sday])) {
                 $date_clause .= " AND " . $this->FG_FILTER_SEARCH_1_TIME_FIELD . " >= TIMESTAMP('{$processed['fromstatsmonth_sday']}-{$processed['fromstatsday_sday']}')";
             }
             if ($processed[today] && isset($processed[tostatsday_sday]) && isset($processed[tostatsmonth_sday])) {
                 $date_clause .= " AND " . $this->FG_FILTER_SEARCH_1_TIME_FIELD . " <= TIMESTAMP('{$processed['tostatsmonth_sday']}-" . sprintf("%02d", intval($processed[tostatsday_sday])) . " 23:59:59')";
             }
             if ($processed[Period] == "month_older_rad") {
                 $from_month = $processed[month_earlier];
                 $date_clause .= " AND DATE_SUB(NOW(),INTERVAL {$from_month} MONTH) > " . $this->FG_FILTER_SEARCH_3_TIME_FIELD . "";
             }
             //BIS FIELD
             if ($processed[fromday_bis] && isset($processed[fromstatsday_sday_bis]) && isset($processed[fromstatsmonth_sday_bis])) {
                 $date_clause .= " AND " . $this->FG_FILTER_SEARCH_1_TIME_FIELD_BIS . " >= TIMESTAMP('{$processed['fromstatsmonth_sday_bis']}-{$processed['fromstatsday_sday_bis']}')";
             }
             if ($processed[today_bis] && isset($processed[tostatsday_sday_bis]) && isset($processed[tostatsmonth_sday_bis])) {
                 $date_clause .= " AND " . $this->FG_FILTER_SEARCH_1_TIME_FIELD_BIS . " <= TIMESTAMP('{$processed['tostatsmonth_sday_bis']}-" . sprintf("%02d", intval($processed[tostatsday_sday_bis])) . " 23:59:59')";
             }
             if ($processed[Period_bis] == "month_older_rad") {
                 $from_month = $processed[month_earlier_bis];
                 $date_clause .= " AND DATE_SUB(NOW(),INTERVAL {$from_month} MONTH) > " . $this->FG_FILTER_SEARCH_3_TIME_FIELD_BIS . "";
             }
             if (strpos($SQLcmd, 'WHERE') > 0) {
                 if (strlen($this->FG_TABLE_CLAUSE) > 0) {
                     $this->FG_TABLE_CLAUSE .= " AND ";
                 }
                 $this->FG_TABLE_CLAUSE .= substr($SQLcmd, 6) . $date_clause;
             } elseif (strpos($date_clause, 'AND') > 0) {
                 if (strlen($this->FG_TABLE_CLAUSE) > 0) {
                     $this->FG_TABLE_CLAUSE .= " AND ";
                 }
                 $this->FG_TABLE_CLAUSE .= substr($date_clause, 5);
             }
         }
     }
 }
示例#2
0
	'lst_time',
	'group_id',
	'report_type'
));

//     Initialization of variables	///////////////////////////////

$condition = "";
$QUERY = '';
$from_to = '';
$bool = false;

//     Generating WHERE CLAUSE		///////////////////////////////

normalize_day_of_month($fromstatsday_sday, $fromstatsmonth_sday, 1);
normalize_day_of_month($tostatsday_sday, $tostatsmonth_sday, 1);
if ($Period == "Time" && $lst_time != "") {
	if (strlen($condition) > 0)
		$condition .= " AND ";
	if (DB_TYPE == "postgres") {
		switch ($lst_time) {
			case 1 :
				$condition .= "CURRENT_TIMESTAMP - interval '1 hour' <= cdr.starttime";
				break;
			case 2 :
				$condition .= "CURRENT_TIMESTAMP - interval '6 hours' <= cdr.starttime";
				break;
			case 3 :
				$condition .= "CURRENT_TIMESTAMP - interval '1 day' <= cdr.starttime";
				break;
			case 4 :