diff --git a/agc_2-X/trunk/www/vicidial/AST_VDADstats.php b/agc_2-X/trunk/www/vicidial/AST_VDADstats.php index df077318..4fa18dc3 100644 --- a/agc_2-X/trunk/www/vicidial/AST_VDADstats.php +++ b/agc_2-X/trunk/www/vicidial/AST_VDADstats.php @@ -1,7 +1,7 @@ LICENSE: AGPLv2 +# Copyright (C) 2022 Matt Florell LICENSE: AGPLv2 # # CHANGES # 60619-1718 - Added variable filtering to eliminate SQL injection attack threat @@ -57,6 +57,7 @@ # 180508-0115 - Added new help display # 190823-1620 - Fixed download archive bug # 191013-0852 - Fixes for PHP7 +# 220301-1641 - Added allow_web_debug system setting # $startMS = microtime(); @@ -107,11 +108,19 @@ if (isset($_GET["report_display_type"])) {$report_display_type=$_GET["report_ if (isset($_GET["search_archived_data"])) {$search_archived_data=$_GET["search_archived_data"];} elseif (isset($_POST["search_archived_data"])) {$search_archived_data=$_POST["search_archived_data"];} +$DB=preg_replace("/[^0-9a-zA-Z]/","",$DB); + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = array();} +if (!isset($list_ids)) {$list_ids = array();} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} if (strlen($shift)<2) {$shift='ALL';} if (strlen($bottom_graph)<2) {$bottom_graph='NO';} if (strlen($carrier_stats)<2) {$carrier_stats='NO';} if (strlen($include_rollover)<2) {$include_rollover='NO';} -$DB=preg_replace("/[^0-9a-zA-Z]/","",$DB); $report_name = 'Outbound Calling Report'; $db_source = 'M'; @@ -124,9 +133,9 @@ $JS_onload="onload = function() {\n"; ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,outbound_autodial_active,slave_db_server,reports_use_slave_db,enable_languages,language_method,ofcom_uk_drop_calc,report_default_format FROM system_settings;"; +$stmt = "SELECT use_non_latin,outbound_autodial_active,slave_db_server,reports_use_slave_db,enable_languages,language_method,ofcom_uk_drop_calc,report_default_format,allow_web_debug FROM system_settings;"; $rslt=mysql_to_mysqli($stmt, $link); -if ($DB) {echo "$stmt\n";} +#if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysqli_num_rows($rslt); if ($qm_conf_ct > 0) { @@ -139,10 +148,44 @@ if ($qm_conf_ct > 0) $SSlanguage_method = $row[5]; $SSofcom_uk_drop_calc = $row[6]; $SSreport_default_format = $row[7]; + $SSallow_web_debug = $row[8]; } +if ($SSallow_web_debug < 1) {$DB=0;} +if (strlen($report_display_type)<2) {$report_display_type = $SSreport_default_format;} ##### END SETTINGS LOOKUP ##### ########################################### -if (strlen($report_display_type)<2) {$report_display_type = $SSreport_default_format;} + +$query_date = preg_replace('/[^- \:\_0-9a-zA-Z]/', '', $query_date); +$end_date = preg_replace('/[^- \:\_0-9a-zA-Z]/', '', $end_date); +$submit = preg_replace('/[^-_0-9a-zA-Z]/', '', $submit); +$SUBMIT = preg_replace('/[^-_0-9a-zA-Z]/', '', $SUBMIT); +$report_display_type = preg_replace('/[^-_0-9a-zA-Z]/', '', $report_display_type); +$file_download = preg_replace('/[^-_0-9a-zA-Z]/', '', $file_download); +$print_calls = preg_replace('/[^-_0-9a-zA-Z]/', '', $print_calls); +$outbound_rate = preg_replace('/[^-_0-9a-zA-Z]/', '', $outbound_rate); +$costformat = preg_replace('/[^-_0-9a-zA-Z]/', '', $costformat); +$include_rollover = preg_replace('/[^-_0-9a-zA-Z]/', '', $include_rollover); +$carrier_stats = preg_replace('/[^-_0-9a-zA-Z]/', '', $carrier_stats); +$bottom_graph = preg_replace('/[^-_0-9a-zA-Z]/', '', $bottom_graph); +$agent_hours = preg_replace('/[^-_0-9a-zA-Z]/', '', $agent_hours); +$search_archived_data = preg_replace('/[^-_0-9a-zA-Z]/', '', $search_archived_data); + +# Variables filtered further down in the code +# $group +# $list_ids + +if ($non_latin < 1) + { + $PHP_AUTH_USER = preg_replace('/[^-_0-9a-zA-Z]/', '', $PHP_AUTH_USER); + $PHP_AUTH_PW = preg_replace('/[^-_0-9a-zA-Z]/', '', $PHP_AUTH_PW); + $shift = preg_replace('/[^-_0-9a-zA-Z]/', '', $shift); + } +else + { + $PHP_AUTH_USER = preg_replace('/[^-_0-9\p{L}]/u', '', $PHP_AUTH_USER); + $PHP_AUTH_PW = preg_replace('/[^-_0-9\p{L}]/u', '', $PHP_AUTH_PW); + $shift = preg_replace('/[^-_0-9\p{L}]/u', '', $shift); + } $DROPANSWERpercent_adjustment=0; if (file_exists('options.php')) @@ -189,18 +232,6 @@ if ($srv_conf_ct > 0) $carrier_logging_active = $row[0]; } -if ($non_latin < 1) - { - $PHP_AUTH_USER = preg_replace('/[^-_0-9a-zA-Z]/', '', $PHP_AUTH_USER); - $PHP_AUTH_PW = preg_replace('/[^-_0-9a-zA-Z]/', '', $PHP_AUTH_PW); - } -else - { - $PHP_AUTH_PW = preg_replace("/'|\"|\\\\|;/","",$PHP_AUTH_PW); - $PHP_AUTH_USER = preg_replace("/'|\"|\\\\|;/","",$PHP_AUTH_USER); - } -# $group = preg_replace("/'|\"|\\\\|;/","",$group); - $stmt="SELECT selected_language from vicidial_users where user='$PHP_AUTH_USER';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_to_mysqli($stmt, $link); @@ -308,7 +339,7 @@ else $webserver_id = mysqli_insert_id($link); } -$stmt="INSERT INTO vicidial_report_log set event_date=NOW(), user='$PHP_AUTH_USER', ip_address='$LOGip', report_name='$report_name', browser='$LOGbrowser', referer='$LOGhttp_referer', notes='$LOGserver_name:$LOGserver_port $LOGscript_name |$group[0], $query_date, $end_date, $shift, $file_download, $report_display_type|', url='$LOGfull_url', webserver='$webserver_id';"; +$stmt="INSERT INTO vicidial_report_log set event_date=NOW(), user='$PHP_AUTH_USER', ip_address='$LOGip', report_name='$report_name', browser='$LOGbrowser', referer='$LOGhttp_referer', notes='$LOGserver_name:$LOGserver_port $LOGscript_name |$query_date, $end_date, $shift, $file_download, $report_display_type|', url='$LOGfull_url', webserver='$webserver_id';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_to_mysqli($stmt, $link); $report_log_id = mysqli_insert_id($link); @@ -344,19 +375,12 @@ if ( (!preg_match("/$report_name/",$LOGallowed_reports)) and (!preg_match("/ALL exit; } -$NOW_DATE = date("Y-m-d"); -$NOW_TIME = date("Y-m-d H:i:s"); -$STARTtime = date("U"); -if (!isset($group)) {$group = array();} -if (!isset($list_ids)) {$list_ids = array();} -if (!isset($query_date)) {$query_date = $NOW_DATE;} -if (!isset($end_date)) {$end_date = $NOW_DATE;} - $i=0; $group_string='|'; $group_ct = count($group); while($i < $group_ct) { + $group[$i] = preg_replace('/[^-_0-9\p{L}]/u', '', $group[$i]); $group_string .= "$group[$i]|"; $i++; } @@ -396,6 +420,7 @@ $group_string='|'; $group_ct = count($group); while($i < $group_ct) { + $group[$i] = preg_replace('/[^-_0-9\p{L}]/u', '', $group[$i]); if ( (preg_match("/ $group[$i] /",$regexLOGallowed_campaigns)) or (preg_match("/-ALL/",$LOGallowed_campaigns)) ) { $group_string .= "$group[$i]|"; @@ -461,6 +486,7 @@ $list_id_string='|'; $list_id_ct = count($list_ids); while($i < $list_id_ct) { + $list_ids[$i] = preg_replace('/[^-_0-9\p{L}]/u', '', $list_ids[$i]); $list_id_string .= "$list_ids[$i]|"; $list_id_SQL .= "'$list_ids[$i]',"; $list_idQS .= "&list_ids[]=$list_ids[$i]"; diff --git a/agc_2-X/trunk/www/vicidial/AST_VICIDIAL_hopperlist.php b/agc_2-X/trunk/www/vicidial/AST_VICIDIAL_hopperlist.php index 0bba0646..269e2154 100644 --- a/agc_2-X/trunk/www/vicidial/AST_VICIDIAL_hopperlist.php +++ b/agc_2-X/trunk/www/vicidial/AST_VICIDIAL_hopperlist.php @@ -1,7 +1,7 @@ LICENSE: AGPLv2 +# Copyright (C) 2022 Matt Florell LICENSE: AGPLv2 # # CHANGES # @@ -29,6 +29,7 @@ # 190716-2119 - Added rank # 201111-1435 - Added Campaign Drop-Run load # 210514-1615 - Added owner to DB=1 output +# 220301-1627 - Added allow_web_debug system setting # $startMS = microtime(); @@ -53,11 +54,19 @@ if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} $DB=preg_replace("/[^0-9a-zA-Z]/","",$DB); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($server_ip)) {$server_ip = '10.10.10.15';} +$isdst = date("I"); + ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,enable_languages,language_method,source_id_display FROM system_settings;"; +$stmt = "SELECT use_non_latin,enable_languages,language_method,source_id_display,allow_web_debug FROM system_settings;"; $rslt=mysql_to_mysqli($stmt, $link); -if ($DB) {echo "$stmt\n";} +#if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysqli_num_rows($rslt); if ($qm_conf_ct > 0) { @@ -66,21 +75,27 @@ if ($qm_conf_ct > 0) $SSenable_languages = $row[1]; $SSlanguage_method = $row[2]; $SSsource_id_display = $row[3]; + $SSallow_web_debug = $row[4]; } +if ($SSallow_web_debug < 1) {$DB=0;} ##### END SETTINGS LOOKUP ##### ########################################### +$submit = preg_replace('/[^-_0-9a-zA-Z]/', '', $submit); +$SUBMIT = preg_replace('/[^-_0-9a-zA-Z]/', '', $SUBMIT); + if ($non_latin < 1) { $PHP_AUTH_USER = preg_replace('/[^-_0-9a-zA-Z]/', '', $PHP_AUTH_USER); $PHP_AUTH_PW = preg_replace('/[^-_0-9a-zA-Z]/', '', $PHP_AUTH_PW); + $group = preg_replace('/[^-_0-9a-zA-Z]/', '', $group); } else { - $PHP_AUTH_PW = preg_replace("/'|\"|\\\\|;/","",$PHP_AUTH_PW); - $PHP_AUTH_USER = preg_replace("/'|\"|\\\\|;/","",$PHP_AUTH_USER); + $PHP_AUTH_USER = preg_replace('/[^-_0-9\p{L}]/u', '', $PHP_AUTH_USER); + $PHP_AUTH_PW = preg_replace('/[^-_0-9\p{L}]/u', '', $PHP_AUTH_PW); + $group = preg_replace('/[^-_0-9\p{L}]/u', '', $group); } -$group = preg_replace("/'|\"|\\\\|;/","",$group); $stmt="SELECT selected_language from vicidial_users where user='$PHP_AUTH_USER';"; if ($DB) {echo "|$stmt|\n";} @@ -216,14 +231,6 @@ $LOGuser_group = $row[1]; $LOGadmin_hide_lead_data = $row[2]; $LOGadmin_hide_phone_data = $row[3]; -$NOW_DATE = date("Y-m-d"); -$NOW_TIME = date("Y-m-d H:i:s"); -$STARTtime = date("U"); -if (!isset($group)) {$group = '';} -if (!isset($query_date)) {$query_date = $NOW_DATE;} -if (!isset($server_ip)) {$server_ip = '10.10.10.15';} -$isdst = date("I"); - ### Grab Server GMT value from the database $SERVER_GMT=-5; $stmt="SELECT local_gmt FROM servers where active='Y' limit 1;"; diff --git a/agc_2-X/trunk/www/vicidial/AST_VICIDIAL_ingrouplist.php b/agc_2-X/trunk/www/vicidial/AST_VICIDIAL_ingrouplist.php index 8c2c69f2..bc27dc98 100644 --- a/agc_2-X/trunk/www/vicidial/AST_VICIDIAL_ingrouplist.php +++ b/agc_2-X/trunk/www/vicidial/AST_VICIDIAL_ingrouplist.php @@ -3,7 +3,7 @@ # # shows the agents logged into vicidial and set to take calls from in-group # -# Copyright (C) 2019 Matt Florell LICENSE: AGPLv2 +# Copyright (C) 2022 Matt Florell LICENSE: AGPLv2 # # CHANGES # 100320-2102 - First Build @@ -16,6 +16,7 @@ # 141230-0045 - Added code for on-the-fly language translations display # 170409-1534 - Added IP List validation code # 190216-0806 - Fix for user-group, in-group and campaign allowed/permissions matching issues +# 220301-1624 - Added allow_web_debug system setting # $startMS = microtime(); @@ -40,11 +41,18 @@ if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} $DB=preg_replace("/[^0-9a-zA-Z]/","",$DB); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($server_ip)) {$server_ip = '10.10.10.15';} + ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,enable_languages,language_method FROM system_settings;"; +$stmt = "SELECT use_non_latin,enable_languages,language_method,allow_web_debug FROM system_settings;"; $rslt=mysql_to_mysqli($stmt, $link); -if ($DB) {echo "$stmt\n";} +#if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysqli_num_rows($rslt); if ($qm_conf_ct > 0) { @@ -52,21 +60,27 @@ if ($qm_conf_ct > 0) $non_latin = $row[0]; $SSenable_languages = $row[1]; $SSlanguage_method = $row[2]; + $SSallow_web_debug = $row[3]; } +if ($SSallow_web_debug < 1) {$DB=0;} ##### END SETTINGS LOOKUP ##### ########################################### +$submit = preg_replace('/[^-_0-9a-zA-Z]/', '', $submit); +$SUBMIT = preg_replace('/[^-_0-9a-zA-Z]/', '', $SUBMIT); + if ($non_latin < 1) { $PHP_AUTH_USER = preg_replace('/[^-_0-9a-zA-Z]/', '', $PHP_AUTH_USER); $PHP_AUTH_PW = preg_replace('/[^-_0-9a-zA-Z]/', '', $PHP_AUTH_PW); + $group = preg_replace('/[^-_0-9a-zA-Z]/', '', $group); } else { - $PHP_AUTH_PW = preg_replace("/'|\"|\\\\|;/","",$PHP_AUTH_PW); - $PHP_AUTH_USER = preg_replace("/'|\"|\\\\|;/","",$PHP_AUTH_USER); + $PHP_AUTH_USER = preg_replace('/[^-_0-9\p{L}]/u', '', $PHP_AUTH_USER); + $PHP_AUTH_PW = preg_replace('/[^-_0-9\p{L}]/u', '', $PHP_AUTH_PW); + $group = preg_replace('/[^-_0-9\p{L}]/u', '', $group); } -$group = preg_replace("/'|\"|\\\\|;/","",$group); $stmt="SELECT selected_language from vicidial_users where user='$PHP_AUTH_USER';"; if ($DB) {echo "|$stmt|\n";} @@ -181,13 +195,6 @@ $rslt=mysql_to_mysqli($stmt, $link); $report_log_id = mysqli_insert_id($link); ##### END log visit to the vicidial_report_log table ##### -$NOW_DATE = date("Y-m-d"); -$NOW_TIME = date("Y-m-d H:i:s"); -$STARTtime = date("U"); -if (!isset($group)) {$group = '';} -if (!isset($query_date)) {$query_date = $NOW_DATE;} -if (!isset($server_ip)) {$server_ip = '10.10.10.15';} - $stmt="select group_id,group_name from vicidial_inbound_groups order by group_id;"; $rslt=mysql_to_mysqli($stmt, $link); if ($DB) {echo "$stmt\n";} diff --git a/agc_2-X/trunk/www/vicidial/AST_inbound_forecasting.php b/agc_2-X/trunk/www/vicidial/AST_inbound_forecasting.php index 6d582010..fc1d124d 100644 --- a/agc_2-X/trunk/www/vicidial/AST_inbound_forecasting.php +++ b/agc_2-X/trunk/www/vicidial/AST_inbound_forecasting.php @@ -1,7 +1,7 @@ , Joe Johnson LICENSE: AGPLv2 +# Copyright (C) 2022 Matt Florell , Joe Johnson LICENSE: AGPLv2 # # CHANGES # @@ -13,6 +13,7 @@ # 180712-1508 - Fix for rare allowed reports issue # 191013-0856 - Fixes for PHP7 # 210823-0948 - Fix for security issue, added NONE option for campaigns +# 220301-2219 - Added allow_web_debug system setting # $startMS = microtime(); @@ -97,9 +98,19 @@ if (isset($_GET["DB"])) {$DB=$_GET["DB"];} if (isset($_GET["report_display_type"])) {$report_display_type=$_GET["report_display_type"];} elseif (isset($_POST["report_display_type"])) {$report_display_type=$_POST["report_display_type"];} -if (strlen($shift)<2) {$shift='ALL';} $DB=preg_replace("/[^0-9a-zA-Z]/","",$DB); +$MT[0]=''; +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = array();} +if (!isset($campaign)) {$campaign = array();} +if (!isset($drop_percent)) {$drop_percent = '3';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} +if (strlen($shift)<2) {$shift='ALL';} + $report_name = 'Inbound Forecasting Report'; $db_source = 'M'; @@ -136,9 +147,9 @@ $JS_onload="onload = function() {\n"; ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,outbound_autodial_active,slave_db_server,reports_use_slave_db,enable_languages,language_method FROM system_settings;"; +$stmt = "SELECT use_non_latin,outbound_autodial_active,slave_db_server,reports_use_slave_db,enable_languages,language_method,allow_web_debug FROM system_settings;"; $rslt=mysql_to_mysqli($stmt, $link); -if ($DB) {$MAIN.="$stmt\n";} +#if ($DB) {$MAIN.="$stmt\n";} $qm_conf_ct = mysqli_num_rows($rslt); if ($qm_conf_ct > 0) { @@ -149,19 +160,42 @@ if ($qm_conf_ct > 0) $reports_use_slave_db = $row[3]; $SSenable_languages = $row[4]; $SSlanguage_method = $row[5]; + $SSallow_web_debug = $row[6]; } +if ($SSallow_web_debug < 1) {$DB=0;} ##### END SETTINGS LOOKUP ##### ########################################### +$query_date = preg_replace('/[^- \:\_0-9a-zA-Z]/', '', $query_date); +$end_date = preg_replace('/[^- \:\_0-9a-zA-Z]/', '', $end_date); +$actual_agents=preg_replace("/[^0-9.]/", "", $actual_agents); +$hourly_pay=preg_replace("/[^0-9.]/", "", $hourly_pay); +$revenue_per_sale=preg_replace("/[^0-9.]/", "", $revenue_per_sale); +$sale_chance=preg_replace("/[^0-9.]/", "", $sale_chance); +$retry_rate=preg_replace("/[^0-9.]/", "", $retry_rate); +$submit = preg_replace('/[^-_0-9a-zA-Z]/', '', $submit); +$SUBMIT = preg_replace('/[^-_0-9a-zA-Z]/', '', $SUBMIT); +$drop_percent = preg_replace('/[^-\.\_0-9a-zA-Z]/', '', $drop_percent); +$erlang_type = preg_replace('/[^-_0-9a-zA-Z]/', '', $erlang_type); +$target_pqueue = preg_replace('/[^-_0-9a-zA-Z]/', '', $target_pqueue); +$file_download = preg_replace('/[^-_0-9a-zA-Z]/', '', $file_download); +$report_display_type = preg_replace('/[^-_0-9a-zA-Z]/', '', $report_display_type); + +# Variables filtered further down in the code +# $campaign +# $group + if ($non_latin < 1) { $PHP_AUTH_USER = preg_replace('/[^-_0-9a-zA-Z]/', '', $PHP_AUTH_USER); $PHP_AUTH_PW = preg_replace('/[^-_0-9a-zA-Z]/', '', $PHP_AUTH_PW); + $shift = preg_replace('/[^-_0-9a-zA-Z]/', '', $shift); } else { - $PHP_AUTH_PW = preg_replace("/'|\"|\\\\|;/","",$PHP_AUTH_PW); - $PHP_AUTH_USER = preg_replace("/'|\"|\\\\|;/","",$PHP_AUTH_USER); + $PHP_AUTH_USER = preg_replace('/[^-_0-9\p{L}]/u', '', $PHP_AUTH_USER); + $PHP_AUTH_PW = preg_replace('/[^-_0-9\p{L}]/u', '', $PHP_AUTH_PW); + $shift = preg_replace('/[^-_0-9\p{L}]/u', '', $shift); } $stmt="SELECT selected_language from vicidial_users where user='$PHP_AUTH_USER';"; @@ -402,34 +436,6 @@ while ($i < $groups_to_print) $groups_selected_str=preg_replace('/, $/', '', $groups_selected_str); $group_name_str=preg_replace('/, $/', '', $group_name_str); -$MT[0]=''; -$NOW_DATE = date("Y-m-d"); -$NOW_TIME = date("Y-m-d H:i:s"); -$STARTtime = date("U"); -if (!isset($group) || !is_array($group)) {$group = array();} -if (!isset($drop_percent)) {$drop_percent = '3';} -if (!isset($campaign) || !is_array($campaign)) {$campaign = array();} -if (!isset($query_date)) {$query_date = $NOW_DATE;} -if (!isset($end_date)) {$end_date = $NOW_DATE;} - -$group=preg_replace('/[^-_0-9\p{L}]/u','',$group); -$campaign=preg_replace('/[^-_0-9\p{L}]/u','',$campaign); -$query_date = preg_replace('/[^-0-9]/','',$query_date); -$end_date = preg_replace('/[^-0-9]/','',$end_date); -$shift=preg_replace('/[^\p{L}]/u', '', $shift); -$erlang_type=preg_replace('/[^\p{L}]/u', '', $erlang_type); -$actual_agents=preg_replace("/[^0-9.]/", "", $actual_agents); -$hourly_pay=preg_replace("/[^0-9.]/", "", $hourly_pay); -$revenue_per_sale=preg_replace("/[^0-9.]/", "", $revenue_per_sale); -$sale_chance=preg_replace("/[^0-9.]/", "", $sale_chance); -$retry_rate=preg_replace("/[^0-9.]/", "", $retry_rate); -$target_pqueue=preg_replace("/[^0-9.]/", "", $target_pqueue); -$DB = preg_replace('/[^0-9]/','',$DB); -$submit=preg_replace('/[^-_0-9\p{L}]/u','',$submit); -$SUBMIT=preg_replace('/[^-_0-9\p{L}]/u','',$SUBMIT); -$file_download = preg_replace('/[^0-9]/','',$file_download); -$report_display_type=preg_replace('/[^_\p{L}]/u','',$report_display_type); - $drop_percent=preg_replace("/[^\.0-9]/", "", $drop_percent); if ($drop_percent>100) {$drop_percent=100;} $drop_rate=$drop_percent/100; @@ -440,10 +446,11 @@ $group_string='|'; $group_ct = count($group); while($i < $group_ct) { + $group[$i] = preg_replace('/[^-_0-9\p{L}]/u', '', $group[$i]); if (in_array("--ALL--", $group)) { $group_string = "--ALL--"; - $group_SQL .= "'$campaign[$i]',"; + $group_SQL .= "'$group[$i]',"; $groupQS = "&group[]=--ALL--"; } if ( (strlen($group[$i]) > 0) and (preg_match("/\|$group[$i]\|/",$groups_string)) ) @@ -469,6 +476,7 @@ $campaign_string='|'; $campaign_ct = count($campaign); while($i < $campaign_ct) { + $campaign[$i] = preg_replace('/[^-_0-9\p{L}]/u', '', $campaign[$i]); if (in_array("--ALL--", $campaign)) { $campaign_string = "--ALL--"; diff --git a/agc_2-X/trunk/www/vicidial/AST_team_performance_detail.php b/agc_2-X/trunk/www/vicidial/AST_team_performance_detail.php index 35590a6e..9908bfd3 100644 --- a/agc_2-X/trunk/www/vicidial/AST_team_performance_detail.php +++ b/agc_2-X/trunk/www/vicidial/AST_team_performance_detail.php @@ -6,7 +6,7 @@ # QC statuses of QCFAIL, QCCANC and sales are defined by the Sale=Y status # flags being set on those statuses. # -# Copyright (C) 2021 Joe Johnson, Matt Florell LICENSE: AGPLv2 +# Copyright (C) 2022 Joe Johnson, Matt Florell LICENSE: AGPLv2 # # CHANGES # @@ -35,6 +35,7 @@ # 191013-0825 - Fixes for PHP7 # 200917-1720 - Modified for sale counts to be campaign-specific # 210222-1508 - Added option to show all users +# 220301-2155 - Added allow_web_debug system setting # $startMS = microtime(); @@ -70,11 +71,23 @@ if (isset($_GET["report_display_type"])) {$report_display_type=$_GET["report_d elseif (isset($_POST["report_display_type"])) {$report_display_type=$_POST["report_display_type"];} if (isset($_GET["search_archived_data"])) {$search_archived_data=$_GET["search_archived_data"];} elseif (isset($_POST["search_archived_data"])) {$search_archived_data=$_POST["search_archived_data"];} -if (isset($_GET["show_all_users"])) {$show_all_users=$_GET["show_all_users"];} +if (isset($_GET["show_all_users"])) {$show_all_users=$_GET["show_all_users"];} elseif (isset($_POST["show_all_users"])) {$show_all_users=$_POST["show_all_users"];} $DB=preg_replace("/[^0-9a-zA-Z]/","",$DB); +$MT[0]=''; +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = array();} +if (!isset($user_group)) {$user_group = array();} +if (!isset($call_statuses)) {$call_statuses = array();} +if (!isset($query_date_D)) {$query_date_D=$NOW_DATE;} +if (!isset($end_date_D)) {$end_date_D=$NOW_DATE;} +if (!isset($query_date_T)) {$query_date_T="00:00:00";} +if (!isset($end_date_T)) {$end_date_T="23:59:59";} + $report_name = 'Team Performance Detail'; $db_source = 'M'; $JS_text.="