LICENSE: AGPLv2 # # CHANGES: # 210309-1645 - First build # 220224-0836 - Added allow_web_debug system setting # header ("Content-type: text/html; charset=utf-8"); require("dbconnect_mysqli.php"); require("functions.php"); if ( file_exists("/etc/mysql_enc.conf") ) { $DBCagc = file("/etc/mysql_enc.conf"); foreach ($DBCagc as $DBCline) { $DBCline = preg_replace("/ |>|\n|\r|\t|\#.*|;.*/","",$DBCline); if (ereg("^enckey", $DBCline)) {$enckey = $DBCline; $enckey = preg_replace("/.*=/","",$enckey);} } } $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; $QUERY_STRING = getenv("QUERY_STRING"); $PHP_SELF=$_SERVER['PHP_SELF']; $PHP_SELF = preg_replace('/\.php.*/i','.php',$PHP_SELF); if (isset($_GET["DB"])) {$DB=$_GET["DB"];} elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} if (isset($_GET["modify_date"])) {$modify_date=$_GET["modify_date"];} elseif (isset($_POST["modify_date"])) {$modify_date=$_POST["modify_date"];} if (isset($_GET["claim_rec"])) {$claim_rec=$_GET["claim_rec"];} elseif (isset($_POST["claim_rec"])) {$claim_rec=$_POST["claim_rec"];} if (isset($_GET["recording_id"])) {$recording_id=$_GET["recording_id"];} elseif (isset($_POST["recording_id"])) {$recording_id=$_POST["recording_id"];} if (isset($_GET["qc_action"])) {$qc_action=$_GET["qc_action"];} elseif (isset($_POST["qc_action"])) {$qc_action=$_POST["qc_action"];} if (isset($_GET["mgr_override"])) {$mgr_override=$_GET["mgr_override"];} elseif (isset($_POST["mgr_override"])) {$mgr_override=$_POST["mgr_override"];} if (isset($_GET["scorecard_id"])) {$scorecard_id=$_GET["scorecard_id"];} elseif (isset($_POST["scorecard_id"])) {$scorecard_id=$_POST["scorecard_id"];} if (isset($_GET["qc_row_id"])) {$qc_row_id=$_GET["qc_row_id"];} elseif (isset($_POST["qc_row_id"])) {$qc_row_id=$_POST["qc_row_id"];} if (isset($_GET["qc_log_id"])) {$qc_log_id=$_GET["qc_log_id"];} elseif (isset($_POST["qc_log_id"])) {$qc_log_id=$_POST["qc_log_id"];} if (isset($_GET["qc_status"])) {$qc_status=$_GET["qc_status"];} elseif (isset($_POST["qc_status"])) {$qc_status=$_POST["qc_status"];} if (isset($_GET["qc_agent_comments"])) {$qc_agent_comments=$_GET["qc_agent_comments"];} elseif (isset($_POST["qc_agent_comments"])) {$qc_agent_comments=$_POST["qc_agent_comments"];} if (isset($_GET["qc_manager_comments"])) {$qc_manager_comments=$_GET["qc_manager_comments"];} elseif (isset($_POST["qc_manager_comments"])) {$qc_manager_comments=$_POST["qc_manager_comments"];} if (isset($_GET["field_name"])) {$field_name=$_GET["field_name"];} elseif (isset($_POST["field_name"])) {$field_name=$_POST["field_name"];} if (isset($_GET["field_value"])) {$field_value=$_GET["field_value"];} elseif (isset($_POST["field_value"])) {$field_value=$_POST["field_value"];} if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} if (isset($_GET["callback_id"])) {$callback_id=$_GET["callback_id"];} elseif (isset($_POST["callback_id"])) {$callback_id=$_POST["callback_id"];} if (isset($_GET["recipient"])) {$recipient=$_GET["recipient"];} elseif (isset($_POST["recipient"])) {$recipient=$_POST["recipient"];} if (isset($_GET["CBuser"])) {$CBuser=$_GET["CBuser"];} elseif (isset($_POST["CBuser"])) {$CBuser=$_POST["CBuser"];} if (isset($_GET["callback_time"])) {$callback_time=$_GET["callback_time"];} elseif (isset($_POST["callback_time"])) {$callback_time=$_POST["callback_time"];} if (isset($_GET["callback_comments"])) {$callback_comments=$_GET["callback_comments"];} elseif (isset($_POST["callback_comments"])) {$callback_comments=$_POST["callback_comments"];} if (isset($_GET["qc_checkpoint_log_id"])) {$qc_checkpoint_log_id=$_GET["qc_checkpoint_log_id"];} elseif (isset($_POST["qc_checkpoint_log_id"])) {$qc_checkpoint_log_id=$_POST["qc_checkpoint_log_id"];} if (isset($_GET["qc_level"])) {$qc_level=$_GET["qc_level"];} elseif (isset($_POST["qc_level"])) {$qc_level=$_POST["qc_level"];} if (isset($_GET["checkpoint_rank"])) {$checkpoint_rank=$_GET["checkpoint_rank"];} elseif (isset($_POST["checkpoint_rank"])) {$checkpoint_rank=$_POST["checkpoint_rank"];} if (isset($_GET["checkpoint_points"])) {$checkpoint_points=$_GET["checkpoint_points"];} elseif (isset($_POST["checkpoint_points"])) {$checkpoint_points=$_POST["checkpoint_points"];} if (isset($_GET["checkpoint_points_earned"])) {$checkpoint_points_earned=$_GET["checkpoint_points_earned"];} elseif (isset($_POST["checkpoint_points_earned"])) {$checkpoint_points_earned=$_POST["checkpoint_points_earned"];} if (isset($_GET["new_checkpoint_points"])) {$new_checkpoint_points=$_GET["new_checkpoint_points"];} elseif (isset($_POST["new_checkpoint_points"])) {$new_checkpoint_points=$_POST["new_checkpoint_points"];} if (isset($_GET["checkpoint_points_failed"])) {$checkpoint_points_failed=$_GET["checkpoint_points_failed"];} elseif (isset($_POST["checkpoint_points_failed"])) {$checkpoint_points_failed=$_POST["checkpoint_points_failed"];} if (isset($_GET["old_checkpoint_rank"])) {$old_checkpoint_rank=$_GET["old_checkpoint_rank"];} elseif (isset($_POST["old_checkpoint_rank"])) {$old_checkpoint_rank=$_POST["old_checkpoint_rank"];} if (isset($_GET["new_checkpoint_rank"])) {$new_checkpoint_rank=$_GET["new_checkpoint_rank"];} elseif (isset($_POST["new_checkpoint_rank"])) {$new_checkpoint_rank=$_POST["new_checkpoint_rank"];} if (isset($_GET["new_active"])) {$new_active=$_GET["new_active"];} elseif (isset($_POST["new_active"])) {$new_active=$_POST["new_active"];} if (isset($_GET["new_commission_loss"])) {$new_commission_loss=$_GET["new_commission_loss"];} elseif (isset($_POST["new_commission_loss"])) {$new_commission_loss=$_POST["new_commission_loss"];} if (isset($_GET["new_instant_fail"])) {$new_instant_fail=$_GET["new_instant_fail"];} elseif (isset($_POST["new_instant_fail"])) {$new_instant_fail=$_POST["new_instant_fail"];} if (isset($_GET["new_admin_notes"])) {$new_admin_notes=$_GET["new_admin_notes"];} elseif (isset($_POST["new_admin_notes"])) {$new_admin_notes=$_POST["new_admin_notes"];} if (isset($_GET["new_checkpoint_text"])) {$new_checkpoint_text=$_GET["new_checkpoint_text"];} elseif (isset($_POST["new_checkpoint_text"])) {$new_checkpoint_text=$_POST["new_checkpoint_text"];} if (isset($_GET["new_checkpoint_text_presets"])) {$new_checkpoint_text_presets=$_GET["new_checkpoint_text_presets"];} elseif (isset($_POST["new_checkpoint_text_presets"])) {$new_checkpoint_text_presets=$_POST["new_checkpoint_text_presets"];} if (isset($_GET["checkpoint_row_id"])) {$checkpoint_row_id=$_GET["checkpoint_row_id"];} elseif (isset($_POST["checkpoint_row_id"])) {$checkpoint_row_id=$_POST["checkpoint_row_id"];} if (isset($_GET["checkpoint_comment_agent"])) {$checkpoint_comment_agent=$_GET["checkpoint_comment_agent"];} elseif (isset($_POST["checkpoint_comment_agent"])) {$checkpoint_comment_agent=$_POST["checkpoint_comment_agent"];} if (isset($_GET["checkpoint_answer"])) {$checkpoint_answer=$_GET["checkpoint_answer"];} elseif (isset($_POST["checkpoint_answer"])) {$checkpoint_answer=$_POST["checkpoint_answer"];} if (isset($_GET["instant_fail"])) {$instant_fail=$_GET["instant_fail"];} elseif (isset($_POST["instant_fail"])) {$instant_fail=$_POST["instant_fail"];} if (isset($_GET["instant_fail_value"])) {$instant_fail_value=$_GET["instant_fail_value"];} elseif (isset($_POST["instant_fail_value"])) {$instant_fail_value=$_POST["instant_fail_value"];} if (isset($_GET["admin_notes"])) {$admin_notes=$_GET["admin_notes"];} elseif (isset($_POST["admin_notes"])) {$admin_notes=$_POST["admin_notes"];} if (isset($_GET["commission_loss"])) {$commission_loss=$_GET["commission_loss"];} elseif (isset($_POST["commission_loss"])) {$commission_loss=$_POST["commission_loss"];} if (isset($_GET["parameter"])) {$parameter=$_GET["parameter"];} elseif (isset($_POST["parameter"])) {$parameter=$_POST["parameter"];} if (isset($_GET["parameter_value"])) {$parameter_value=$_GET["parameter_value"];} elseif (isset($_POST["parameter_value"])) {$parameter_value=$_POST["parameter_value"];} if (isset($_GET["recording_timestamp"])) {$recording_timestamp=$_GET["recording_timestamp"];} elseif (isset($_POST["recording_timestamp"])) {$recording_timestamp=$_POST["recording_timestamp"];} if (isset($_POST["upd_customer"])) {$upd_customer=$_POST["upd_customer"];} elseif (isset($_GET["upd_customer"])) {$upd_customer=$_GET["upd_customer"];} if (isset($_POST["view_epoch"])) {$view_epoch=$_POST["view_epoch"];} elseif (isset($_GET["view_epoch"])) {$view_epoch=$_GET["view_epoch"];} $DB=preg_replace("/[^0-9a-zA-Z]/","",$DB); $defaultappointment = date("Y-m-d"); $NOW_TIME = date("Y-m-d H:i:s"); $STARTtime = date("U"); ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin,auto_dial_limit,user_territories_active,allow_custom_dialplan,callcard_enabled,admin_modify_refresh,nocache_admin,webroot_writable,admin_screen_colors,qc_features_active,allow_web_debug FROM system_settings;"; $rslt=mysql_to_mysqli($stmt, $link); #if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysqli_num_rows($rslt); if ($qm_conf_ct > 0) { $row=mysqli_fetch_row($rslt); $non_latin = $row[0]; $SSauto_dial_limit = $row[1]; $SSuser_territories_active = $row[2]; $SSallow_custom_dialplan = $row[3]; $SScallcard_enabled = $row[4]; $SSadmin_modify_refresh = $row[5]; $SSnocache_admin = $row[6]; $SSwebroot_writable = $row[7]; $SSadmin_screen_colors = $row[8]; $SSqc_features_active = $row[9]; # slightly increase limit value, because PHP somehow thinks 2.8 > 2.8 $SSauto_dial_limit = ($SSauto_dial_limit + 0.001); $SSallow_web_debug = $row[10]; } if ($SSallow_web_debug < 1) {$DB=0;} ##### END SETTINGS LOOKUP ##### ########################################### $lead_id = preg_replace('/[^0-9]/', '', $lead_id); $end_date = preg_replace('/[^- \:\_0-9a-zA-Z]/', '', $end_date); $modify_date = preg_replace('/[^- \:\_0-9a-zA-Z]/', '', $modify_date); $recording_id = preg_replace('/[^-_0-9a-zA-Z]/', '', $recording_id); $qc_action = preg_replace('/[^-_0-9a-zA-Z]/', '', $qc_action); $claim_rec = preg_replace('/[^-_0-9a-zA-Z]/', '', $claim_rec); $mgr_override = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$mgr_override); $scorecard_id = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$scorecard_id); $qc_row_id = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$qc_row_id); $qc_log_id = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$qc_log_id); $qc_status = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$qc_status); $qc_agent_comments = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$qc_agent_comments); $qc_manager_comments = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$qc_manager_comments); $field_name = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$field_name); $field_value = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$field_value); $callback_id = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$callback_id); $recipient = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$recipient); $CBuser = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$CBuser); $callback_time = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$callback_time); $callback_comments = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$callback_comments); $qc_checkpoint_log_id = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$qc_checkpoint_log_id); $qc_level = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$qc_level); $checkpoint_rank = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$checkpoint_rank); $checkpoint_points = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$checkpoint_points); $checkpoint_points_earned = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$checkpoint_points_earned); $new_checkpoint_points = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$new_checkpoint_points); $checkpoint_points_failed = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$checkpoint_points_failed); $old_checkpoint_rank = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$old_checkpoint_rank); $new_checkpoint_rank = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$new_checkpoint_rank); $new_active = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$new_active); $new_commission_loss = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$new_commission_loss); $new_instant_fail = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$new_instant_fail); $new_checkpoint_text = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$new_checkpoint_text); $new_checkpoint_text_presets = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$new_checkpoint_text_presets); $checkpoint_row_id = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$checkpoint_row_id); $checkpoint_comment_agent = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$checkpoint_comment_agent); $checkpoint_answer = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$checkpoint_answer); $instant_fail = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$instant_fail); $instant_fail_value = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$instant_fail_value); $commission_loss = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$commission_loss); $parameter = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$parameter); $parameter_value = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$parameter_value); $recording_timestamp = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$recording_timestamp); $upd_customer = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$upd_customer); $view_epoch = preg_replace("/\<|\>|\'|\"|\\\\|;/",'-',$view_epoch); $new_admin_notes = preg_replace("/\<|\>|\"|\\\\|;/",'-',$new_admin_notes); $admin_notes = preg_replace("/\<|\>|\"|\\\\|;/",'-',$admin_notes); 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_USER = preg_replace('/[^-_0-9\p{L}]/u', '', $PHP_AUTH_USER); $PHP_AUTH_PW = preg_replace('/[^-_0-9\p{L}]/u', '', $PHP_AUTH_PW); } $rights_stmt = "SELECT modify_leads,qc_enabled,full_name,modify_leads,user_group,selected_language from vicidial_users where user='$PHP_AUTH_USER';"; if ($DB) {echo "|$stmt|\n";} $rights_rslt=mysql_to_mysqli($rights_stmt, $link); $rights_row=mysqli_fetch_row($rights_rslt); $modify_leads = $rights_row[0]; $qc_enabled = $rights_row[1]; $LOGfullname = $rights_row[2]; $LOGmodify_leads = $rights_row[3]; $LOGuser_group = $rights_row[4]; $VUselected_language = $rights_row[5]; if ($qc_log_id) { $queue_stmt="select * from quality_control_queue where qc_log_id='$qc_log_id'"; $queue_rslt=mysql_to_mysqli($queue_stmt, $link); $queue_row=mysqli_fetch_array($queue_rslt); $queue_user=$queue_row["user"]; $queue_user_group=$queue_row["user_group"]; $queue_list_id=$queue_row["list_id"]; $queue_campaign_id=$queue_row["campaign_id"]; $queue_lead_id=$queue_row["lead_id"]; $queue_qc_user_group=$queue_row["qc_user_group"]; } $auth=0; $auth_message = user_authorization($PHP_AUTH_USER,$PHP_AUTH_PW,'QC',1,0); if ($auth_message == 'GOOD') {$auth=1;} if ($auth < 1) { $VDdisplayMESSAGE = _QXZ("Login incorrect, please try again"); if ($auth_message == 'LOCK') { $VDdisplayMESSAGE = _QXZ("Too many login attempts, try again in 15 minutes"); Header ("Content-type: text/html; charset=utf-8"); echo "$VDdisplayMESSAGE: |$PHP_AUTH_USER|$auth_message|\n"; exit; } if ($auth_message == 'IPBLOCK') { $VDdisplayMESSAGE = _QXZ("Your IP Address is not allowed") . ": $ip"; Header ("Content-type: text/html; charset=utf-8"); echo "$VDdisplayMESSAGE: |$PHP_AUTH_USER|$auth_message|\n"; exit; } Header("WWW-Authenticate: Basic realm=\"CONTACT-CENTER-ADMIN\""); Header("HTTP/1.0 401 Unauthorized"); echo "$VDdisplayMESSAGE: |$PHP_AUTH_USER|$PHP_AUTH_PW|$auth_message|\n"; exit; } if ( $qc_enabled < 1 ) { header ("Content-type: text/html; charset=utf-8"); echo _QXZ("QC is not enabled for your user account")."\n"; exit; } $SSmenu_background='015B91'; $SSframe_background='D9E6FE'; $SSstd_row1_background='9BB9FB'; $SSstd_row2_background='B9CBFD'; $SSstd_row3_background='8EBCFD'; $SSstd_row4_background='B6D3FC'; $SSstd_row5_background='A3C3D6'; $SSalt_row1_background='BDFFBD'; $SSalt_row2_background='99FF99'; $SSalt_row3_background='CCFFCC'; if ($SSadmin_screen_colors != 'default') { $stmt = "SELECT menu_background,frame_background,std_row1_background,std_row2_background,std_row3_background,std_row4_background,std_row5_background,alt_row1_background,alt_row2_background,alt_row3_background,web_logo FROM vicidial_screen_colors where colors_id='$SSadmin_screen_colors';"; $rslt=mysql_to_mysqli($stmt, $link); if ($DB) {echo "$stmt\n";} $colors_ct = mysqli_num_rows($rslt); if ($colors_ct > 0) { $row=mysqli_fetch_row($rslt); $SSmenu_background = $row[0]; $SSframe_background = $row[1]; $SSstd_row1_background = $row[2]; $SSstd_row2_background = $row[3]; $SSstd_row3_background = $row[4]; $SSstd_row4_background = $row[5]; $SSstd_row5_background = $row[6]; $SSalt_row1_background = $row[7]; $SSalt_row2_background = $row[8]; $SSalt_row3_background = $row[9]; $SSweb_logo = $row[10]; } } $Mhead_color = $SSstd_row5_background; $Mmain_bgcolor = $SSmenu_background; $Mhead_color = $SSstd_row5_background; $NWB = "\"HELP\""; if ($qc_checkpoint_log_id && $qc_action=="upd_customer") { $upd_stmt="update quality_control_checkpoint_log set checkpoint_comment_agent='".mysqli_escape_string($link, $checkpoint_comment_agent)."', instant_fail_value='".mysqli_escape_string($link, $instant_fail_value)."', checkpoint_points_earned='".mysqli_escape_string($link, $checkpoint_points_earned)."' where qc_checkpoint_log_id='$qc_checkpoint_log_id'"; $upd_rslt=mysqli_query($link, $upd_stmt); #echo mysqli_affected_rows($link); if ($DB) {echo "|$upd_stmt|\n";} if (mysqli_affected_rows($link)>0) { # Check if there's not already a log record for this visit... $stmt="select count(*) From vicidial_qc_agent_log where lead_id='$queue_lead_id' and view_epoch='$view_epoch' and details='Scorecard modified'"; $rslt=mysql_to_mysqli($stmt, $link); $row=mysqli_fetch_row($rslt); if ($row[0]==0) { $elapsed_seconds=$STARTtime-$view_epoch; $stmt="INSERT INTO vicidial_qc_agent_log (qc_user,qc_user_group,qc_user_ip,lead_user,web_server_ip,view_datetime,view_epoch,save_epoch,elapsed_seconds,lead_id,list_id,campaign_id,processed,details) values('" . mysqli_real_escape_string($link, $PHP_AUTH_USER) . "','$LOGuser_group','".$_SERVER['REMOTE_ADDR']."','$lead_user','".$_SERVER['SERVER_ADDR']."','$NOW_TIME','$view_epoch','$STARTtime','$elapsed_seconds','" . mysqli_real_escape_string($link, $queue_lead_id) . "','" . mysqli_real_escape_string($link, $queue_list_id) . "','" . mysqli_real_escape_string($link, $queue_campaign_id) . "','N','Scorecard modified')"; $rslt=mysql_to_mysqli($stmt, $link); } } } if ($qc_action=="check_lead_status" && $modify_date && $lead_id) { $stmt="select * From vicidial_list where lead_id='$lead_id' and modify_date>'$modify_date' limit 1"; $rslt=mysql_to_mysqli($stmt, $link); $rslt_str=mysqli_num_rows($rslt)."\n"; while ($row=mysqli_fetch_array($rslt)) { $rslt_str.="$row[modify_date]|"; $rslt_str.="$row[status]|"; $rslt_str.="$row[vendor_lead_code]|"; $rslt_str.="$row[user]|"; $rslt_str.="$row[called_count]|"; $rslt_str.="$row[title]|"; $rslt_str.="$row[first_name]|"; $rslt_str.="$row[middle_initial]|"; $rslt_str.="$row[last_name]|"; $rslt_str.="$row[address1]|"; $rslt_str.="$row[address2]|"; $rslt_str.="$row[address3]|"; $rslt_str.="$row[city]|"; $rslt_str.="$row[state]|"; $rslt_str.="$row[postal_code]|"; $rslt_str.="$row[province]|"; $rslt_str.="$row[country_code]|"; $rslt_str.="$row[phone_number]|"; $rslt_str.="$row[phone_code]|"; $rslt_str.="$row[alt_phone]|"; $rslt_str.="$row[email]|"; $rslt_str.="$row[security_phrase]|"; $rslt_str.="$row[rank]|"; $rslt_str.="$row[owner]|"; $rslt_str.="$row[comments]|"; } echo $rslt_str; } /* if ($qc_action=="log_responses" && $qc_checkpoint_log_id && ($checkpoint_answer || $recording_timestamp)) { $recording_timestamp=preg_replace("/[^0-9\:]/", "", $recording_timestamp); $upd_stmt="update quality_control_checkpoint_log set checkpoint_answer='$checkpoint_answer', recording_timestamp='".mysqli_escape_string($link, $recording_timestamp)."' where qc_checkpoint_log_id='$qc_checkpoint_log_id' limit 1"; if ($DB) {echo "|$upd_stmt|\n";} $upd_rslt=mysqli_query($link, $upd_stmt); echo mysqli_affected_rows($link); if ($instant_fail=="Y" && $checkpoint_answer=="N") { # $allq_stmt="select distinct qc_row_id from quality_control_checkpoint_log where qc_checkpoint_log_id='$qc_checkpoint_log_id'"; # $allq_rslt=mysqli_query($link, $allq_stmt); # while ($allq_row=mysqli_fetch_row($allq_rslt)) { # $qc_row_id=$allq_row[0]; # $upd_stmt="update quality_control_checkpoint_log set checkpoint_points_failed=checkpoint_points_max where qc_row_id='$qc_row_id'"; # $upd_rslt=mysqli_query($link, $upd_stmt); # } } } */ if ($qc_action=="update_vl_field" && $lead_id && $field_name) { $old_data_stmt="select $field_name from vicidial_list where lead_id='" . mysqli_real_escape_string($link, $lead_id) . "'"; $old_data_rslt=mysql_to_mysqli($old_data_stmt, $link); $od_row=mysqli_fetch_row($old_data_rslt); $old_value=$od_row[0]; $stmt="UPDATE vicidial_list set $field_name='" . mysqli_real_escape_string($link, $field_value) . "' where lead_id='" . mysqli_real_escape_string($link, $lead_id) . "' limit 1"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_to_mysqli($stmt, $link); if (mysqli_affected_rows($link)>0) { $details="----$field_name----\n" . mysqli_real_escape_string($link, $old_value) . " => " . mysqli_real_escape_string($link, $field_value) . "\n"; $elapsed_seconds=$STARTtime-$view_epoch; $upd_stmt="UPDATE vicidial_qc_agent_log set details=if(details is null, '$details', CONCAT(details, '$details')), save_datetime='$NOW_TIME', save_epoch='$STARTtime', elapsed_seconds='$elapsed_seconds' where view_epoch='$view_epoch' and lead_id='$lead_id' and qc_log_id='$qc_log_id'"; echo $upd_stmt."\n"; $upd_rslt=mysql_to_mysqli($upd_stmt, $link); } } if ($qc_action=="update_callback") { # $DB=1; if ($callback_id && ($recipient || $CBuser || $callback_time)) { $update_cb_SQL=""; if ($recipient) {$update_cb_SQL.="recipient='$recipient', ";} if ($CBuser) {$update_cb_SQL.="user='$CBuser', ";} if ($callback_time) {$update_cb_SQL.="callback_time='$callback_time', ";} if ($callback_comments) {$update_cb_SQL.="comments='" . mysqli_real_escape_string($link, $callback_comments) . "', ";} $update_cb_SQL=preg_replace('/, $/', "", $update_cb_SQL); if (strlen($update_cb_SQL)==0) {echo "0"; exit;} $update_cb_stmt="UPDATE vicidial_callbacks set $update_cb_SQL where callback_id='" . mysqli_real_escape_string($link, $callback_id) . "'"; if ($DB) {echo "|$update_cb_stmt|\n";} $update_cb_rslt=mysql_to_mysqli($update_cb_stmt, $link); echo mysqli_affected_rows($link); if (mysqli_affected_rows($link)>0) { $elapsed_seconds=$STARTtime-$view_epoch; $details=preg_replace('/[\"\']/', "", $update_cb_SQL); $details=preg_replace('/,\s?/', "\n", $details); $stmt="INSERT INTO vicidial_qc_agent_log (qc_user,qc_user_group,qc_user_ip,lead_user,web_server_ip,view_datetime,view_epoch,save_datetime,save_epoch,elapsed_seconds,lead_id,list_id,campaign_id,processed,details) values('" . mysqli_real_escape_string($link, $PHP_AUTH_USER) . "','$LOGuser_group','".$_SERVER['REMOTE_ADDR']."','$queue_user','".$_SERVER['SERVER_ADDR']."','$NOW_TIME','$view_epoch','$NOW_TIME','$STARTtime','$elapsed_seconds','" . mysqli_real_escape_string($link, $queue_lead_id) . "','" . mysqli_real_escape_string($link, $queue_list_id) . "','" . mysqli_real_escape_string($link, $queue_campaign_id) . "','N','---updated callback---\n" . mysqli_real_escape_string($link, $details) . "')"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_to_mysqli($stmt, $link); # QC_log(); } } else { echo "0"; } } if ($qc_action=="update_lead_information" && $lead_id) { $stmt="UPDATE vicidial_list set status='" . mysqli_real_escape_string($link, $status) . "',title='" . mysqli_real_escape_string($link, $title) . "',first_name='" . mysqli_real_escape_string($link, $first_name) . "',middle_initial='" . mysqli_real_escape_string($link, $middle_initial) . "',last_name='" . mysqli_real_escape_string($link, $last_name) . "',address1='" . mysqli_real_escape_string($link, $address1) . "',address2='" . mysqli_real_escape_string($link, $address2) . "',address3='" . mysqli_real_escape_string($link, $address3) . "',city='" . mysqli_real_escape_string($link, $city) . "',state='" . mysqli_real_escape_string($link, $state) . "',province='" . mysqli_real_escape_string($link, $province) . "',postal_code='" . mysqli_real_escape_string($link, $postal_code) . "',country_code='" . mysqli_real_escape_string($link, $country_code) . "',alt_phone='" . mysqli_real_escape_string($link, $alt_phone) . "',phone_number='$phone_number',phone_code='$phone_code',email='" . mysqli_real_escape_string($link, $email) . "',security_phrase='" . mysqli_real_escape_string($link, $security) . "',comments='" . mysqli_real_escape_string($link, $comments) . "',rank='" . mysqli_real_escape_string($link, $rank) . "',owner='" . mysqli_real_escape_string($link, $owner) . "' where lead_id='" . mysqli_real_escape_string($link, $lead_id) . "'"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_to_mysqli($stmt, $link); } if ($qc_action=="save_comments" && $qc_checkpoint_log_id && $checkpoint_comment_agent && $qc_level) { if ($qc_level=="agent") { $column="checkpoint_comment_agent"; } else { $column="checkpoint_comment_manager"; } $upd_stmt="update quality_control_checkpoint_log set $column='$checkpoint_comment_agent' where qc_checkpoint_log_id='$qc_checkpoint_log_id' limit 1"; if ($DB) {echo "|$upd_stmt|\n";} $upd_rslt=mysqli_query($link, $upd_stmt); echo mysqli_affected_rows($link); } if ($scorecard_id && $qc_action=="add_checkpoint" && $new_checkpoint_rank && ($new_checkpoint_text || $new_checkpoint_text_presets) && $new_active) { $upd_stmt="update quality_control_checkpoints set checkpoint_rank=checkpoint_rank+1, modify_user='$PHP_AUTH_USER' where qc_scorecard_id='$scorecard_id' and checkpoint_rank>=$new_checkpoint_rank"; $upd_rslt=mysqli_query($link, $upd_stmt); $ins_stmt="insert into quality_control_checkpoints(qc_scorecard_id, checkpoint_rank, checkpoint_text, checkpoint_text_presets, checkpoint_points, active, instant_fail, admin_notes, create_date, create_user) VALUES('".mysqli_real_escape_string($link, $scorecard_id)."', '".mysqli_real_escape_string($link, $new_checkpoint_rank)."', '".mysqli_real_escape_string($link, $new_checkpoint_text)."', '".mysqli_real_escape_string($link, $new_checkpoint_text_presets)."', '".mysqli_real_escape_string($link, $new_checkpoint_points)."', '".mysqli_real_escape_string($link, $new_active)."', '".mysqli_real_escape_string($link, $new_instant_fail)."', '".mysqli_real_escape_string($link, $new_admin_notes)."', now(), '".mysqli_real_escape_string($link, $PHP_AUTH_USER)."')"; echo $ins_stmt; $ins_rslt=mysqli_query($link, $ins_stmt); if (mysqli_affected_rows($link)>0) { $upd_stmt2="update quality_control_scorecards set last_modified=now() where qc_scorecard_id='$scorecard_id'"; $upd_rslt2=mysqli_query($link, $upd_stmt2); } } if ($scorecard_id && $qc_action=="update_scorecard" && $parameter) { $upd_stmt="update quality_control_scorecards set $parameter='".mysqli_real_escape_string($link, $parameter_value)."' where qc_scorecard_id='$scorecard_id'"; $upd_rslt=mysqli_query($link, $upd_stmt); if (mysqli_affected_rows($link)>0) { $upd_stmt2="update quality_control_scorecards set last_modified=now() where qc_scorecard_id='$scorecard_id'"; $upd_rslt2=mysqli_query($link, $upd_stmt2); } } if ($scorecard_id && $qc_action=="update_checkpoint" && $checkpoint_row_id && $parameter) { if ($parameter && $parameter_value && $parameter!="checkpoint_rank") { $upd_stmt="update quality_control_checkpoints set $parameter='".mysqli_real_escape_string($link, $parameter_value)."', modify_user='$PHP_AUTH_USER' where qc_scorecard_id='$scorecard_id' and checkpoint_row_id='$checkpoint_row_id'"; $upd_rslt=mysqli_query($link, $upd_stmt); if (mysqli_affected_rows($link)>0) { $upd_stmt2="update quality_control_scorecards set last_modified=now() where qc_scorecard_id='$scorecard_id'"; $upd_rslt2=mysqli_query($link, $upd_stmt2); } } else if ($parameter=="checkpoint_rank" && $new_checkpoint_rank && $old_checkpoint_rank) { $upd_stmt="update quality_control_checkpoints set checkpoint_rank='$new_checkpoint_rank', modify_user='$PHP_AUTH_USER' where qc_scorecard_id='$scorecard_id' and checkpoint_row_id='$checkpoint_row_id'"; $upd_rslt=mysqli_query($link, $upd_stmt); if (mysqli_affected_rows($link)>0) { $upd_stmt2="update quality_control_scorecards set last_modified=now() where qc_scorecard_id='$scorecard_id'"; $upd_rslt2=mysqli_query($link, $upd_stmt2); if ($new_checkpoint_rank>$old_checkpoint_rank) { $upd_stmt2="update quality_control_checkpoints set checkpoint_rank=checkpoint_rank-1, modify_user='$PHP_AUTH_USER' where qc_scorecard_id='$scorecard_id' and checkpoint_rank>$old_checkpoint_rank and checkpoint_rank<=$new_checkpoint_rank and checkpoint_row_id!='$checkpoint_row_id'"; } else { $upd_stmt2="update quality_control_checkpoints set checkpoint_rank=checkpoint_rank+1, modify_user='$PHP_AUTH_USER' where qc_scorecard_id='$scorecard_id' and checkpoint_rank>=$new_checkpoint_rank and checkpoint_rank<$old_checkpoint_rank and checkpoint_row_id!='$checkpoint_row_id'"; } $upd_rslt2=mysqli_query($link, $upd_stmt2); } } } if ($scorecard_id && $qc_action=="delete_checkpoint" && $checkpoint_rank && $checkpoint_row_id) { $delete_stmt="delete from quality_control_checkpoints where qc_scorecard_id='$scorecard_id' and checkpoint_row_id='$checkpoint_row_id'"; $delete_rslt=mysqli_query($link, $delete_stmt); if (mysqli_affected_rows($link)>0) { $upd_stmt="update quality_control_checkpoints set checkpoint_rank=checkpoint_rank-1, modify_user='$PHP_AUTH_USER' where qc_scorecard_id='$scorecard_id' and checkpoint_rank>$checkpoint_rank"; $upd_rslt=mysqli_query($link, $upd_stmt); $upd_stmt2="update quality_control_scorecards set last_modified=now() where qc_scorecard_id='$scorecard_id'"; $upd_rslt2=mysqli_query($link, $upd_stmt2); } } if ($qc_action=="new_scorecard") { echo "
\n"; echo "\n"; echo "\t\n"; echo "\t\n"; echo "\n"; echo "\n"; echo "\t\n"; echo "\t\n"; echo "\n"; echo "\n"; echo "\t\n"; echo "\t\n"; echo "\n"; echo "\n"; echo "\t\n"; echo "\t\n"; echo "\n"; echo "\t\n"; echo "\t\n"; echo "\n"; echo "
"._QXZ("ADD NEW SCORECARD")."
"._QXZ("Scorecard ID").":$NWB#qc_scorecards-new_scorecard_id$NWE
"._QXZ("Scorecard name").":$NWB#qc_scorecards-new_scorecard_name$NWE
"._QXZ("Active").":$NWB#qc_scorecards-new_active$NWE
\n"; echo "
\n"; } if ($scorecard_id && $qc_action=="load_checkpoints") { $new_qstmt="select if(max(checkpoint_rank) is not null, max(checkpoint_rank)+1, 1) from quality_control_checkpoints where qc_scorecard_id='$scorecard_id'"; $new_qrslt=mysqli_query($link, $new_qstmt); $qrow=mysqli_fetch_row($new_qrslt); $next_rank=$qrow[0]; $stmt="select * from quality_control_scorecards where qc_scorecard_id='$scorecard_id'"; $rslt=mysql_to_mysqli($stmt, $link); $row=mysqli_fetch_array($rslt); $scorecard_name=$row["scorecard_name"]; $passing_score=$row["passing_score"]; echo "\n"; $stmt="select * from quality_control_checkpoints where qc_scorecard_id='$scorecard_id' order by checkpoint_rank"; $rslt=mysqli_query($link, $stmt); if (mysqli_num_rows($rslt)>0) { echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; $i++; if ($i%2==0) {$bgcolor=$SSstd_row1_background;} else {$bgcolor=$SSstd_row2_background;} echo "\n"; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; # echo ""; echo ""; echo ""; $max_score=0; while ($row=mysqli_fetch_array($rslt)) { echo ""; echo ""; echo ""; echo "\n"; echo "\n"; echo "\n"; echo ""; echo "\n"; # echo ""; echo ""; echo ""; } echo ""; } else { echo "\n"; echo ""; echo ""; echo ""; } echo "\n"; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; #echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo "\n"; echo "\n"; echo ""; echo ""; echo "\n"; # echo ""; echo ""; echo ""; echo "
"._QXZ("MODIFY QC SCORECARD")." $scorecard_id $NWB#qc_scorecards-modify$NWE
"._QXZ("NAME").":
"._QXZ("Order")."$NWB#qc_scorecards-order$NWE"._QXZ("Active")."$NWB#qc_scorecards-active_checkpoint$NWE"._QXZ("Checkpoint Text")."$NWB#qc_scorecards-checkpoint_text$NWE"._QXZ("Preset comments")."$NWB#qc_scorecards-preset_comments$NWE"._QXZ("Points")."$NWB#qc_scorecards-points$NWE"._QXZ("Instant Fail")."$NWB#qc_scorecards-instant_fail$NWE"._QXZ("Admin Notes")."$NWB#qc_scorecards-admin_notes$NWECommission Loss 
\n"; echo "\n"; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; # echo ""; # echo "
"._QXZ("PASSING SCORE").":/ $max_score 
** "._QXZ("CURRENTLY NO CHECKPOINTS FOR SCORECARD")." $scorecard_id **
"._QXZ("NAME").":
 
"._QXZ("ADD NEW CHECKPOINT FOR SCORECARD")." $scorecard_id
"._QXZ("Order")."$NWB#qc_scorecards-order$NWE"._QXZ("Active")."$NWB#qc_scorecards-active_checkpoint$NWE"._QXZ("Checkpoint Text")."$NWB#qc_scorecards-checkpoint_text$NWE"._QXZ("Preset comments")."$NWB#qc_scorecards-preset_comments$NWE"._QXZ("Points")."$NWB#qc_scorecards-points$NWE"._QXZ("Instant Fail")."$NWB#qc_scorecards-instant_fail$NWE"._QXZ("Admin Notes")."$NWB#qc_scorecards-admin_notes$NWECommission loss 
"; echo "\n"; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; # echo ""; # echo "
\n"; } if ($qc_action=="reload_scorecard_display") { echo "\n"; echo "\t\n"; echo "\t\t\n"; echo "\t\t\n"; echo "\t\t\n"; echo "\t\t\n"; echo "\t\t\n"; echo "\t\t\n"; echo "\t\t\n"; echo "\t\t\n"; echo "\t\t\n"; echo "\t\t\n"; echo "\t\n"; # \n"; echo "\t\t\t\n"; $qstmt="select count(*), sum(checkpoint_points) from quality_control_checkpoints where qc_scorecard_id='$row[qc_scorecard_id]'"; $qrslt=mysql_to_mysqli($qstmt, $link); $qrow=mysqli_fetch_row($qrslt); $checkpoints=$qrow[0]; ($checkpoints==0 ? $score_total="--" : $score_total=$qrow[1]); echo "\t\t\t\n"; echo "\t\t\t\n"; $qstmt="select count(*) from vicidial_campaigns where qc_scorecard_id='$row[qc_scorecard_id]'"; $qrslt=mysql_to_mysqli($qstmt, $link); $qrow=mysqli_fetch_row($qrslt); $campaigns_in_use=$qrow[0]; echo "\t\t\t\n"; $qstmt="select count(*) from vicidial_inbound_groups where qc_scorecard_id='$row[qc_scorecard_id]'"; $qrslt=mysql_to_mysqli($qstmt, $link); $qrow=mysqli_fetch_row($qrslt); $ingroups_in_use=$qrow[0]; echo "\t\t\t\n"; $qstmt="select count(*) from vicidial_lists where qc_scorecard_id='$row[qc_scorecard_id]'"; $qrslt=mysql_to_mysqli($qstmt, $link); $qrow=mysqli_fetch_row($qrslt); $lists_in_use=$qrow[0]; echo "\t\t\t\n"; echo "\t\t\t\n"; echo "\t\t\t\n"; echo "\t\t\t\n"; echo "\t\t\t\n"; echo ""; } echo "\t\n"; echo "\t\t\n"; echo "
"._QXZ("Scorecard").""._QXZ("Checkpoints").""._QXZ("Pass/max score").""._QXZ("Campaigns").""._QXZ("In-groups").""._QXZ("Lists").""._QXZ("Last modified").""._QXZ("Active")."  
$row[qc_scorecard_id] - $row[scorecard_name]$checkpoints$row[passing_score] / $score_total$campaigns_in_use$ingroups_in_use$lists_in_use$row[last_modified]
\n"; echo "\t
\n"; } # QC_log($PHP_AUTH_USER, $queue_qc_user_group, $_SERVER['REMOTE_ADDR'], $queue_user, $_SERVER['SERVER_ADDR'], $queue_lead_id, $queue_list_id, $queue_campaign_id, $details); function QC_log($qc_user, $queue_user, $queue_lead_id, $queue_list_id, $details) { global $link, $qc_row_id, $NOW_TIME, $view_epoch; $stmt="INSERT INTO vicidial_qc_agent_log (qc_user,qc_user_group,qc_user_ip,lead_user,web_server_ip,view_datetime,view_epoch,lead_id,list_id,campaign_id,processed,details) values('" . mysqli_real_escape_string($link, $PHP_AUTH_USER) . "','$LOGuser_group','".$_SERVER['REMOTE_ADDR']."','$lead_user','".$_SERVER['SERVER_ADDR']."','$NOW_TIME','$view_epoch','" . mysqli_real_escape_string($link, $queue_lead_id) . "','" . mysqli_real_escape_string($link, $queue_list_id) . "','" . mysqli_real_escape_string($link, $queue_campaign_id) . "','N','$details')"; $rslt=mysql_to_mysqli($stmt, $link); }