Added pause code manager approval option, requires a manager to approve a

specific flagged pause code before the agent is allowed to use it in their agent screen.
Added switch lead log entry display to modify lead admin page

git-svn-id: svn://192.168.202.10@2963 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2018-04-11 17:18:42 +00:00
parent 4b0ab3d7b3
commit 2ef52550a1
10 changed files with 508 additions and 31 deletions
+5
View File
@@ -293,6 +293,11 @@ OTHER CHANGES:
78. Added update_did Non-Agent API function
79. Added pause code manager approval option, requires a manager to approve a
specific flagged pause code before the agent is allowed to use it in
their agent screen. Manager approves by entering their login credentials
into a window on the agent's screen.
+52 -1
View File
@@ -20,7 +20,7 @@
# Based on perl scripts in ViciDial from Matt Florell and post:
# http://www.vicidial.org/VICIDIALforum/viewtopic.php?p=22506&sid=ca5347cffa6f6382f56ce3db9fb3d068#22506
#
# Copyright (C) 2017 I. Taushanov, Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
# Copyright (C) 2018 I. Taushanov, Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
#
# CHANGES
# 90615-1701 - First version
@@ -52,6 +52,7 @@
# 170817-1318 - Added rolling of vicidial_inbound_survey_log
# 170825-2243 - Added rolling of vicidial_xfer_log
# 171026-0105 - Added --wipe-closer-log flag
# 180410-1728 - Added vicidial_agent_function_log archiving
#
$CALC_TEST=0;
@@ -2199,6 +2200,56 @@ if (!$T)
}
##### vicidial_agent_function_log
$stmtA = "SELECT count(*) from vicidial_agent_function_log;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows=$sthA->rows;
if ($sthArows > 0)
{
@aryA = $sthA->fetchrow_array;
$vicidial_agent_function_log_count = $aryA[0];
}
$sthA->finish();
$stmtA = "SELECT count(*) from vicidial_agent_function_log_archive;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows=$sthA->rows;
if ($sthArows > 0)
{
@aryA = $sthA->fetchrow_array;
$vicidial_agent_function_log_archive_count = $aryA[0];
}
$sthA->finish();
if (!$Q) {print "\nProcessing vicidial_agent_function_log table... ($vicidial_agent_function_log_count|$vicidial_agent_function_log_archive_count)\n";}
$stmtA = "INSERT IGNORE INTO vicidial_agent_function_log_archive SELECT * from vicidial_agent_function_log;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows = $sthA->rows;
if (!$Q) {print "$sthArows rows inserted into vicidial_agent_function_log_archive table \n";}
$rv = $sthA->err();
if (!$rv)
{
$stmtA = "DELETE FROM vicidial_agent_function_log WHERE event_time < '$del_time';";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows = $sthA->rows;
if (!$Q) {print "$sthArows rows deleted from vicidial_agent_function_log table \n";}
$stmtA = "optimize table vicidial_agent_function_log;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$stmtA = "optimize table vicidial_agent_function_log_archive;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
}
##### vicidial_outbound_ivr_log
$stmtA = "SELECT count(*) from vicidial_outbound_ivr_log;";
+27 -2
View File
@@ -665,7 +665,8 @@ modify_auto_reports ENUM('1','0') default '0',
modify_ip_lists ENUM('1','0') default '0',
ignore_ip_list ENUM('1','0') default '0',
ready_max_logout MEDIUMINT(7) default '-1',
export_gdpr_leads ENUM('0','1','2') default '0'
export_gdpr_leads ENUM('0','1','2') default '0',
pause_code_approval ENUM('1','0') default '0'
) ENGINE=MyISAM;
CREATE UNIQUE INDEX user ON vicidial_users (user);
@@ -1579,6 +1580,7 @@ pause_code_name VARCHAR(30),
billable ENUM('NO','YES','HALF') default 'NO',
campaign_id VARCHAR(8),
time_limit SMALLINT(5) UNSIGNED default '65000',
require_mgr_approval ENUM('NO','YES') default 'NO',
index (campaign_id)
) ENGINE=MyISAM;
@@ -3904,6 +3906,26 @@ cid_group_type ENUM('AREACODE','STATE') default 'AREACODE',
user_group VARCHAR(20) default '---ALL---'
) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE TABLE vicidial_agent_function_log (
agent_function_log_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
agent_log_id INT(9) UNSIGNED,
user VARCHAR(20),
function VARCHAR(20),
event_time DATETIME,
lead_id INT(9) UNSIGNED,
campaign_id VARCHAR(8),
user_group VARCHAR(20),
caller_code VARCHAR(30) default '',
comments VARCHAR(40) default '',
stage VARCHAR(40) default '',
uniqueid VARCHAR(20) default '',
index (event_time),
index (caller_code),
index (user),
index (lead_id),
index (stage)
) ENGINE=MyISAM;
ALTER TABLE vicidial_email_list MODIFY message text character set utf8;
@@ -4112,6 +4134,9 @@ CREATE UNIQUE INDEX visla_key on vicidial_inbound_survey_log_archive(uniqueid, c
CREATE TABLE vicidial_inbound_callback_queue_archive LIKE vicidial_inbound_callback_queue;
ALTER TABLE vicidial_inbound_callback_queue_archive MODIFY icbq_id INT(9) UNSIGNED NOT NULL;
CREATE TABLE vicidial_agent_function_log_archive LIKE vicidial_agent_function_log;
ALTER TABLE vicidial_agent_function_log_archive MODIFY agent_function_log_id INT(9) UNSIGNED NOT NULL;
GRANT RELOAD ON *.* TO cron@'%';
GRANT RELOAD ON *.* TO cron@localhost;
@@ -4188,4 +4213,4 @@ INSERT INTO vicidial_settings_containers(container_id,container_notes,container_
UPDATE system_settings set vdc_agent_api_active='1';
UPDATE system_settings SET db_schema_version='1540',db_schema_update_date=NOW(),reload_timestamp=NOW();
UPDATE system_settings SET db_schema_version='1541',db_schema_update_date=NOW(),reload_timestamp=NOW();
+29
View File
@@ -585,3 +585,32 @@ UPDATE system_settings SET db_schema_version='1539',db_schema_update_date=NOW()
ALTER TABLE system_settings ADD source_id_display ENUM('0','1') default '0';
UPDATE system_settings SET db_schema_version='1540',db_schema_update_date=NOW() where db_schema_version < 1540;
ALTER TABLE vicidial_pause_codes ADD require_mgr_approval ENUM('NO','YES') default 'NO';
ALTER TABLE vicidial_users ADD pause_code_approval ENUM('1','0') default '0';
CREATE TABLE vicidial_agent_function_log (
agent_function_log_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
agent_log_id INT(9) UNSIGNED,
user VARCHAR(20),
function VARCHAR(20),
event_time DATETIME,
lead_id INT(9) UNSIGNED,
campaign_id VARCHAR(8),
user_group VARCHAR(20),
caller_code VARCHAR(30) default '',
comments VARCHAR(40) default '',
stage VARCHAR(40) default '',
uniqueid VARCHAR(20) default '',
index (event_time),
index (caller_code),
index (user),
index (lead_id),
index (stage)
) ENGINE=MyISAM;
CREATE TABLE vicidial_agent_function_log_archive LIKE vicidial_agent_function_log;
ALTER TABLE vicidial_agent_function_log_archive MODIFY agent_function_log_id INT(9) UNSIGNED NOT NULL;
UPDATE system_settings SET db_schema_version='1541',db_schema_update_date=NOW() where db_schema_version < 1541;
+78 -4
View File
@@ -451,13 +451,14 @@
# 180214-1553 - Added CID Group functionality
# 180216-1350 - Fix for callback alt dial isssue #1066
# 180228-0726 - Fix for LogiNCamPaigns function, removed unnecesary onfocus trigger, issue #1074
# 180410-1630 - Added Pause Code manager approval feature, Added switch_lead logging
#
$version = '2.14-345';
$build = '180228-0726';
$version = '2.14-346';
$build = '180410-1630';
$php_script = 'vdc_db_query.php';
$mel=1; # Mysql Error Log enabled = 1
$mysql_log_count=709;
$mysql_log_count=712;
$one_mysql_log=0;
$DB=0;
$VD_login=0;
@@ -737,6 +738,12 @@ if (isset($_GET["last_VDRP_stage"])) {$last_VDRP_stage=$_GET["last_VDRP_stage"];
elseif (isset($_POST["last_VDRP_stage"])) {$last_VDRP_stage=$_POST["last_VDRP_stage"];}
if (isset($_GET["url_link"])) {$url_link=$_GET["url_link"];}
elseif (isset($_POST["url_link"])) {$url_link=$_POST["url_link"];}
if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];}
elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];}
if (isset($_GET["MgrApr_user"])) {$MgrApr_user=$_GET["MgrApr_user"];}
elseif (isset($_POST["MgrApr_user"])) {$MgrApr_user=$_POST["MgrApr_user"];}
if (isset($_GET["MgrApr_pass"])) {$MgrApr_pass=$_GET["MgrApr_pass"];}
elseif (isset($_POST["MgrApr_pass"])) {$MgrApr_pass=$_POST["MgrApr_pass"];}
header ("Content-type: text/html; charset=utf-8");
@@ -949,6 +956,8 @@ if ($non_latin < 1)
$phone_code = preg_replace("/[^0-9a-zA-Z]/","",$phone_code);
$phone_number = preg_replace("/[^0-9a-zA-Z]/","",$phone_number);
$status = preg_replace("/[^-_0-9a-zA-Z]/","",$status);
$MgrApr_user = preg_replace("/[^-_0-9a-zA-Z]/","",$MgrApr_user);
$MgrApr_pass = preg_replace("/[^-_0-9a-zA-Z]/","",$MgrApr_pass);
}
else
{
@@ -956,6 +965,8 @@ else
$pass=preg_replace("/\'|\"|\\\\|;| /","",$pass);
$orig_pass = preg_replace("/\'|\"|\\\\|;/","",$orig_pass);
$status = preg_replace("/\'|\"|\\\\|;/","",$status);
$MgrApr_user = preg_replace("/\'|\"|\\\\|;/","",$MgrApr_user);
$MgrApr_pass = preg_replace("/\'|\"|\\\\|;/","",$MgrApr_pass);
}
$session_name = preg_replace("/\'|\"|\\\\|;/","",$session_name);
@@ -1060,6 +1071,7 @@ $user_abb = preg_replace("/\'|\"|\\\\|;/","",$user_abb);
$vtiger_callback_id = preg_replace("/\'|\"|\\\\|;/","",$vtiger_callback_id);
$wrapup = preg_replace("/\'|\"|\\\\|;/","",$wrapup);
$url_link = preg_replace("/\'|\"|\\\\|;/","",$url_link);
$user_group = preg_replace('/[^-_0-9a-zA-Z]/','',$user_group);
# default optional vars if not set
@@ -10646,7 +10658,7 @@ if ($ACTION == 'LeaDSearcHSelecTUpdatE')
else
{
### grab the call info from the vicidial_live_agents table
$stmt = "SELECT uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign';";
$stmt = "SELECT uniqueid,callerid,channel,call_server_ip,comments,lead_id FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign';";
if ($non_latin > 0) {$rslt=mysql_to_mysqli("SET NAMES 'UTF8'", $link);}
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
@@ -10661,6 +10673,7 @@ if ($ACTION == 'LeaDSearcHSelecTUpdatE')
$channel = $row[2];
$call_server_ip = $row[3];
$VLAcomments = $row[4];
$old_lead_id = $row[4];
if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;}
echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n";
@@ -10712,6 +10725,12 @@ if ($ACTION == 'LeaDSearcHSelecTUpdatE')
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00454',$user,$server_ip,$session_name,$one_mysql_log);}
### insert into the vicidial_agent_function_log table that the switch happened
$stmt = "INSERT INTO vicidial_agent_function_log set agent_log_id='$agent_log_id',user='$user',function='switch_lead',event_time=NOW(),campaign_id='$campaign',user_group='$user_group',lead_id='$stage',uniqueid='$uniqueid',caller_code='$callerid',stage='$lead_id',comments='$phone_number';";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00710',$user,$server_ip,$session_name,$one_mysql_log);}
##### grab the data from vicidial_list for the lead_id
$stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner,entry_list_id FROM vicidial_list where lead_id='$lead_id' LIMIT 1;";
$rslt=mysql_to_mysqli($stmt, $link);
@@ -14056,6 +14075,61 @@ if ($ACTION == 'PauseCodeSubmit')
}
################################################################################
### PauseCodeMgrApr - Manager approval of agent pause code
################################################################################
if ($ACTION == 'PauseCodeMgrApr')
{
$row=''; $rowx='';
if ( (strlen($status)<1) or (strlen($MgrApr_user)<1) or (strlen($MgrApr_pass)<1) )
{
echo _QXZ("manager username %1s, password or pause_code %2s is not valid",0,'',$MgrApr_user,$status)."\n";
if ($SSagent_debug_logging > 0) {vicidial_ajax_log($NOW_TIME,$startMS,$link,$ACTION,$php_script,$user,$stage,$lead_id,$session_name,$stmt);}
exit;
}
else
{
$auth_message = user_authorization($MgrApr_user,$MgrApr_pass,'',0,0,0,0);
if ($auth_message == 'GOOD')
{
$auth_pca=0;
$stmt = "SELECT count(*) from vicidial_users where user='$MgrApr_user' and pause_code_approval='1';";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00711',$user,$server_ip,$session_name,$one_mysql_log);}
$VUpca_ct = mysqli_num_rows($rslt);
if ($VUpca_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$auth_pca = $row[0];
}
if ($auth_pca > 0)
{
### insert into the vicidial_agent_function_log table that the switch happened
$stmt = "INSERT INTO vicidial_agent_function_log set agent_log_id='$agent_log_id',user='$user',function='mgrapr_pause_code',event_time=NOW(),campaign_id='$campaign',user_group='$user_group',lead_id='0',uniqueid='',caller_code='',stage='$MgrApr_user',comments='$status';";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00712',$user,$server_ip,$session_name,$one_mysql_log);}
echo _QXZ("Manager Approval of Pause Code is Accepted %1s",0,'',$status)." STATUS:\n" . $auth_message . "\n";
$stage .= "|$MgrApr_user|$status|$auth_message|";
}
else
{
echo _QXZ("Invalid Manager Permissions %1s",0,'',$MgrApr_user)." STATUS:\nBAD PERMISSIONS\n";
$stage .= "|$MgrApr_user|$status|$auth_message|";
}
}
else
{
echo _QXZ("Invalid Manager Credentials %1s",0,'',$MgrApr_user)." STATUS:\n" . $auth_message . "\n";
$stage .= "|$MgrApr_user|$status|$auth_message|";
}
}
}
################################################################################
### AGENTSview - List statuses of other agents in sidebar or xfer frame
################################################################################
+138 -9
View File
@@ -590,10 +590,11 @@
# 180323-2228 - Added more logging for notices
# 180327-1355 - Added code for LOCALFQDN conversion to browser-used server URL for webform and script iframes
# 180405-0913 - Fix for API Hangup after dial timeout
# 180410-1629 - Added Pause Code manager approval feature, Added switch_lead logging
#
$version = '2.14-560c';
$build = '180405-0913';
$version = '2.14-561c';
$build = '180410-1629';
$mel=1; # Mysql Error Log enabled = 1
$mysql_log_count=87;
$one_mysql_log=0;
@@ -2311,25 +2312,30 @@ else
if ( (preg_match('/Y/',$agent_pause_codes_active)) or (preg_match('/FORCE/',$agent_pause_codes_active)) )
{
##### grab the pause codes for this campaign
$stmt="SELECT pause_code,pause_code_name FROM vicidial_pause_codes WHERE campaign_id='$VD_campaign' order by pause_code limit 100;";
$stmt="SELECT pause_code,pause_code_name,require_mgr_approval FROM vicidial_pause_codes WHERE campaign_id='$VD_campaign' order by pause_code limit 100;";
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01014',$VD_login,$server_ip,$session_name,$one_mysql_log);}
if ($DB) {echo "$stmt\n";}
$VD_pause_codes = mysqli_num_rows($rslt);
$j=0;
$mgrapr_ct=0;
while ($j < $VD_pause_codes)
{
$row=mysqli_fetch_row($rslt);
$pause_codes[$i] =$row[0];
$pause_code_names[$i] =$row[1];
$pause_codes[$i] = $row[0];
$pause_code_names[$i] = $row[1];
$pause_code_mgrapr[$i] = $row[2];
$VARpause_codes = "$VARpause_codes'$pause_codes[$i]',";
$VARpause_code_names = "$VARpause_code_names'$pause_code_names[$i]',";
$VARpause_code_mgrapr = "$VARpause_code_mgrapr'$pause_code_mgrapr[$i]',";
if ($pause_code_mgrapr[$i] == 'YES') {$mgrapr_ct++;}
$i++;
$j++;
}
$VD_pause_codes_ct = ($VD_pause_codes_ct+$VD_pause_codes);
$VARpause_codes = substr("$VARpause_codes", 0, -1);
$VARpause_code_names = substr("$VARpause_code_names", 0, -1);
$VARpause_codes = substr("$VARpause_codes", 0, -1);
$VARpause_code_names = substr("$VARpause_code_names", 0, -1);
$VARpause_code_mgrapr = substr("$VARpause_code_mgrapr", 0, -1);
}
##### grab the inbound groups to choose from if campaign contains CLOSER
@@ -4062,6 +4068,7 @@ $CCAL_OUT .= "</table>";
var agent_pause_codes_active = '<?php echo $agent_pause_codes_active ?>';
VARpause_codes = new Array(<?php echo $VARpause_codes ?>);
VARpause_code_names = new Array(<?php echo $VARpause_code_names ?>);
VARpause_code_mgrapr = new Array(<?php echo $VARpause_code_mgrapr ?>);
var VD_pause_codes_ct = '<?php echo $VD_pause_codes_ct ?>';
VARpreset_names = new Array(<?php echo $VARpreset_names ?>);
VARpreset_numbers = new Array(<?php echo $VARpreset_numbers ?>);
@@ -7672,7 +7679,7 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
}
if (xmlhttprequestselectupdate)
{
checkVDAI_query = "server_ip=" + server_ip + "&session_name=" + session_name + "&user=" + user + "&pass=" + pass + "&campaign=" + campaign + "&ACTION=LeaDSearcHSelecTUpdatE" + "&lead_id=" + LSSlead_id + "&stage=" + document.vicidial_form.lead_id.value + "&agent_log_id=" + agent_log_id + "&phone_number=" + document.vicidial_form.phone_number.value;
checkVDAI_query = "server_ip=" + server_ip + "&session_name=" + session_name + "&user=" + user + "&pass=" + pass + "&campaign=" + campaign + "&ACTION=LeaDSearcHSelecTUpdatE" + "&lead_id=" + LSSlead_id + "&stage=" + document.vicidial_form.lead_id.value + "&agent_log_id=" + agent_log_id + "&phone_number=" + document.vicidial_form.phone_number.value + "&user_group=" + VU_user_group;
xmlhttprequestselectupdate.open('POST', 'vdc_db_query.php');
xmlhttprequestselectupdate.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
xmlhttprequestselectupdate.send(checkVDAI_query);
@@ -13004,13 +13011,24 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
showDiv('PauseCodeSelectBox');
WaitingForNextStep=1;
PauseCode_HTML = '';
var mgrapr_ct=0;
document.vicidial_form.PauseCodeSelection.value = '';
var VD_pause_codes_ct_half = parseInt(VD_pause_codes_ct / 2);
PauseCode_HTML = "<table cellpadding=\"5\" cellspacing=\"5\" width=\"500px\"><tr><td colspan=\"2\"><font class=sh_text'> <?php echo _QXZ("PAUSE CODE"); ?></font></td></tr><tr><td bgcolor=\"#99FF99\" height=\"300px\" width=\"240px\" valign=\"top\"><font class=\"log_text\"><span id=\"PauseCodeSelectA\">";
var loop_ct = 0;
while (loop_ct < VD_pause_codes_ct)
{
PauseCode_HTML = PauseCode_HTML + "<font size=\"3\" face=\"Arial, Helvetica, sans-serif\" style=\"BACKGROUND-COLOR: #FFFFCC\"><b><a href=\"#\" onclick=\"PauseCodeSelect_submit('" + VARpause_codes[loop_ct] + "','YES');return false;\">" + VARpause_codes[loop_ct] + " - " + VARpause_code_names[loop_ct] + "</a></b></font><br /><br />";
var temp_mgrapr='';
if (VARpause_code_mgrapr[loop_ct] == 'YES')
{
mgrapr_ct++;
temp_mgrapr=' *';
PauseCode_HTML = PauseCode_HTML + "<font size=\"3\" face=\"Arial, Helvetica, sans-serif\" style=\"BACKGROUND-COLOR: #FFFFCC\"><b><a href=\"#\" onclick=\"PauseCodeOpen_mgrapr('" + VARpause_codes[loop_ct] + "','" + VARpause_code_names[loop_ct] + "','YES');return false;\">" + VARpause_codes[loop_ct] + " - " + VARpause_code_names[loop_ct] + '' + temp_mgrapr + "</a></b></font><br /><br />";
}
else
{
PauseCode_HTML = PauseCode_HTML + "<font size=\"3\" face=\"Arial, Helvetica, sans-serif\" style=\"BACKGROUND-COLOR: #FFFFCC\"><b><a href=\"#\" onclick=\"PauseCodeSelect_submit('" + VARpause_codes[loop_ct] + "','YES');return false;\">" + VARpause_codes[loop_ct] + " - " + VARpause_code_names[loop_ct] + "</a></b></font><br /><br />";
}
loop_ct++;
if (loop_ct == VD_pause_codes_ct_half)
{PauseCode_HTML = PauseCode_HTML + "</span></font></td><td bgcolor=\"#99FF99\" height=\"300px\" width=\"240px\" valign=\"top\"><font class=\"log_text\"><span id=PauseCodeSelectB>";}
@@ -13861,6 +13879,89 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
}
// ################################################################################
// Open the Manager Approval for agent Pause Code Box
function PauseCodeOpen_mgrapr(newpausecode,newpausecodename,PCSclick)
{
button_click_log = button_click_log + "" + SQLdate + "-----PauseCodeOpen_mgrapr---" + newpausecode + "|";
showDiv('PauseCodeMgrAprBox');
document.getElementById("PauseCodeMgrAprSelection").value = newpausecode;
document.getElementById("PauseCodeMgrAprContent").innerHTML = '<?php echo _QXZ("Pause Code Selected"); ?>: ' + newpausecode + ' - ' + newpausecodename;
}
// ################################################################################
// Cancel the Manager Approval for agent Pause Code Box
function PauseCodeCancel_mgrapr()
{
button_click_log = button_click_log + "" + SQLdate + "-----PauseCodeCancel_mgrapr---" + document.getElementById("PauseCodeMgrAprSelection").value + "|";
hideDiv('PauseCodeMgrAprBox');
document.getElementById("MgrApr_user").value = '';
document.getElementById("MgrApr_pass").value = '';
document.getElementById("PauseCodeMgrAprSelection").value = '';
document.getElementById("PauseCodeMgrAprContent").innerHTML = '';
}
// ################################################################################
// Submit the Manager Approval for agent Pause Code
function PauseCodeSelect_MgrApr()
{
button_click_log = button_click_log + "" + SQLdate + "-----PauseCodeSelect_MgrApr---" + document.getElementById("PauseCodeMgrAprSelection").value + "|";
// hideDiv('PauseCodeSelectBox');
var temp_MgrApr_user = document.getElementById("MgrApr_user").value;
var temp_MgrApr_pass = document.getElementById("MgrApr_pass").value;
var xmlhttp=false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
// JScript gives us Conditional compilation, we can cope with old IE versions.
// and security blocked creation of the objects.
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
@end @*/
if (!xmlhttp && typeof XMLHttpRequest!='undefined')
{
xmlhttp = new XMLHttpRequest();
}
if (xmlhttp)
{
VMCpausecodeMgrApr_query = "server_ip=" + server_ip + "&session_name=" + session_name + "&user=" + user + "&pass=" + pass + "&ACTION=PauseCodeMgrApr&format=text&MgrApr_user=" + temp_MgrApr_user + "&MgrApr_pass=" + temp_MgrApr_pass + "&campaign=" + campaign + "&status=" + document.getElementById("PauseCodeMgrAprSelection").value + "&agent_log_id=" + agent_log_id + "&user_group=" + VU_user_group;
xmlhttp.open('POST', 'vdc_db_query.php');
xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
xmlhttp.send(VMCpausecodeMgrApr_query);
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
var check_pause_code = null;
var check_pause_code = xmlhttp.responseText;
var check_PC_array=check_pause_code.split("\n");
if (check_PC_array[1] == 'GOOD')
{
PauseCodeSelect_submit(document.getElementById("PauseCodeMgrAprSelection").value,'YES');
PauseCodeCancel_mgrapr();
}
else
{
alert_box("<?php echo _QXZ("Invalid Manager Pause Code Approval"); ?>: " + temp_MgrApr_user + '');
}
// alert(VMCpausecodeMgrApr_query);
// alert(xmlhttp.responseText + "\n|" + check_PC_array[0] + "\n|" + check_PC_array[1] + "|" + agent_log_id + "|" + pause_code_counter);
}
}
delete xmlhttp;
}
scroll(0,0);
}
// ################################################################################
// Submit the Group Alias
function GroupAliasSelect_submit(newgroupalias,newgroupcid,newusegroup)
@@ -17200,6 +17301,7 @@ function phone_number_format(formatphone) {
hideDiv('CallBacKsLisTBox');
hideDiv('NeWManuaLDiaLBox');
hideDiv('PauseCodeSelectBox');
hideDiv('PauseCodeMgrAprBox');
hideDiv('PresetsSelectBox');
hideDiv('GroupAliasSelectBox');
hideDiv('DiaLInGrouPSelectBox');
@@ -20146,6 +20248,33 @@ if ($agent_display_dialable_leads > 0)
?>
<span id="PauseCodeSelectContent"> <?php echo _QXZ("Pause Code Selection"); ?> </span>
<input type="hidden" name="PauseCodeSelection" id="PauseCodeSelection" />
<?php
if ($mgrapr_ct > 0)
{echo "<br /><br /><b>* "._QXZ("These pause codes require manager approval")."</b>\n";}
?>
<br /><br /> &nbsp;</font>
</td></tr></table>
</span>
<span style="position:absolute;left:0px;top:0px;z-index:<?php $zi++; echo $zi ?>;" id="PauseCodeMgrAprBox">
<table border="0" bgcolor="#CCFFCC" width="<?php echo $CAwidth ?>px" height="<?php echo $WRheight ?>px"><tr><td align="center" valign="top"> <font class="sd_text"><?php echo _QXZ("Pause Code Manager Approval"); ?>:</font><br /><br /><font class="sh_text">
<?php
if ($webphone_location == 'bar')
{echo "<br /><img src=\"./images/"._QXZ("pixel.gif")."\" width=\"1px\" height=\"".$webphone_height."px\" /><br />\n";}
?>
<span id="PauseCodeMgrAprContent"> <?php echo _QXZ("Pause Code Selection"); ?> </span>
<br />
<input type="hidden" name="PauseCodeMgrAprSelection" id="PauseCodeMgrAprSelection" value="" />
<br /><br /><br />
<?php echo _QXZ("Manager Username"); ?>: <input type="text" size="20" name="MgrApr_user" id="MgrApr_user" maxlength="20" class="cust_form" value="" />
<br />
<?php echo _QXZ("Manager Password"); ?>: <input type="password" size="20" name="MgrApr_pass" id="MgrApr_pass" maxlength="20" class="cust_form" value="" />
<br /><br />
<font size="3" face="Arial, Helvetica, sans-serif" style="BACKGROUND-COLOR: #FFFFCC"><b><a href="#" onclick="PauseCodeSelect_MgrApr();return false;"><?php echo _QXZ("Submit"); ?></a></font> &nbsp; &nbsp;
<font size="3" face="Arial, Helvetica, sans-serif" style="BACKGROUND-COLOR: #FFFFCC"><b><a href="#" onclick="PauseCodeCancel_mgrapr();return false;"><?php echo _QXZ("Cancel"); ?></a></font>
<br /><br /> &nbsp;</font>
</td></tr></table>
</span>
+24 -13
View File
@@ -2349,6 +2349,10 @@ if (isset($_GET["script_top_dispo"])) {$script_top_dispo=$_GET["script_top_dis
elseif (isset($_POST["script_top_dispo"])) {$script_top_dispo=$_POST["script_top_dispo"];}
if (isset($_GET["source_id_display"])) {$source_id_display=$_GET["source_id_display"];}
elseif (isset($_POST["source_id_display"])) {$source_id_display=$_POST["source_id_display"];}
if (isset($_GET["require_mgr_approval"])) {$require_mgr_approval=$_GET["require_mgr_approval"];}
elseif (isset($_POST["require_mgr_approval"])) {$require_mgr_approval=$_POST["require_mgr_approval"];}
if (isset($_GET["pause_code_approval"])) {$pause_code_approval=$_GET["pause_code_approval"];}
elseif (isset($_POST["pause_code_approval"])) {$pause_code_approval=$_POST["pause_code_approval"];}
if (isset($script_id)) {$script_id= strtoupper($script_id);}
@@ -2772,6 +2776,7 @@ if ($non_latin < 1)
$did_system_filter = preg_replace('/[^0-9]/','',$did_system_filter);
$icbq_expiration_hours = preg_replace('/[^0-9]/','',$icbq_expiration_hours);
$source_id_display = preg_replace('/[^0-9]/','',$source_id_display);
$pause_code_approval = preg_replace('/[^0-9]/','',$pause_code_approval);
$user_new_lead_limit = preg_replace('/[^-0-9]/','',$user_new_lead_limit);
$drop_call_seconds = preg_replace('/[^-0-9]/','',$drop_call_seconds);
@@ -2997,6 +3002,7 @@ if ($non_latin < 1)
$inbound_list_script_override = preg_replace('/[^0-9a-zA-Z]/','',$inbound_list_script_override);
$pause_max_dispo = preg_replace('/[^0-9a-zA-Z]/','',$pause_max_dispo);
$areacode = preg_replace('/[^0-9a-zA-Z]/','',$areacode);
$require_mgr_approval = preg_replace('/[^0-9a-zA-Z]/','',$require_mgr_approval);
### DIGITS and Dots
$server_ip = preg_replace('/[^\.0-9]/','',$server_ip);
@@ -4329,12 +4335,13 @@ else
# 180316-0751 - Translated phrases fixes, issue #1081
# 180330-1425 - Added download of CID Group records feature
# 180331-1715 - Added update_did non-agent API function
# 180410-1600 - Added pause code manager approval settings
#
# make sure you have added a user to the vicidial_users MySQL table with at least user_level 9 to access this page the first time
$admin_version = '2.14-667a';
$build = '180331-1715';
$admin_version = '2.14-668a';
$build = '180410-1600';
$STARTtime = date("U");
$SQLdate = date("Y-m-d H:i:s");
@@ -9499,7 +9506,7 @@ if ($ADD=="2A")
$pass='';
}
$stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five,voicemail_id,agent_call_log_view_override,callcard_admin,agent_choose_blended,realtime_block_user_info,custom_fields_modify,force_change_password,agent_lead_search_override,modify_shifts,modify_phones,modify_carriers,modify_labels,modify_statuses,modify_voicemail,modify_audiostore,modify_moh,modify_tts,preset_contact_search,modify_contacts,modify_same_user_level,admin_hide_lead_data,admin_hide_phone_data,agentcall_email,agentcall_chat,modify_email_accounts,pass_hash,alter_admin_interface_options,max_inbound_calls,modify_custom_dialplans,wrapup_seconds_override,modify_languages,selected_language,user_choose_language,ignore_group_on_search,api_list_restrict,api_allowed_functions,lead_filter_id,admin_cf_show_hidden,user_hide_realtime,modify_colors,user_nickname,user_new_lead_limit,api_only_user,modify_auto_reports,modify_ip_lists,ignore_ip_list,ready_max_logout,export_gdpr_leads,access_recordings) SELECT \"$user\",\"$pass\",\"$full_name\",user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five,voicemail_id,agent_call_log_view_override,callcard_admin,agent_choose_blended,realtime_block_user_info,custom_fields_modify,force_change_password,agent_lead_search_override,modify_shifts,modify_phones,modify_carriers,modify_labels,modify_statuses,modify_voicemail,modify_audiostore,modify_moh,modify_tts,preset_contact_search,modify_contacts,modify_same_user_level,admin_hide_lead_data,admin_hide_phone_data,agentcall_email,agentcall_chat,modify_email_accounts,\"$pass_hash\",alter_admin_interface_options,max_inbound_calls,modify_custom_dialplans,wrapup_seconds_override,modify_languages,selected_language,user_choose_language,ignore_group_on_search,api_list_restrict,api_allowed_functions,lead_filter_id,admin_cf_show_hidden,user_hide_realtime,modify_colors,user_nickname,user_new_lead_limit,api_only_user,modify_auto_reports,modify_ip_lists,ignore_ip_list,ready_max_logout,export_gdpr_leads,access_recordings from vicidial_users where user=\"$source_user_id\";";
$stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five,voicemail_id,agent_call_log_view_override,callcard_admin,agent_choose_blended,realtime_block_user_info,custom_fields_modify,force_change_password,agent_lead_search_override,modify_shifts,modify_phones,modify_carriers,modify_labels,modify_statuses,modify_voicemail,modify_audiostore,modify_moh,modify_tts,preset_contact_search,modify_contacts,modify_same_user_level,admin_hide_lead_data,admin_hide_phone_data,agentcall_email,agentcall_chat,modify_email_accounts,pass_hash,alter_admin_interface_options,max_inbound_calls,modify_custom_dialplans,wrapup_seconds_override,modify_languages,selected_language,user_choose_language,ignore_group_on_search,api_list_restrict,api_allowed_functions,lead_filter_id,admin_cf_show_hidden,user_hide_realtime,modify_colors,user_nickname,user_new_lead_limit,api_only_user,modify_auto_reports,modify_ip_lists,ignore_ip_list,ready_max_logout,export_gdpr_leads,access_recordings,pause_code_approval) SELECT \"$user\",\"$pass\",\"$full_name\",user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five,voicemail_id,agent_call_log_view_override,callcard_admin,agent_choose_blended,realtime_block_user_info,custom_fields_modify,force_change_password,agent_lead_search_override,modify_shifts,modify_phones,modify_carriers,modify_labels,modify_statuses,modify_voicemail,modify_audiostore,modify_moh,modify_tts,preset_contact_search,modify_contacts,modify_same_user_level,admin_hide_lead_data,admin_hide_phone_data,agentcall_email,agentcall_chat,modify_email_accounts,\"$pass_hash\",alter_admin_interface_options,max_inbound_calls,modify_custom_dialplans,wrapup_seconds_override,modify_languages,selected_language,user_choose_language,ignore_group_on_search,api_list_restrict,api_allowed_functions,lead_filter_id,admin_cf_show_hidden,user_hide_realtime,modify_colors,user_nickname,user_new_lead_limit,api_only_user,modify_auto_reports,modify_ip_lists,ignore_ip_list,ready_max_logout,export_gdpr_leads,access_recordings,pause_code_approval from vicidial_users where user=\"$source_user_id\";";
$rslt=mysql_to_mysqli($stmt, $link);
$stmtA="INSERT INTO vicidial_inbound_group_agents (user,group_id,group_rank,group_weight,calls_today,group_type) SELECT \"$user\",group_id,group_rank,group_weight,\"0\",group_type from vicidial_inbound_group_agents where user=\"$source_user_id\";";
@@ -9917,7 +9924,7 @@ if ($ADD==20)
$stmtE="INSERT INTO vicidial_lead_recycle (status,attempt_delay,attempt_maximum,active,campaign_id) SELECT status,attempt_delay,attempt_maximum,active,\"$campaign_id\" from vicidial_lead_recycle where campaign_id='$source_campaign_id';";
$rslt=mysql_to_mysqli($stmtE, $link);
$stmtF="INSERT INTO vicidial_pause_codes (pause_code,pause_code_name,billable,campaign_id,time_limit) SELECT pause_code,pause_code_name,billable,\"$campaign_id\",time_limit from vicidial_pause_codes where campaign_id='$source_campaign_id';";
$stmtF="INSERT INTO vicidial_pause_codes (pause_code,pause_code_name,billable,campaign_id,time_limit,require_mgr_approval) SELECT pause_code,pause_code_name,billable,\"$campaign_id\",time_limit,require_mgr_approval from vicidial_pause_codes where campaign_id='$source_campaign_id';";
$rslt=mysql_to_mysqli($stmtF, $link);
$stmtG="INSERT INTO vicidial_xfer_presets (campaign_id,preset_name,preset_number,preset_dtmf,preset_hide_number) SELECT \"$campaign_id\",preset_name,preset_number,preset_dtmf,preset_hide_number from vicidial_xfer_presets where campaign_id='$source_campaign_id';";
@@ -10184,7 +10191,7 @@ if ($ADD==27)
echo "<br><B>"._QXZ("AGENT PAUSE CODE ADDED").": $campaign_id - $pause_code - $pause_code_name</B>\n";
if (strlen($time_limit) < 1) {$time_limit='65000';}
$stmt="INSERT INTO vicidial_pause_codes(campaign_id,pause_code,pause_code_name,billable,time_limit) values('$campaign_id','$pause_code','$pause_code_name','$billable','$time_limit');";
$stmt="INSERT INTO vicidial_pause_codes(campaign_id,pause_code,pause_code_name,billable,time_limit,require_mgr_approval) values('$campaign_id','$pause_code','$pause_code_name','$billable','$time_limit','$require_mgr_approval');";
$rslt=mysql_to_mysqli($stmt, $link);
### LOG INSERTION Admin Log Table ###
@@ -13118,7 +13125,7 @@ if ($ADD=="4A")
echo "<br><B>"._QXZ("USER MODIFIED - ADMIN").": $user</B>\n";
$stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',delete_users='$delete_users',delete_user_groups='$delete_user_groups',delete_lists='$delete_lists',delete_campaigns='$delete_campaigns',delete_ingroups='$delete_ingroups',delete_remote_agents='$delete_remote_agents',load_leads='$load_leads',campaign_detail='$campaign_detail',ast_admin_access='$ast_admin_access',ast_delete_phones='$ast_delete_phones',delete_scripts='$delete_scripts',modify_leads='$modify_leads',hotkeys_active='$hotkeys_active',change_agent_campaign='$change_agent_campaign',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',delete_filters='$delete_filters',alter_agent_interface_options='$alter_agent_interface_options',closer_default_blended='$closer_default_blended',delete_call_times='$delete_call_times',modify_call_times='$modify_call_times',modify_users='$modify_users',modify_campaigns='$modify_campaigns',modify_lists='$modify_lists',modify_scripts='$modify_scripts',modify_filters='$modify_filters',modify_ingroups='$modify_ingroups',modify_usergroups='$modify_usergroups',modify_remoteagents='$modify_remoteagents',modify_servers='$modify_servers',view_reports='$view_reports',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',add_timeclock_log='$add_timeclock_log',modify_timeclock_log='$modify_timeclock_log',delete_timeclock_log='$delete_timeclock_log',alter_custphone_override='$alter_custphone_override',vdc_agent_api_access='$vdc_agent_api_access',modify_inbound_dids='$modify_inbound_dids',delete_inbound_dids='$delete_inbound_dids',active='$active',download_lists='$download_lists',agent_shift_enforcement_override='$agent_shift_enforcement_override',manager_shift_enforcement_override='$manager_shift_enforcement_override',export_reports='$export_reports',delete_from_dnc='$delete_from_dnc',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five',voicemail_id='$voicemail_id',agent_call_log_view_override='$agent_call_log_view_override',callcard_admin='$callcard_admin',agent_choose_blended='$agent_choose_blended',realtime_block_user_info='$realtime_block_user_info',custom_fields_modify='$custom_fields_modify',force_change_password='$force_change_password',agent_lead_search_override='$agent_lead_search',modify_shifts='$modify_shifts',modify_phones='$modify_phones',modify_carriers='$modify_carriers',modify_labels='$modify_labels',modify_statuses='$modify_statuses',modify_voicemail='$modify_voicemail',modify_audiostore='$modify_audiostore',modify_moh='$modify_moh',modify_tts='$modify_tts',preset_contact_search='$preset_contact_search',modify_contacts='$modify_contacts',modify_same_user_level='$modify_same_user_level',admin_hide_lead_data='$admin_hide_lead_data',admin_hide_phone_data='$admin_hide_phone_data',agentcall_email='$agentcall_email',agentcall_chat='$agentcall_chat',modify_email_accounts='$modify_email_accounts',failed_login_count=0,alter_admin_interface_options='$alter_admin_interface_options',max_inbound_calls='$max_inbound_calls',modify_custom_dialplans='$modify_custom_dialplans',wrapup_seconds_override='$wrapup_seconds_override',modify_languages='$modify_languages',selected_language='$selected_language',user_choose_language='$user_choose_language',ignore_group_on_search='$ignore_group_on_search',api_list_restrict='$api_list_restrict',api_allowed_functions='$api_allowed_functions',lead_filter_id='$lead_filter_id',admin_cf_show_hidden='$admin_cf_show_hidden',user_hide_realtime='$user_hide_realtime',access_recordings='$access_recordings',modify_colors='$modify_colors',user_nickname='$user_nickname',user_new_lead_limit='$user_new_lead_limit',api_only_user='$api_only_user',modify_auto_reports='$modify_auto_reports',modify_ip_lists='$modify_ip_lists',ignore_ip_list='$ignore_ip_list',ready_max_logout='$ready_max_logout',export_gdpr_leads='$export_gdpr_leads' $pass_hashSQL where user='$user' $LOGadmin_viewable_groupsSQL;";
$stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',delete_users='$delete_users',delete_user_groups='$delete_user_groups',delete_lists='$delete_lists',delete_campaigns='$delete_campaigns',delete_ingroups='$delete_ingroups',delete_remote_agents='$delete_remote_agents',load_leads='$load_leads',campaign_detail='$campaign_detail',ast_admin_access='$ast_admin_access',ast_delete_phones='$ast_delete_phones',delete_scripts='$delete_scripts',modify_leads='$modify_leads',hotkeys_active='$hotkeys_active',change_agent_campaign='$change_agent_campaign',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',delete_filters='$delete_filters',alter_agent_interface_options='$alter_agent_interface_options',closer_default_blended='$closer_default_blended',delete_call_times='$delete_call_times',modify_call_times='$modify_call_times',modify_users='$modify_users',modify_campaigns='$modify_campaigns',modify_lists='$modify_lists',modify_scripts='$modify_scripts',modify_filters='$modify_filters',modify_ingroups='$modify_ingroups',modify_usergroups='$modify_usergroups',modify_remoteagents='$modify_remoteagents',modify_servers='$modify_servers',view_reports='$view_reports',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',add_timeclock_log='$add_timeclock_log',modify_timeclock_log='$modify_timeclock_log',delete_timeclock_log='$delete_timeclock_log',alter_custphone_override='$alter_custphone_override',vdc_agent_api_access='$vdc_agent_api_access',modify_inbound_dids='$modify_inbound_dids',delete_inbound_dids='$delete_inbound_dids',active='$active',download_lists='$download_lists',agent_shift_enforcement_override='$agent_shift_enforcement_override',manager_shift_enforcement_override='$manager_shift_enforcement_override',export_reports='$export_reports',delete_from_dnc='$delete_from_dnc',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five',voicemail_id='$voicemail_id',agent_call_log_view_override='$agent_call_log_view_override',callcard_admin='$callcard_admin',agent_choose_blended='$agent_choose_blended',realtime_block_user_info='$realtime_block_user_info',custom_fields_modify='$custom_fields_modify',force_change_password='$force_change_password',agent_lead_search_override='$agent_lead_search',modify_shifts='$modify_shifts',modify_phones='$modify_phones',modify_carriers='$modify_carriers',modify_labels='$modify_labels',modify_statuses='$modify_statuses',modify_voicemail='$modify_voicemail',modify_audiostore='$modify_audiostore',modify_moh='$modify_moh',modify_tts='$modify_tts',preset_contact_search='$preset_contact_search',modify_contacts='$modify_contacts',modify_same_user_level='$modify_same_user_level',admin_hide_lead_data='$admin_hide_lead_data',admin_hide_phone_data='$admin_hide_phone_data',agentcall_email='$agentcall_email',agentcall_chat='$agentcall_chat',modify_email_accounts='$modify_email_accounts',failed_login_count=0,alter_admin_interface_options='$alter_admin_interface_options',max_inbound_calls='$max_inbound_calls',modify_custom_dialplans='$modify_custom_dialplans',wrapup_seconds_override='$wrapup_seconds_override',modify_languages='$modify_languages',selected_language='$selected_language',user_choose_language='$user_choose_language',ignore_group_on_search='$ignore_group_on_search',api_list_restrict='$api_list_restrict',api_allowed_functions='$api_allowed_functions',lead_filter_id='$lead_filter_id',admin_cf_show_hidden='$admin_cf_show_hidden',user_hide_realtime='$user_hide_realtime',access_recordings='$access_recordings',modify_colors='$modify_colors',user_nickname='$user_nickname',user_new_lead_limit='$user_new_lead_limit',api_only_user='$api_only_user',modify_auto_reports='$modify_auto_reports',modify_ip_lists='$modify_ip_lists',ignore_ip_list='$ignore_ip_list',ready_max_logout='$ready_max_logout',export_gdpr_leads='$export_gdpr_leads',pause_code_approval='$pause_code_approval' $pass_hashSQL where user='$user' $LOGadmin_viewable_groupsSQL;";
$rslt=mysql_to_mysqli($stmt, $link);
### LOG INSERTION Admin Log Table ###
@@ -14528,7 +14535,7 @@ if ($ADD==47)
echo "<br><B>"._QXZ("AGENT PAUSE CODE MODIFIED").": $campaign_id - $pause_code - $pause_code_name</B>\n";
if (strlen($time_limit) < 1) {$time_limit='65000';}
$stmt="UPDATE vicidial_pause_codes SET pause_code_name='$pause_code_name',billable='$billable',time_limit='$time_limit' where campaign_id='$campaign_id' and pause_code='$pause_code';";
$stmt="UPDATE vicidial_pause_codes SET pause_code_name='$pause_code_name',billable='$billable',time_limit='$time_limit',require_mgr_approval='$require_mgr_approval' where campaign_id='$campaign_id' and pause_code='$pause_code';";
$rslt=mysql_to_mysqli($stmt, $link);
### LOG INSERTION Admin Log Table ###
@@ -20970,7 +20977,7 @@ if ($ADD==3)
echo "<TABLE><TR><TD>\n";
echo "<FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2>";
$stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five,voicemail_id,agent_call_log_view_override,callcard_admin,agent_choose_blended,realtime_block_user_info,custom_fields_modify,force_change_password,agent_lead_search_override,modify_shifts,modify_phones,modify_carriers,modify_labels,modify_statuses,modify_voicemail,modify_audiostore,modify_moh,modify_tts,preset_contact_search,modify_contacts,modify_same_user_level,admin_hide_lead_data,admin_hide_phone_data,agentcall_email,modify_email_accounts,failed_login_count,last_login_date,last_ip,alter_admin_interface_options,max_inbound_calls,modify_custom_dialplans,wrapup_seconds_override,modify_languages,selected_language,user_choose_language,ignore_group_on_search,api_list_restrict,api_allowed_functions,lead_filter_id,agentcall_chat,admin_cf_show_hidden,user_hide_realtime,access_recordings,modify_colors,user_nickname,user_new_lead_limit,api_only_user,modify_auto_reports,modify_ip_lists,ignore_ip_list,ready_max_logout,export_gdpr_leads from vicidial_users where user='$user' $LOGadmin_viewable_groupsSQL;";
$stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five,voicemail_id,agent_call_log_view_override,callcard_admin,agent_choose_blended,realtime_block_user_info,custom_fields_modify,force_change_password,agent_lead_search_override,modify_shifts,modify_phones,modify_carriers,modify_labels,modify_statuses,modify_voicemail,modify_audiostore,modify_moh,modify_tts,preset_contact_search,modify_contacts,modify_same_user_level,admin_hide_lead_data,admin_hide_phone_data,agentcall_email,modify_email_accounts,failed_login_count,last_login_date,last_ip,alter_admin_interface_options,max_inbound_calls,modify_custom_dialplans,wrapup_seconds_override,modify_languages,selected_language,user_choose_language,ignore_group_on_search,api_list_restrict,api_allowed_functions,lead_filter_id,agentcall_chat,admin_cf_show_hidden,user_hide_realtime,access_recordings,modify_colors,user_nickname,user_new_lead_limit,api_only_user,modify_auto_reports,modify_ip_lists,ignore_ip_list,ready_max_logout,export_gdpr_leads,pause_code_approval from vicidial_users where user='$user' $LOGadmin_viewable_groupsSQL;";
$rslt=mysql_to_mysqli($stmt, $link);
$row=mysqli_fetch_row($rslt);
$user_id = $row[0];
@@ -21098,6 +21105,7 @@ if ($ADD==3)
$ignore_ip_list = $row[124];
$ready_max_logout = $row[125];
$export_gdpr_leads = $row[126];
$pause_code_approval = $row[127];
if ( ( ($user_level >= $LOGuser_level) and ($LOGuser_level < 9) ) or ( ($LOGmodify_same_user_level < 1) and ($LOGuser_level > 8) and ($user_level > 8) ) )
{
@@ -21526,9 +21534,10 @@ if ($ADD==3)
echo "<tr bgcolor=#$SSstd_row1_background><td align=right>"._QXZ("Delete Timeclock Log Record").": </td><td align=left><select size=1 name=delete_timeclock_log><option>0</option><option>1</option><option SELECTED>$delete_timeclock_log</option></select>$NWB#users-delete_timeclock_log$NWE</td></tr>\n";
echo "<tr bgcolor=#$SSstd_row2_background><td align=right>"._QXZ("Manager Shift Enforcement Override").": </td><td align=left><select size=1 name=manager_shift_enforcement_override><option>0</option><option>1</option><option SELECTED>$manager_shift_enforcement_override</option></select>$NWB#users-manager_shift_enforcement_override$NWE</td></tr>\n";
echo "<tr bgcolor=#$SSstd_row2_background><td align=right>"._QXZ("Manager Pause Code Approval").": </td><td align=left><select size=1 name=pause_code_approval><option>0</option><option>1</option><option SELECTED>$pause_code_approval</option></select>$NWB#users-pause_code_approval$NWE</td></tr>\n";
if (preg_match("/cf_encrypt/",$SSactive_modules))
{echo "<tr bgcolor=#$SSstd_row2_background><td align=right>"._QXZ("Admin Custom Fields Show Hidden").": </td><td align=left><select size=1 name=admin_cf_show_hidden><option>0</option><option>1</option><option SELECTED>$admin_cf_show_hidden</option></select>$NWB#users-admin_cf_show_hidden$NWE</td></tr>\n";}
{echo "<tr bgcolor=#$SSstd_row1_background><td align=right>"._QXZ("Admin Custom Fields Show Hidden").": </td><td align=left><select size=1 name=admin_cf_show_hidden><option>0</option><option>1</option><option SELECTED>$admin_cf_show_hidden</option></select>$NWB#users-admin_cf_show_hidden$NWE</td></tr>\n";}
else
{echo "<tr bgcolor=#$SSstd_row2_background><td colspan=2><input type=hidden name=admin_cf_show_hidden value=\"$admin_cf_show_hidden\"></td></tr>\n";}
@@ -24124,15 +24133,15 @@ if ($ADD==31)
if ($SUB==27)
{
echo "<br><br><b>"._QXZ("AGENT PAUSE CODES FOR THIS CAMPAIGN").": &nbsp; $NWB#pause_codes$NWE</b><br>\n";
echo "<TABLE width=600 cellspacing=3>\n";
echo "<TABLE width=700 cellspacing=3>\n";
echo "<tr><td>"._QXZ("PAUSE CODES")."</td><td>"._QXZ("BILLABLE")."</td>";
if ($SSenable_pause_code_limits > 0)
{
echo "<td>"._QXZ("TIME LIMIT")."</td>";
}
echo "<td>"._QXZ("MODIFY")."</td><td>"._QXZ("DELETE")."</td></tr>\n";
echo "<td>"._QXZ("MGR APPROVAL")."</td><td>"._QXZ("MODIFY")."</td><td>"._QXZ("DELETE")."</td></tr>\n";
$stmt="SELECT pause_code,pause_code_name,billable,campaign_id,time_limit from vicidial_pause_codes where campaign_id='$campaign_id' $LOGallowed_campaignsSQL order by pause_code;";
$stmt="SELECT pause_code,pause_code_name,billable,campaign_id,time_limit,require_mgr_approval from vicidial_pause_codes where campaign_id='$campaign_id' $LOGallowed_campaignsSQL order by pause_code;";
$rslt=mysql_to_mysqli($stmt, $link);
$pause_codes_to_print = mysqli_num_rows($rslt);
$o=0;
@@ -24158,6 +24167,7 @@ if ($ADD==31)
{
echo "<td><input type=text size=5 maxlength=5 name=time_limit value=\"$rowx[4]\"></td>\n";
}
echo "<td><select size=1 name=require_mgr_approval><option value='YES'>"._QXZ("YES")."</option><option value='NO'>"._QXZ("NO")."</option><option value='$rowx[5]' SELECTED>"._QXZ("$rowx[5]")."</option></select></td>\n";
echo "<td><font size=1><input type=submit name=submit value='"._QXZ("MODIFY")."'></form></td>\n";
echo "<td><font size=1><a href=\"$PHP_SELF?ADD=67&campaign_id=$campaign_id&pause_code=$rowx[0]\">"._QXZ("DELETE")."</a></td>\n";
echo "</tr>\n";
@@ -24170,7 +24180,8 @@ if ($ADD==31)
echo "<input type=hidden name=campaign_id value=\"$campaign_id\">\n";
echo _QXZ("Pause Code").": <input type=text size=8 maxlength=6 name=pause_code>\n";
echo " &nbsp; "._QXZ("Name").": <input type=text size=20 maxlength=30 name=pause_code_name>\n";
echo " &nbsp; "._QXZ("Billable").": <select size=1 name=billable><option value='YES'>"._QXZ("YES")."</option><option value='NO'>"._QXZ("NO")."</option><option value='HALF'>"._QXZ("HALF")."</option></select>\n";
echo " &nbsp; "._QXZ("Billable").": <select size=1 name=billable><option value='YES'>"._QXZ("YES")."</option><option value='NO'>"._QXZ("NO")."</option><option value='HALF'>"._QXZ("HALF")."</option></select><BR>\n";
echo " &nbsp; "._QXZ("Mgr Approve").": <select size=1 name=require_mgr_approval><option value='YES'>"._QXZ("YES")."</option><option SELECTED value='NO'>"._QXZ("NO")."</option></select>\n";
if ($SSenable_pause_code_limits > 0)
{
echo " &nbsp; "._QXZ("Time Limit").": <input type=text size=5 maxlength=5 name=time_limit>\n";
+79 -1
View File
@@ -90,6 +90,7 @@
# 180302-1605 - Added complete GDPR compliance features
# 180310-2300 - Added optional source_id display
# 180311-0008 - Added CIDdisplay
# 180410-1720 - Added switch lead log entry display
#
require("dbconnect_mysqli.php");
@@ -2428,8 +2429,85 @@ else
echo "</TABLE><BR><BR>\n";
##### vicidial agent outbound calls for this time period #####
##### BEGIN switch lead log entries #####
$stmt="SELECT * from vicidial_agent_function_log where lead_id='" . mysqli_real_escape_string($link, $lead_id) . "' and function='switch_lead' order by event_time desc limit 500;";
$rslt=mysql_to_mysqli($stmt, $link);
$logs_to_print = mysqli_num_rows($rslt);
if ($DB) {echo "$logs_to_print|$stmt|\n";}
if ($logs_to_print > 0)
{
echo "<B>"._QXZ("AGENT FROM SWITCH-LEADS FOR THIS LEAD").":</B>\n";
echo "<TABLE width=750 cellspacing=1 cellpadding=1>\n";
echo "<tr><td><font size=1># </td><td align=left><font size=2> "._QXZ("SWITCH TIME")."</td><td><font size=2>"._QXZ("CAMPAIGN")." </td><td align=left><font size=2>"._QXZ("TSR")." </td><td align=left><font size=2> &nbsp; "._QXZ("TO LEAD ID")."</td><td align=left><font size=2> "._QXZ("CALL ID")."</td><td align=left><font size=2> "._QXZ("UNIQUEID")."</td><td align=left><font size=2> "._QXZ("PHONE NUMBER")."</td></tr>\n";
$u=0;
while ($logs_to_print > $u)
{
$row=mysqli_fetch_array($rslt);
if (preg_match("/1$|3$|5$|7$|9$/i", $u))
{$bgcolor="bgcolor=\"#$SSstd_row2_background\"";}
else
{$bgcolor="bgcolor=\"#$SSstd_row1_background\"";}
$u++;
echo "<tr $bgcolor>";
echo "<td><font size=1>$u</td>";
echo "<td align=left><font size=1> $row[event_time] </td>";
echo "<td align=left><font size=1> $row[campaign_id] </td>\n";
echo "<td align=left><font size=2> $row[user] </td>\n";
echo "<td align=left><font size=2> <a href=\"$PHP_SELF?lead_id=$row[stage]\">$row[stage]</a> </td>\n";
echo "<td align=left><font size=1> $row[caller_code] </td>\n";
echo "<td align=left><font size=1> $row[uniqueid] </td>\n";
echo "<td align=left><font size=2> $row[comments] </td>\n";
echo "</tr>\n";
}
echo "</TABLE><BR><BR>\n";
}
$stmt="SELECT * from vicidial_agent_function_log where stage='" . mysqli_real_escape_string($link, $lead_id) . "' and function='switch_lead' order by event_time desc limit 500;";
$rslt=mysql_to_mysqli($stmt, $link);
$logs_to_print = mysqli_num_rows($rslt);
if ($DB) {echo "$logs_to_print|$stmt|\n";}
if ($logs_to_print > 0)
{
echo "<B>"._QXZ("AGENT TO SWITCH-LEADS FOR THIS LEAD").":</B>\n";
echo "<TABLE width=750 cellspacing=1 cellpadding=1>\n";
echo "<tr><td><font size=1># </td><td align=left><font size=2> "._QXZ("SWITCH TIME")."</td><td><font size=2>"._QXZ("CAMPAIGN")." </td><td align=left><font size=2>"._QXZ("TSR")." </td><td align=left><font size=2> &nbsp; "._QXZ("FROM LEAD ID")."</td><td align=left><font size=2> "._QXZ("CALL ID")."</td><td align=left><font size=2> "._QXZ("UNIQUEID")."</td><td align=left><font size=2> "._QXZ("PHONE NUMBER")."</td></tr>\n";
$u=0;
while ($logs_to_print > $u)
{
$row=mysqli_fetch_array($rslt);
if (preg_match("/1$|3$|5$|7$|9$/i", $u))
{$bgcolor="bgcolor=\"#$SSstd_row2_background\"";}
else
{$bgcolor="bgcolor=\"#$SSstd_row1_background\"";}
$u++;
echo "<tr $bgcolor>";
echo "<td><font size=1>$u</td>";
echo "<td align=left><font size=1> $row[event_time] </td>";
echo "<td align=left><font size=1> $row[campaign_id] </td>\n";
echo "<td align=left><font size=2> $row[user] </td>\n";
echo "<td align=left><font size=2> <a href=\"$PHP_SELF?lead_id=$row[lead_id]\">$row[lead_id]</a> </td>\n";
echo "<td align=left><font size=1> $row[caller_code] </td>\n";
echo "<td align=left><font size=1> $row[uniqueid] </td>\n";
echo "<td align=left><font size=2> $row[comments] </td>\n";
echo "</tr>\n";
}
echo "</TABLE><BR><BR>\n";
}
##### END switch lead log entries #####
##### vicidial agent outbound calls for this time period #####
if ($allow_emails>0)
{
echo "<B>"._QXZ("OUTBOUND EMAILS FOR THIS LEAD").":</B>\n";
+7 -1
View File
@@ -156,6 +156,7 @@
# 180217-0810 - Added pause_max_dispo
# 180306-1639 - Added script_top_dispo
# 180310-2246 - Added settings-source_id_display
# 180410-1609 - Added users-pause_code_approval
#
require("dbconnect_mysqli.php");
@@ -758,6 +759,11 @@ if ($SSqc_features_active > 0)
<BR>
<B><?php echo _QXZ("Manager Shift Enforcement Override"); ?> -</B><?php echo _QXZ("This setting if set to 1 will allow a manager to enter their user and password on an agent screen to override the shift restrictions on an agent session if the agent is trying to log in outside of their shift. Default is 0."); ?>
<BR>
<A NAME="users-pause_code_approval">
<BR>
<B><?php echo _QXZ("Manager Pause Code Approval"); ?> -</B><?php echo _QXZ("If a campaign pause code is set to require manager approval, the manager that approves the agent pause code selection must have this setting set to 1. Default is 0."); ?>
<BR>
<A NAME="users-vdc_agent_api_access">
<BR>
@@ -3757,7 +3763,7 @@ if ($SSoutbound_autodial_active > 0)
<B><FONT SIZE=3>AGENT PAUSE CODES</FONT></B><BR><BR>
<A NAME="pause_codes">
<BR>
<B><?php echo _QXZ("If the Agent Pause Codes Active field is set to active then the agents will be able to select from these pause codes when they click on the PAUSE button on their screens. This data is then stored in the agent log. The Pause code must contain only letters and numbers and be less than 7 characters long. The pause code name can be no longer than 30 characters.") . ' ' . _QXZ("The Time Limit field, if enabled in System Settings, will change the color of the agent on the Real-Time Report if they are in that pause code for more than the defined amount of seconds."); ?></B>
<B><?php echo _QXZ("If the Agent Pause Codes Active field is set to active then the agents will be able to select from these pause codes when they click on the PAUSE button on their screens. This data is then stored in the agent log. The Pause code must contain only letters and numbers and be less than 7 characters long. The pause code name can be no longer than 30 characters.") . ' ' . _QXZ("The Time Limit field, if enabled in System Settings, will change the color of the agent on the Real-Time Report if they are in that pause code for more than the defined amount of seconds.") . ' ' . _QXZ("The Mgr Approval field, if enabled, will require a manager to go to the agent screen and enter their login credentials to allow the agent to enter that pause code."); ?></B>
+69
View File
@@ -57,6 +57,7 @@
# 170409-1555 - Added IP List validation code
# 170412-2150 - Added park_rpt display option
# 180323-2308 - Fix for user time calculation, subtracted queue_seconds
# 180410-1754 - Added Agent lead switch log and manager pause code approval log displays
#
$startMS = microtime();
@@ -151,6 +152,7 @@ if ($search_archived_data)
$user_call_log_table=use_archive_table("user_call_log");
$vicidial_lead_search_log_table=use_archive_table("vicidial_lead_search_log");
$vicidial_agent_skip_log_table=use_archive_table("vicidial_agent_skip_log");
$vicidial_agent_function_log=use_archive_table("vicidial_agent_function_log");
$call_log_table=use_archive_table("call_log");
$vicidial_log_table=use_archive_table("vicidial_log");
}
@@ -166,6 +168,7 @@ else
$user_call_log_table="user_call_log";
$vicidial_lead_search_log_table="vicidial_lead_search_log";
$vicidial_agent_skip_log_table="vicidial_agent_skip_log";
$vicidial_agent_function_log="vicidial_agent_function_log";
$call_log_table="call_log";
$vicidial_log_table="vicidial_log";
}
@@ -1627,6 +1630,72 @@ else
$CSV_text11.="\"\",\"$u\",\"$row[1]\",\"$row[2]\",\"$row[4]\",\"$row[5]\",\"$row[3]\"\n";
}
$MAIN.="</TABLE><BR><BR>\n";
##### BEGIN switch lead log entries #####
$MAIN.="<B>"._QXZ("AGENT LEAD SWITCHES FOR THIS TIME PERIOD: (10000 record limit)")."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='$download_link&file_download=13'>["._QXZ("DOWNLOAD")."]</a></B>\n";
$MAIN.="<TABLE width=750 cellspacing=0 cellpadding=1>\n";
$MAIN.="<tr><td><font size=1># </td><td NOWRAP><font size=2>"._QXZ("DATE/TIME")." &nbsp; </td><td align=right NOWRAP><font size=2> "._QXZ("FROM LEAD ID")." &nbsp; </td><td align=right NOWRAP><font size=2> "._QXZ("TO LEAD ID")." &nbsp; </td><td align=right NOWRAP><font size=2> "._QXZ("CALL ID")." &nbsp; </td><td align=right NOWRAP><font size=2> "._QXZ("UNIQUEID")." &nbsp; </td><td align=right NOWRAP><font size=2> "._QXZ("PHONE")." &nbsp; </td><td align=right NOWRAP><font size=2> "._QXZ("CAMPAIGN")."</td></tr>\n";
$CSV_text13.="\""._QXZ("AGENT LEAD SWITCHES FOR THIS TIME PERIOD: (10000 record limit)")."\"\n";
$CSV_text13.="\"\",\"#\",\""._QXZ("DATE/TIME")."\",\""._QXZ("FROM LEAD ID")."\",\""._QXZ("TO LEAD ID")."\",\""._QXZ("CALL ID")."\",\""._QXZ("UNIQUEID")."\",\""._QXZ("PHONE")."\",\""._QXZ("CAMPAIGN")."\"\n";
$stmt="SELECT event_time,lead_id,stage,caller_code,uniqueid,comments,campaign_id from ".$vicidial_agent_function_log." where user='" . mysqli_real_escape_string($link, $user) . "' and event_time >= '" . mysqli_real_escape_string($link, $begin_date) . " 0:00:01' and event_time <= '" . mysqli_real_escape_string($link, $end_date) . " 23:59:59' and function='switch_lead' order by event_time desc limit 10000;";
$rslt=mysql_to_mysqli($stmt, $link);
$logs_to_print = mysqli_num_rows($rslt);
$u=0;
while ($logs_to_print > $u)
{
$row=mysqli_fetch_row($rslt);
if (preg_match("/1$|3$|5$|7$|9$/i", $u))
{$bgcolor='bgcolor="#'. $SSstd_row2_background .'"';}
else
{$bgcolor='bgcolor="#'. $SSstd_row1_background .'"';}
$u++;
$MAIN.="<tr $bgcolor>";
$MAIN.="<td><font size=1>$u</td>";
$MAIN.="<td><font size=2>$row[0]</td>";
$MAIN.="<td align=center><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[1]\" target=\"_blank\">$row[1]</A> </td>\n";
$MAIN.="<td align=center><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[2]\" target=\"_blank\">$row[2]</A> </td>\n";
$MAIN.="<td><font size=2>$row[3]</td>";
$MAIN.="<td align=right><font size=2> $row[4] </td>\n";
$MAIN.="<td align=right><font size=2> $row[5] </td>\n";
$MAIN.="<td align=right><font size=2> $row[6] </td></tr>\n";
$CSV_text13.="\"\",\"$u\",\"$row[0]\",\"$row[1]\",\"$row[2]\",\"$row[3]\",\"$row[4]\",\"$row[5]\",\"$row[6]\"\n";
}
$MAIN.="</TABLE><BR><BR>\n";
##### BEGIN manager pause code approval entries #####
$MAIN.="<B>"._QXZ("MANAGER PAUSE CODE APPROVALS FOR THIS TIME PERIOD: (10000 record limit)")."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='$download_link&file_download=14'>["._QXZ("DOWNLOAD")."]</a></B>\n";
$MAIN.="<TABLE width=750 cellspacing=0 cellpadding=1>\n";
$MAIN.="<tr><td><font size=1># </td><td NOWRAP><font size=2>"._QXZ("DATE/TIME")." &nbsp; </td><td align=right NOWRAP><font size=2> "._QXZ("AGENT")." &nbsp; </td><td align=center NOWRAP><font size=2> "._QXZ("AGENT USER GROUP")." &nbsp; </td><td align=center NOWRAP><font size=2> "._QXZ("CAMPAIGN")." &nbsp; </td><td align=right NOWRAP><font size=2> "._QXZ("PAUSE CODE")." &nbsp; </td></tr>\n";
$CSV_text14.="\""._QXZ("MANAGER PAUSE CODE APPROVALS FOR THIS TIME PERIOD: (10000 record limit)")."\"\n";
$CSV_text14.="\"\",\"#\",\""._QXZ("DATE/TIME")."\",\""._QXZ("AGENT")."\",\""._QXZ("AGENT USER GROUP")."\",\""._QXZ("CAMPAIGN")."\",\""._QXZ("PAUSE CODE")."\"\n";
$stmt="SELECT event_time,user,user_group,campaign_id,comments from ".$vicidial_agent_function_log." where stage='" . mysqli_real_escape_string($link, $user) . "' and event_time >= '" . mysqli_real_escape_string($link, $begin_date) . " 0:00:01' and event_time <= '" . mysqli_real_escape_string($link, $end_date) . " 23:59:59' and function='mgrapr_pause_code' order by event_time desc limit 10000;";
$rslt=mysql_to_mysqli($stmt, $link);
$logs_to_print = mysqli_num_rows($rslt);
$u=0;
while ($logs_to_print > $u)
{
$row=mysqli_fetch_row($rslt);
if (preg_match("/1$|3$|5$|7$|9$/i", $u))
{$bgcolor='bgcolor="#'. $SSstd_row2_background .'"';}
else
{$bgcolor='bgcolor="#'. $SSstd_row1_background .'"';}
$u++;
$MAIN.="<tr $bgcolor>";
$MAIN.="<td><font size=1>$u</td>";
$MAIN.="<td><font size=2>$row[0]</td>";
$MAIN.="<td align=center><font size=2> <A HREF=\"$PHP_SELF?user=$row[1]\" target=\"_blank\">$row[1]</A> </td>\n";
$MAIN.="<td align=center><font size=2>$row[2]</td>";
$MAIN.="<td align=center><font size=2>$row[3]</td>";
$MAIN.="<td align=right><font size=2> $row[4] </td>\n";
$CSV_text14.="\"\",\"$u\",\"$row[0]\",\"$row[1]\",\"$row[2]\",\"$row[3]\",\"$row[4]\"\n";
}
$MAIN.="</TABLE><BR><BR>\n";
}
}