Fix for max_inbound_auto_reenable feature in 4B admin screen in admin.php

git-svn-id: svn://192.168.202.10@3976 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2026-04-11 12:14:12 +00:00
parent e3b563f57c
commit d3163ab1ea
+114 -8
View File
@@ -6332,12 +6332,13 @@ if ($SSscript_remove_js > 0)
# 260128-0823 - Added xfer_min_container and in-group minimum transfer time features, xfer_talk_minimum, xfer_talk_minimum_sec # 260128-0823 - Added xfer_min_container and in-group minimum transfer time features, xfer_talk_minimum, xfer_talk_minimum_sec
# 260324-0848 - Added hangup_again_link campaign option # 260324-0848 - Added hangup_again_link campaign option
# 260408-0827 - Added max_inbound_auto_reenable system setting and function to re-enable agent in-group selections after max_inbound_calls has been raised # 260408-0827 - Added max_inbound_auto_reenable system setting and function to re-enable agent in-group selections after max_inbound_calls has been raised
# 260410-1953 - Fix for max_inbound_auto_reenable feature in 4B admin screen
# #
# 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 # 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-955a'; $admin_version = '2.14-956a';
$build = '260408-0827'; $build = '260410-1953';
$STARTtime = date("U"); $STARTtime = date("U");
$SQLdate = date("Y-m-d H:i:s"); $SQLdate = date("Y-m-d H:i:s");
@@ -7185,8 +7186,8 @@ if ($ADD==311111111111111) {$hh='admin'; $sh='settings'; echo _QXZ("MODIFY SYSTE
if ($ADD==321111111111111) {$hh='admin'; $sh='status'; echo _QXZ("MODIFY SYSTEM STATUSES");} if ($ADD==321111111111111) {$hh='admin'; $sh='status'; echo _QXZ("MODIFY SYSTEM STATUSES");}
if ($ADD==331111111111111) {$hh='admin'; $sh='status'; echo _QXZ("MODIFY STATUS CATEGORY");} if ($ADD==331111111111111) {$hh='admin'; $sh='status'; echo _QXZ("MODIFY STATUS CATEGORY");}
if ($ADD==341111111111111) {$hh='qc'; $sh='modify'; echo _QXZ("MODIFY QC STATUS CODE");} if ($ADD==341111111111111) {$hh='qc'; $sh='modify'; echo _QXZ("MODIFY QC STATUS CODE");}
if ($ADD=="4A") {$hh='users'; $sh='list'; echo _QXZ("Modify User - Admin");} if ($ADD=="4A") {$hh='users'; $sh='list'; echo _QXZ("Modify User - Admin");} # ADMIN - Admin Screen and Agent Screen Options
if ($ADD=="4B") {$hh='users'; $sh='list'; echo _QXZ("Modify User - Admin");} if ($ADD=="4B") {$hh='users'; $sh='list'; echo _QXZ("Modify User - Admin");} # ADMIN - Agent Screen Options Only
if ($ADD==4) {$hh='users'; $sh='list'; echo _QXZ("Modify User");} if ($ADD==4) {$hh='users'; $sh='list'; echo _QXZ("Modify User");}
if ($ADD==41) {$hh='campaigns'; $sh='detail'; echo _QXZ("Modify Campaign");} if ($ADD==41) {$hh='campaigns'; $sh='detail'; echo _QXZ("Modify Campaign");}
if ($ADD==42) {$hh='campaigns'; $sh='status'; echo _QXZ("Modify Campaign Status");} if ($ADD==42) {$hh='campaigns'; $sh='status'; echo _QXZ("Modify Campaign Status");}
@@ -16319,7 +16320,7 @@ if ($ADD==231111111111111)
###################### ######################
# ADD=4A submit user modifications to the system - ADMIN # ADD=4A submit user modifications to the system - ADMIN - Admin Screen and Agent Screen Options
###################### ######################
if ($ADD=="4A") if ($ADD=="4A")
{ {
@@ -16732,7 +16733,7 @@ if ($ADD=="4A")
###################### ######################
# ADD=4B submit user modifications to the system - ADMIN # ADD=4B submit user modifications to the system - ADMIN - Agent Screen Options Only
###################### ######################
if ($ADD=="4B") if ($ADD=="4B")
{ {
@@ -16810,12 +16811,117 @@ if ($ADD=="4B")
$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',hotkeys_active='$hotkeys_active',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',closer_default_blended='$closer_default_blended',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',alter_custphone_override='$alter_custphone_override',active='$active',agent_shift_enforcement_override='$agent_shift_enforcement_override',email='$email',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',agent_choose_blended='$agent_choose_blended',agent_lead_search_override='$agent_lead_search',preset_contact_search='$preset_contact_search',max_inbound_calls='$max_inbound_calls',wrapup_seconds_override='$wrapup_seconds_override',lead_filter_id='$lead_filter_id',user_hide_realtime='$user_hide_realtime',user_nickname='$user_nickname',user_new_lead_limit='$user_new_lead_limit',ready_max_logout='$ready_max_logout',failed_login_count=0,max_hopper_calls='$max_hopper_calls',max_hopper_calls_hour='$max_hopper_calls_hour',hide_call_log_info='$hide_call_log_info',next_dial_my_callbacks='$next_dial_my_callbacks',max_inbound_filter_enabled='$max_inbound_filter_enabled',max_inbound_filter_statuses='$max_inbound_filter_statuses',max_inbound_filter_ingroups='$max_inbound_filter_ingroups',max_inbound_filter_min_sec='$max_inbound_filter_min_sec',status_group_id='$status_group_id',mobile_number='$mobile_number',user_location='$user_location',user_group_two='$user_group_two',hci_enabled='$hci_enabled' $user_codeSQL $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',hotkeys_active='$hotkeys_active',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',closer_default_blended='$closer_default_blended',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',alter_custphone_override='$alter_custphone_override',active='$active',agent_shift_enforcement_override='$agent_shift_enforcement_override',email='$email',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',agent_choose_blended='$agent_choose_blended',agent_lead_search_override='$agent_lead_search',preset_contact_search='$preset_contact_search',max_inbound_calls='$max_inbound_calls',wrapup_seconds_override='$wrapup_seconds_override',lead_filter_id='$lead_filter_id',user_hide_realtime='$user_hide_realtime',user_nickname='$user_nickname',user_new_lead_limit='$user_new_lead_limit',ready_max_logout='$ready_max_logout',failed_login_count=0,max_hopper_calls='$max_hopper_calls',max_hopper_calls_hour='$max_hopper_calls_hour',hide_call_log_info='$hide_call_log_info',next_dial_my_callbacks='$next_dial_my_callbacks',max_inbound_filter_enabled='$max_inbound_filter_enabled',max_inbound_filter_statuses='$max_inbound_filter_statuses',max_inbound_filter_ingroups='$max_inbound_filter_ingroups',max_inbound_filter_min_sec='$max_inbound_filter_min_sec',status_group_id='$status_group_id',mobile_number='$mobile_number',user_location='$user_location',user_group_two='$user_group_two',hci_enabled='$hci_enabled' $user_codeSQL $pass_hashSQL where user='$user' $LOGadmin_viewable_groupsSQL;";
$rslt=mysql_to_mysqli($stmt, $link); $rslt=mysql_to_mysqli($stmt, $link);
### BEGIN check for raising of max_inbound_calls setting, and execute re-enebling of agent selected in-groups if true
$max_inbound_calls = intval($max_inbound_calls);
$max_inbound_calls_old = intval($max_inbound_calls_old);
$SSmax_inbound_auto_reenable = intval($SSmax_inbound_auto_reenable);
$max_inbound_NOTES=''; $max_inbound_SQL='';
if ( ($max_inbound_calls > $max_inbound_calls_old) and ($SSmax_inbound_auto_reenable > 0) )
{
$stmt = "SELECT campaign_id,blended,closer_campaigns,max_inbound_count,call_count_today,notes,event_date,CHAR_LENGTH(closer_campaigns) as sorder FROM vicidial_max_inbound_cache where user='$user' and status='NEW' and closer_campaigns NOT IN('',' ',' -') and (max_inbound_count < $max_inbound_calls) order by sorder desc limit 1;";
$rslt=mysql_to_mysqli($stmt, $link);
$vmic_ct = mysqli_num_rows($rslt);
if ($DB) {echo "$vmic_ct|$stmt|\n";}
if ($vmic_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$VMIC_campaign_id = $row[0];
$VMIC_blended = $row[1];
$VMIC_closer_campaigns = $row[2];
$VMIC_max_inbound_count = $row[3];
$VMIC_call_count_today = $row[4];
$VMIC_notes = $row[5];
$VMIC_event_date = $row[6];
if ($DB) {echo "VMIC FOUND: |$user|$VMIC_campaign_id|$VMIC_blended|$VMIC_closer_campaigns|$VMIC_max_inbound_count|$VMIC_call_count_today|$VMIC_notes|$VMIC_event_date|\n";}
$stmt = "SELECT closer_campaigns,status FROM vicidial_live_agents where user='$user' and campaign_id='$VMIC_campaign_id' and last_update_time > DATE_SUB(NOW(), INTERVAL 10 SECOND) order by last_update_time desc limit 1;";
$rslt=mysql_to_mysqli($stmt, $link);
$vla_ct = mysqli_num_rows($rslt);
if ($DB) {echo "$vla_ct|$stmt|\n";}
if ($vla_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$VLA_closer_campaigns = $row[0];
$VLA_status = $row[1];
if ($DB) {echo "VLA FOUND: |$user|$VLA_closer_campaigns|$VLA_status|\n";}
}
if ( (strlen($VMIC_closer_campaigns) > 2) and ($vla_ct > 0) and (strcmp($VMIC_closer_campaigns, $VLA_closer_campaigns) !== 0) )
{
# populate vicidial_live_inbound_agents records for this user
$temp_closer_campaigns = $VMIC_closer_campaigns;
$in_groups_pre = preg_replace('/-$/','',$temp_closer_campaigns);
$in_groups = explode(" ",$in_groups_pre);
$in_groups_ct = count($in_groups);
$k=1;
while ($k < $in_groups_ct)
{
if (strlen($in_groups[$k])>1)
{
$stmtB="SELECT group_weight,calls_today,group_grade,calls_today_filtered,daily_limit FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';";
$rslt=mysql_to_mysqli($stmtB, $link);
if ($DB) {echo "$stmtB\n";}
$viga_ct = mysqli_num_rows($rslt);
if ($viga_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$group_weight = $row[0];
$calls_today = $row[1];
$group_grade = $row[2];
$calls_today_filtered = $row[3];
$daily_limit = $row[4];
}
else
{
$group_weight = 0;
$calls_today = 0;
$group_grade = 0;
$calls_today_filtered = 0;
$daily_limit = -1;
}
$stmtB="INSERT IGNORE INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',group_grade='$group_grade',calls_today='$calls_today',calls_today_filtered='$calls_today_filtered',last_call_time=NOW(),last_call_finish=NOW(),last_call_time_filtered=NOW(),last_call_finish_filtered=NOW(),daily_limit='$daily_limit' ON DUPLICATE KEY UPDATE group_weight='$group_weight',group_grade='$group_grade',calls_today='$calls_today',calls_today_filtered='$calls_today_filtered',daily_limit='$daily_limit';";
$rslt=mysql_to_mysqli($stmtB, $link);
$affected_rows = mysqli_affected_rows($link);
$max_inbound_SQL .= "|$stmtB";
if ($DB) {echo "VLIA INSERT: |$affected_rows|$stmtB|\n";}
}
$k++;
}
$stmt = "UPDATE vicidial_live_agents SET closer_campaigns='$VMIC_closer_campaigns',external_ingroups='$VMIC_closer_campaigns',external_blended='$VMIC_blended',external_igb_set_user='VDIC',manager_ingroup_set='SET' where user='$user' and campaign_id='$VMIC_campaign_id' and last_update_time > DATE_SUB(NOW(), INTERVAL 10 SECOND) order by last_update_time desc limit 1;";
$rslt=mysql_to_mysqli($stmt, $link);
$affected_rows = mysqli_affected_rows($link);
$max_inbound_SQL .= $stmt;
$max_inbound_NOTES .= "$affected_rows VLA ingroups re-selected";
if ($DB) {echo "VLA FOUND UPDATE: |$affected_rows|$stmt|\n";}
if ($affected_rows > 0)
{echo "<br><B>"._QXZ("USER INBOUND GROUPS RE-SELECTED")."</B>\n";}
$stmt = "UPDATE vicidial_max_inbound_cache SET status='RESELECTED', notes=CONCAT(notes, '|RESELECTED at $SQLdate by $PHP_AUTH_USER') where user='$user' and campaign_id='$VMIC_campaign_id' and status='NEW' and closer_campaigns NOT IN('',' ',' -') and (max_inbound_count < $max_inbound_calls) and event_date='$VMIC_event_date';";
$rslt=mysql_to_mysqli($stmt, $link);
$affected_rows = mysqli_affected_rows($link);
$max_inbound_SQL .= "|$stmt";
$max_inbound_NOTES .= "|$affected_rows VMIC updated";
if ($DB) {echo "VMIC FOUND UPDATE: |$affected_rows|$stmt|\n";}
$stmt = "UPDATE vicidial_max_inbound_cache SET status='OLD', notes=CONCAT(notes, '|OLD at $SQLdate by $PHP_AUTH_USER') where user='$user' and campaign_id='$VMIC_campaign_id' and status='NEW';";
$rslt=mysql_to_mysqli($stmt, $link);
$affected_rows = mysqli_affected_rows($link);
$max_inbound_SQL .= "|$stmt";
$max_inbound_NOTES .= "|$affected_rows OTHER updated";
if ($DB) {echo "VMIC OTHER UPDATE: |$affected_rows|$stmt|\n";}
}
}
}
### END check for raising of max_inbound_calls setting, and execute re-enebling of agent selected in-groups if true
### LOG INSERTION Admin Log Table ### ### LOG INSERTION Admin Log Table ###
$SQL_log = "$stmt|$stmt_grp_values|"; $SQL_log = "$stmt|$stmt_grp_values|$max_inbound_SQL|";
$SQL_log = preg_replace('/;/', '', $SQL_log); $SQL_log = preg_replace('/;/', '', $SQL_log);
$SQL_log = addslashes($SQL_log); $SQL_log = addslashes($SQL_log);
$stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='$max_inbound_NOTES';";
if ($DB) {echo "|$stmt|\n";} if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_to_mysqli($stmt, $link); $rslt=mysql_to_mysqli($stmt, $link);