Added campaign option for Callbacks Display Days which can limit the scheduled callbacks displayed to an agent by a number of days from now

git-svn-id: svn://192.168.202.10@2744 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2017-04-29 12:57:35 +00:00
parent 615208bec4
commit bb26594eb8
7 changed files with 62 additions and 19 deletions
+3
View File
@@ -150,6 +150,9 @@ OTHER CHANGES:
30. Added Inbound and Advanced Forecasting Reports. Both use the Erlang formulas
and past data to forecast agent and call metrics.
31. Added campaign option for Callbacks Display Days which can limit the
scheduled callbacks displayed to an agent by a number of days from now
+3 -2
View File
@@ -981,7 +981,8 @@ manual_auto_show ENUM('Y','N') default 'N',
allow_required_fields ENUM('Y','N') default 'N',
dead_to_dispo ENUM('ENABLED','DISABLED') default 'DISABLED',
agent_xfer_validation ENUM('N','Y') default 'N',
ready_max_logout MEDIUMINT(7) default '0'
ready_max_logout MEDIUMINT(7) default '0',
callback_display_days SMALLINT(3) default '0'
) ENGINE=MyISAM;
CREATE TABLE vicidial_lists (
@@ -3978,4 +3979,4 @@ UPDATE vicidial_configuration set value='1766' where name='qc_database_version';
UPDATE system_settings set vdc_agent_api_active='1';
UPDATE system_settings SET db_schema_version='1502',db_schema_update_date=NOW(),reload_timestamp=NOW();
UPDATE system_settings SET db_schema_version='1503',db_schema_update_date=NOW(),reload_timestamp=NOW();
+4
View File
@@ -227,3 +227,7 @@ index(call_date)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
UPDATE system_settings SET db_schema_version='1502',db_schema_update_date=NOW() where db_schema_version < 1502;
ALTER TABLE vicidial_campaigns ADD callback_display_days SMALLINT(3) default '0';
UPDATE system_settings SET db_schema_version='1503',db_schema_update_date=NOW() where db_schema_version < 1503;
+23 -8
View File
@@ -427,10 +427,11 @@
# 170309-1550 - Added campaign agent_xfer_validation option
# 170327-1656 - Added USER_CUSTOM_ options to campaign custom callerID setting
# 170401-1437 - Added translation of callbacks statuses, issue #1006
# 170429-0835 - Added callback_display_days option
#
$version = '2.14-321';
$build = '170401-1437';
$version = '2.14-322';
$build = '170429-0835';
$php_script = 'vdc_db_query.php';
$mel=1; # Mysql Error Log enabled = 1
$mysql_log_count=661;
@@ -14861,7 +14862,8 @@ if ($ACTION == 'CALLSINQUEUEgrab')
if ($ACTION == 'CalLBacKLisT')
{
$campaignCBhoursSQL = '';
$stmt = "SELECT callback_hours_block,callback_list_calltime,local_call_time from vicidial_campaigns where campaign_id='$campaign';";
$campaignCBdisplaydaysSQL = '';
$stmt = "SELECT callback_hours_block,callback_list_calltime,local_call_time,callback_display_days from vicidial_campaigns where campaign_id='$campaign';";
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00437',$user,$server_ip,$session_name,$one_mysql_log);}
if ($rslt) {$camp_count = mysqli_num_rows($rslt);}
@@ -14871,17 +14873,23 @@ if ($ACTION == 'CalLBacKLisT')
$callback_hours_block = $row[0];
$callback_list_calltime = $row[1];
$local_call_time = $row[2];
$callback_display_days = $row[3];
if ($callback_hours_block > 0)
{
$x_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-$callback_hours_block,date("i"),date("s"),date("m"),date("d"),date("Y")));
$campaignCBhoursSQL = "and entry_time < \"$x_hours_ago\"";
}
if ($callback_display_days > 0)
{
$x_days_from_now = date("Y-m-d H:i:s", mktime(0,0,0,date("m"),date("d")+$callback_display_days,date("Y")));
$campaignCBdisplaydaysSQL = "and callback_time < \"$x_days_from_now\"";
}
}
$campaignCBsql = '';
if ($agentonly_callback_campaign_lock > 0)
{$campaignCBsql = "and campaign_id='$campaign'";}
$stmt = "SELECT callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql $campaignCBhoursSQL and status NOT IN('INACTIVE','DEAD') order by callback_time;";
$stmt = "SELECT callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql $campaignCBhoursSQL $campaignCBdisplaydaysSQL and status NOT IN('INACTIVE','DEAD') order by callback_time;";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);}
@@ -14965,32 +14973,39 @@ if ($ACTION == 'CalLBacKLisT')
if ($ACTION == 'CalLBacKCounT')
{
$campaignCBhoursSQL = '';
$stmt = "SELECT callback_hours_block from vicidial_campaigns where campaign_id='$campaign';";
$campaignCBdisplaydaysSQL = '';
$stmt = "SELECT callback_hours_block,callback_display_days from vicidial_campaigns where campaign_id='$campaign';";
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00438',$user,$server_ip,$session_name,$one_mysql_log);}
if ($rslt) {$camp_count = mysqli_num_rows($rslt);}
if ($camp_count > 0)
{
$row=mysqli_fetch_row($rslt);
$callback_hours_block = $row[0];
$callback_hours_block = $row[0];
$callback_display_days = $row[1];
if ($callback_hours_block > 0)
{
$x_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-$callback_hours_block,date("i"),date("s"),date("m"),date("d"),date("Y")));
$campaignCBhoursSQL = "and entry_time < \"$x_hours_ago\"";
}
if ($callback_display_days > 0)
{
$x_days_from_now = date("Y-m-d H:i:s", mktime(0,0,0,date("m"),date("d")+$callback_display_days,date("Y")));
$campaignCBdisplaydaysSQL = "and callback_time < \"$x_days_from_now\"";
}
}
$campaignCBsql = '';
if ($agentonly_callback_campaign_lock > 0)
{$campaignCBsql = "and campaign_id='$campaign'";}
$stmt = "SELECT count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql $campaignCBhoursSQL and status NOT IN('INACTIVE','DEAD');";
$stmt = "SELECT count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql $campaignCBhoursSQL $campaignCBdisplaydaysSQL and status NOT IN('INACTIVE','DEAD');";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);}
$row=mysqli_fetch_row($rslt);
$cbcount=$row[0];
$stmt = "SELECT count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql $campaignCBhoursSQL and status IN('LIVE');";
$stmt = "SELECT count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql $campaignCBhoursSQL $campaignCBdisplaydaysSQL and status IN('LIVE');";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00332',$user,$server_ip,$session_name,$one_mysql_log);}
+10 -3
View File
@@ -550,10 +550,11 @@
# 170409-1601 - Added IP List validation code
# 170411-1158 - Added called_count as a webform variable
# 170416-1640 - Added ready_max_logout option
# 170429-0851 - Added callback_display_days option
#
$version = '2.14-520c';
$build = '170416-1640';
$version = '2.14-521c';
$build = '170429-0851';
$mel=1; # Mysql Error Log enabled = 1
$mysql_log_count=87;
$one_mysql_log=0;
@@ -1768,7 +1769,7 @@ else
$HKstatusnames = substr("$HKstatusnames", 0, -1);
##### grab the campaign settings
$stmt="SELECT park_ext,park_file_name,web_form_address,allow_closers,auto_dial_level,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,agent_pause_codes_active,no_hopper_leads_logins,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,use_campaign_dnc,three_way_call_cid,dial_method,three_way_dial_prefix,web_form_target,vtiger_screen_login,agent_allow_group_alias,default_group_alias,quick_transfer_button,prepopulate_transfer_preset,view_calls_in_queue,view_calls_in_queue_launch,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number,use_custom_cid,scheduled_callbacks_alert,scheduled_callbacks_count,manual_dial_override,blind_monitor_warning,blind_monitor_message,blind_monitor_filename,timer_action_destination,enable_xfer_presets,hide_xfer_number_to_dial,manual_dial_prefix,customer_3way_hangup_logging,customer_3way_hangup_seconds,customer_3way_hangup_action,ivr_park_call,manual_preview_dial,api_manual_dial,manual_dial_call_time_check,my_callback_option,per_call_notes,agent_lead_search,agent_lead_search_method,queuemetrics_phone_environment,auto_pause_precall,auto_pause_precall_code,auto_resume_precall,manual_dial_cid,custom_3way_button_transfer,callback_days_limit,disable_dispo_screen,disable_dispo_status,screen_labels,status_display_fields,pllb_grouping,pllb_grouping_limit,in_group_dial,in_group_dial_select,pause_after_next_call,owner_populate,manual_dial_lead_id,dead_max,dispo_max,pause_max,dead_max_dispo,dispo_max_dispo,max_inbound_calls,manual_dial_search_checkbox,hide_call_log_info,timer_alt_seconds,wrapup_bypass,wrapup_after_hotkey,callback_active_limit,callback_active_limit_override,comments_all_tabs,comments_dispo_screen,comments_callback_screen,qc_comment_history,show_previous_callback,clear_script,manual_dial_search_filter,web_form_address_three,manual_dial_override_field,status_display_ingroup,customer_gone_seconds,agent_display_fields,manual_dial_timeout,manual_auto_next,manual_auto_show,allow_required_fields,dead_to_dispo,agent_xfer_validation,ready_max_logout FROM vicidial_campaigns where campaign_id = '$VD_campaign';";
$stmt="SELECT park_ext,park_file_name,web_form_address,allow_closers,auto_dial_level,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,agent_pause_codes_active,no_hopper_leads_logins,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,use_campaign_dnc,three_way_call_cid,dial_method,three_way_dial_prefix,web_form_target,vtiger_screen_login,agent_allow_group_alias,default_group_alias,quick_transfer_button,prepopulate_transfer_preset,view_calls_in_queue,view_calls_in_queue_launch,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number,use_custom_cid,scheduled_callbacks_alert,scheduled_callbacks_count,manual_dial_override,blind_monitor_warning,blind_monitor_message,blind_monitor_filename,timer_action_destination,enable_xfer_presets,hide_xfer_number_to_dial,manual_dial_prefix,customer_3way_hangup_logging,customer_3way_hangup_seconds,customer_3way_hangup_action,ivr_park_call,manual_preview_dial,api_manual_dial,manual_dial_call_time_check,my_callback_option,per_call_notes,agent_lead_search,agent_lead_search_method,queuemetrics_phone_environment,auto_pause_precall,auto_pause_precall_code,auto_resume_precall,manual_dial_cid,custom_3way_button_transfer,callback_days_limit,disable_dispo_screen,disable_dispo_status,screen_labels,status_display_fields,pllb_grouping,pllb_grouping_limit,in_group_dial,in_group_dial_select,pause_after_next_call,owner_populate,manual_dial_lead_id,dead_max,dispo_max,pause_max,dead_max_dispo,dispo_max_dispo,max_inbound_calls,manual_dial_search_checkbox,hide_call_log_info,timer_alt_seconds,wrapup_bypass,wrapup_after_hotkey,callback_active_limit,callback_active_limit_override,comments_all_tabs,comments_dispo_screen,comments_callback_screen,qc_comment_history,show_previous_callback,clear_script,manual_dial_search_filter,web_form_address_three,manual_dial_override_field,status_display_ingroup,customer_gone_seconds,agent_display_fields,manual_dial_timeout,manual_auto_next,manual_auto_show,allow_required_fields,dead_to_dispo,agent_xfer_validation,ready_max_logout,callback_display_days FROM vicidial_campaigns where campaign_id = '$VD_campaign';";
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);}
if ($DB) {echo "$stmt\n";}
@@ -1911,6 +1912,7 @@ else
$dead_to_dispo = $row[135];
$agent_xfer_validation = $row[136];
$ready_max_logout = $row[137];
$callback_display_days = $row[138];
if ($VU_ready_max_logout >= 0)
{$ready_max_logout = $VU_ready_max_logout;}
@@ -3720,6 +3722,9 @@ $live_days=0;
$limit_days=999;
if ($callback_days_limit > 0)
{$limit_days=$callback_days_limit;}
$cb_display_days=999;
if ($callback_display_days > 0)
{$cb_display_days=$callback_display_days;}
$Cmonths = Array('0','January','February','March','April','May','June',
'July','August','September','October','November','December');
@@ -4341,6 +4346,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";}
var scheduled_callbacks_count='<?php echo $scheduled_callbacks_count ?>';
var callback_days_limit='<?php echo $callback_days_limit ?>';
var callback_active_limit='<?php echo $callback_active_limit ?>';
var callback_display_days='<?php echo $cb_display_days ?>';
var tmp_vicidial_id='';
var agent_xfer_consultative='<?php echo $agent_xfer_consultative ?>';
var agent_xfer_dial_override='<?php echo $agent_xfer_dial_override ?>';
@@ -7026,6 +7032,7 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
if (xmlhttp)
{
var CBlist_query = "server_ip=" + server_ip + "&session_name=" + session_name + "&user=" + user + "&pass=" + pass + "&ACTION=CalLBacKLisT&campaign=" + campaign + "&format=text";
// document.getElementById("debugbottomspan").innerHTML = "DEBUG OUTPUT: |" + CBlist_query + "|";
xmlhttp.open('POST', 'vdc_db_query.php');
xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
xmlhttp.send(CBlist_query);
+12 -5
View File
File diff suppressed because one or more lines are too long
+7 -1
View File
@@ -124,6 +124,7 @@
# 170410-1329 - Added dl_minutes drop lists entry
# 170416-1620 - Added servers-routing_prefix and user/campaign ready_max_logout entries
# 170428-1959 - Added Inbound and Advanced Forecasting Reports
# 170429-0810 - Added callback_display_days entry
#
@@ -1603,7 +1604,12 @@ if ($SSoutbound_autodial_active > 0)
<BR>
<A NAME="campaigns-callback_active_limit_override">
<BR>
<B><?php echo _QXZ("Scheduled Callbacks Active Limit Override-</B> Enabling this option will allow the Custom User 3 field to override the Scheduled Callbacks Active Limit. Default is N for disabled."); ?>
<B><?php echo _QXZ("Scheduled Callbacks Active Limit Override"); ?> -</B><?php echo _QXZ("Enabling this option will allow the Custom User 3 field to override the Scheduled Callbacks Active Limit. Default is N for disabled."); ?>
<BR>
<A NAME="campaigns-callback_display_days">
<BR>
<B><?php echo _QXZ("Scheduled Callbacks Display Days"); ?> -</B><?php echo _QXZ("Enabling this option will restrict the scheduled callbacks listings on the agent screen to showing only callbacks set to trigger a number of days from today. The -day- is a standard calendar day, so if this is set to 1, only the current callbacks for today until midnight will be displayed. Default is 0 for disabled."); ?>
<BR>
<A NAME="campaigns-my_callback_option">