diff --git a/agc_2-X/trunk/www/agc/alt_display.php b/agc_2-X/trunk/www/agc/alt_display.php
index 62fd71a1..d63e7c50 100644
--- a/agc_2-X/trunk/www/agc/alt_display.php
+++ b/agc_2-X/trunk/www/agc/alt_display.php
@@ -16,10 +16,11 @@
#
# CHANGELOG:
# 200827-1157 - First build
+# 200920-0906 - Added agent-lag-time to agent_status action
#
-$version = '2.14-1';
-$build = '200827-1157';
+$version = '2.14-2';
+$build = '200920-0906';
$php_script = 'alt_display.php';
$mel=1; # Mysql Error Log enabled = 1
$mysql_log_count=11;
@@ -443,8 +444,8 @@ if ($ACTION == 'top_panel_realtime')
################################################################################
### agent_status - data-only compressed details for logged-in agent status
-### will output these fields: agent-status|call-time|dead_time|pause-code|calls-today|calls-waiting|waiting-time
-### example: PAUSED|0|0|BREAK|12|0|0
+### will output these fields: agent-status|call-time|dead_time|pause-code|calls-today|calls-waiting|waiting-time|agent-lag-time
+### example: PAUSED|0|0|BREAK|12|0|0|1
################################################################################
if ($ACTION == 'agent_status')
{
@@ -454,7 +455,7 @@ if ($ACTION == 'agent_status')
$CIQcount=0;
$wait_length=0;
- $stmt="SELECT server_ip,status,lead_id,campaign_id,callerid,last_update_time,closer_campaigns,calls_today,pause_code,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_state_change),preview_lead_id,pause_code from vicidial_live_agents where user='$user';";
+ $stmt="SELECT server_ip,status,lead_id,campaign_id,callerid,last_update_time,closer_campaigns,calls_today,pause_code,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_state_change),preview_lead_id,pause_code,UNIX_TIMESTAMP(last_update_time) from vicidial_live_agents where user='$user';";
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'09008',$user,$server_ip,$session_name,$one_mysql_log);}
$cl_user_ct = mysqli_num_rows($rslt);
@@ -474,6 +475,7 @@ if ($ACTION == 'agent_status')
$VLAlast_state_change_epoch = $row[10];
$VLApreview_lead_id = ($row[11] + 0);
$VLApause_code = $row[12];
+ $VLAlast_update_time_epoch = $row[13];
if ( ($VLAstatus == 'INCALL') or ($VLAstatus == 'QUEUE') or ($VLAstatus == 'MQUEUE') ) {$agent_status = 'DEAD';}
if ( ($VLAstatus == 'PAUSED') and ($VLAlead_id > 0) ) {$agent_status = 'DISPO';}
if ( ($VLAstatus == 'PAUSED') and ($VLApreview_lead_id > 0) ) {$agent_status = 'PREVIEW';}
@@ -560,8 +562,13 @@ if ($ACTION == 'agent_status')
$wait_length = ($StarTtime - $CIQcall_time_epoch);
}
}
+ if ($VLAlast_update_time_epoch > 10)
+ {
+ $lagged_length = ($StarTtime - $VLAlast_update_time_epoch);
+ }
+
### END Calls in Queue section ###
- $stage="$agent_status|$call_length|$hangup_length|$VLApause_code|$VLAcalls_today|$CIQcount|$wait_length";
+ $stage="$agent_status|$call_length|$hangup_length|$VLApause_code|$VLAcalls_today|$CIQcount|$wait_length|$lagged_length";
echo "$stage\n";
if ($SSagent_debug_logging > 0) {vicidial_ajax_log($NOW_TIME,$startMS,$link,$ACTION,$php_script,$user,$stage,$lead_id,$session_name,$stmt);}
diff --git a/agc_2-X/trunk/www/vicidial/AST_team_performance_detail.php b/agc_2-X/trunk/www/vicidial/AST_team_performance_detail.php
index 3d9f8fb3..edb7bd76 100644
--- a/agc_2-X/trunk/www/vicidial/AST_team_performance_detail.php
+++ b/agc_2-X/trunk/www/vicidial/AST_team_performance_detail.php
@@ -33,6 +33,7 @@
# 171012-2015 - Fixed javascript/apache errors with graphs
# 180507-2315 - Added new help display
# 191013-0825 - Fixes for PHP7
+# 200917-1720 - Modified for sale counts to be campaign-specific
#
$startMS = microtime();
@@ -623,10 +624,22 @@ $HTML_text.="\n";
$HTML_text.="";
$HTML_text.="\n\n";
+$report_sale_array=array();
+$dispo_sale_stmt="select status, campaign_id from vicidial_campaign_statuses where sale='Y' $group_SQL UNION select status, 'VICIDIAL_SALE' from vicidial_statuses where sale='Y'";
+$dispo_sale_rslt=mysql_to_mysqli($dispo_sale_stmt, $link);
+while ($dispo_sale_row=mysqli_fetch_row($dispo_sale_rslt))
+ {
+ $status=$dispo_sale_row[0];
+ $campaign=$dispo_sale_row[1];
+ if (!$report_sale_array["$campaign"]) {$report_sale_array["$campaign"]="|";}
+ $report_sale_array["$campaign"].="$status|";
+ }
+# print_r($report_sale_array);
+
if ( ($SUBMIT=="SUBMIT") or ($SUBMIT==_QXZ("SUBMIT")) )
{
# Sale counts per rep
- $stmt="select max(event_time), ".$vicidial_agent_log_table.".user, ".$vicidial_agent_log_table.".lead_id, ".$vicidial_list_table.".status as current_status from ".$vicidial_agent_log_table.", ".$vicidial_list_table." where event_time>='$query_date' and event_time<='$end_date' $group_SQL and ".$vicidial_agent_log_table.".status in (select status from vicidial_campaign_statuses where sale='Y' $group_SQL UNION select status from vicidial_statuses where sale='Y') and ".$vicidial_agent_log_table.".lead_id=".$vicidial_list_table.".lead_id group by ".$vicidial_agent_log_table.".user, ".$vicidial_agent_log_table.".lead_id";
+ $stmt="select max(event_time), ".$vicidial_agent_log_table.".user, ".$vicidial_agent_log_table.".lead_id, ".$vicidial_list_table.".status as current_status, ".$vicidial_agent_log_table.".campaign_id, ".$vicidial_agent_log_table.".status from ".$vicidial_agent_log_table.", ".$vicidial_list_table." where event_time>='$query_date' and event_time<='$end_date' $group_SQL and ".$vicidial_agent_log_table.".status in (select status from vicidial_campaign_statuses where sale='Y' $group_SQL UNION select status from vicidial_statuses where sale='Y') and ".$vicidial_agent_log_table.".lead_id=".$vicidial_list_table.".lead_id group by ".$vicidial_agent_log_table.".user, ".$vicidial_agent_log_table.".lead_id";
if ($DB) {$ASCII_text.="$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
$cancel_array=array();
@@ -637,6 +650,8 @@ if ( ($SUBMIT=="SUBMIT") or ($SUBMIT==_QXZ("SUBMIT")) )
$lead_id=$row["lead_id"];
$user=$row["user"];
$current_status=$row["current_status"];
+ $campaign_id=$row["campaign_id"];
+ $agent_status=$row["status"];
if (preg_match("/QCCANC/i", $current_status))
{
$cancel_array[$row["user"]]++;
@@ -647,16 +662,19 @@ if ( ($SUBMIT=="SUBMIT") or ($SUBMIT==_QXZ("SUBMIT")) )
}
else
{
- $sale_array[$row["user"]]++;
+ if (preg_match("/\|$agent_status\|/i", $report_sale_array["$campaign_id"]) || preg_match("/\|$agent_status\|/i", $report_sale_array["VICIDIAL_SALE"]))
+ {
+ $sale_array[$row["user"]]++;
- # Get actual talk time for all calls made by the user for this particular lead. If cancelled and incomplete sales are to have their times
- # counted towards sales talk time, move the below lines OUTSIDE the curly bracket below, so the query runs regardless of what "type" of
- # sale it is.
- $sale_time_stmt="select sum(talk_sec)-sum(dead_sec) from ".$vicidial_agent_log_table." where user='$user' and lead_id='$lead_id' $group_SQL";
- if ($DB) {$ASCII_text.="$sale_time_stmt\n";}
- $sale_time_rslt=mysql_to_mysqli($sale_time_stmt, $link);
- $sale_time_row=mysqli_fetch_row($sale_time_rslt);
- $sales_talk_time_array[$row["user"]]+=$sale_time_row[0];
+ # Get actual talk time for all calls made by the user for this particular lead. If cancelled and incomplete sales are to have their times
+ # counted towards sales talk time, move the below lines OUTSIDE the curly bracket below, so the query runs regardless of what "type" of
+ # sale it is.
+ $sale_time_stmt="select sum(talk_sec)-sum(dead_sec) from ".$vicidial_agent_log_table." where user='$user' and lead_id='$lead_id' $group_SQL";
+ if ($DB) {$ASCII_text.="$sale_time_stmt\n";}
+ $sale_time_rslt=mysql_to_mysqli($sale_time_stmt, $link);
+ $sale_time_row=mysqli_fetch_row($sale_time_rslt);
+ $sales_talk_time_array[$row["user"]]+=$sale_time_row[0];
+ }
}
}
@@ -827,7 +845,7 @@ if ( ($SUBMIT=="SUBMIT") or ($SUBMIT==_QXZ("SUBMIT")) )
if ($contacts>0) {$average_contact_time=sec_convert(round(MathZDC($contact_talk_time, $contacts)), 'H');} else {$average_contact_time="00:00";}
$ASCII_text.="| ".sprintf("%-40s", $user_row["full_name"]);
- $ASCII_text.=" | ".sprintf("%10s", "$user")."";
+ $ASCII_text.=" | ".sprintf("%10s", substr("$user", 0, 10))."";
$ASCII_text.=" | ".sprintf("%5s", $calls); $group_calls+=$calls;
$ASCII_text.=" | ".sprintf("%5s", $leads); $group_leads+=$leads;
$ASCII_text.=" | ".sprintf("%8s", $contacts); $group_contacts+=$contacts;