diff --git a/www/VERM/VERM_AGENTS_DT_rpt.inc b/www/VERM/VERM_AGENTS_DT_rpt.inc index b2f7c070..84d631c7 100644 --- a/www/VERM/VERM_AGENTS_DT_rpt.inc +++ b/www/VERM/VERM_AGENTS_DT_rpt.inc @@ -6,6 +6,7 @@ # CHANGELOG: # 220825-1632 - First build # 230106-1301 - Added auto-download for large page displays to avoid memory errors +# 240422-1750 - Added agent dead time section # # NANQUE, not an unanswered call? @@ -26,6 +27,8 @@ if (isset($_GET["sort_agent_sessions_detail"])) {$sort_agent_sessions_detail=$ elseif (isset($_POST["sort_agent_sessions_detail"])) {$sort_agent_sessions_detail=$_POST["sort_agent_sessions_detail"];} if (isset($_GET["sort_agent_pause_detail"])) {$sort_agent_pause_detail=$_GET["sort_agent_pause_detail"];} elseif (isset($_POST["sort_agent_pause_detail"])) {$sort_agent_pause_detail=$_POST["sort_agent_pause_detail"];} +if (isset($_GET["sort_agent_dead_detail"])) {$sort_agent_dead_detail=$_GET["sort_agent_dead_detail"];} + elseif (isset($_POST["sort_agent_dead_detail"])) {$sort_agent_dead_detail=$_POST["sort_agent_dead_detail"];} # No campaigns, need to query for all. $vicidial_user_log_SQL=preg_replace('/and campaign_id in \(\'\'\)/', '', $vicidial_user_log_SQL); @@ -35,11 +38,13 @@ if ($non_latin < 1) { $sort_agent_sessions_detail = preg_replace('/[^\s\-_0-9a-zA-Z]/','',$sort_agent_sessions_detail); $sort_agent_pause_detail = preg_replace('/[^\s\-_0-9a-zA-Z]/','',$sort_agent_pause_detail); + $sort_agent_dead_detail = preg_replace('/[^\s\-_0-9a-zA-Z]/','',$sort_agent_dead_detail); } else { $sort_agent_sessions_detail = preg_replace('/[^\s\-_0-9\p{L}]/u','',$sort_agent_sessions_detail); $sort_agent_pause_detail = preg_replace('/[^\s\-_0-9\p{L}]/u','',$sort_agent_pause_detail); + $sort_agent_dead_detail = preg_replace('/[^\s\-_0-9\p{L}]/u','',$sort_agent_dead_detail); } if (preg_match('/ desc$/', $sort_agent_pause_detail)) @@ -54,6 +59,18 @@ else } $sort_agent_pause_detail_preg=preg_replace('/ desc$/', '', $sort_agent_pause_detail); +if (preg_match('/ desc$/', $sort_agent_dead_detail)) + { + $sort_char="↓"; + $reverse_dead_link=preg_replace('/ desc$/', '', $sort_agent_dead_detail); + } +else + { + $sort_char="↑"; + $reverse_dead_link=$sort_agent_dead_detail." desc"; + } +$sort_agent_dead_detail_preg=preg_replace('/ desc$/', '', $sort_agent_dead_detail); + /* $start_date="2021-12-20"; $start_time="00:00:00"; @@ -499,6 +516,96 @@ $HTML_output.=""; $HTML_output.=""; ##################################### +####### AGENT DEAD DETAIL ########## +$sort_add_index=preg_replace('/ desc/', '', $sort_agent_dead_detail); +if (preg_match('/ desc$/', $sort_agent_dead_detail)) + { + $sort_char="↓"; + $reverse_link=preg_replace('/ desc$/', '', $sort_agent_dead_detail); + } +else + { + $sort_char="↑"; + $reverse_link=$sort_agent_dead_detail." desc"; + } +$sort_agent_dead_detail_preg=preg_replace('/ desc$/', '', $sort_agent_dead_detail); + + +$HTML_output.="

"._QXZ("Detail of agent dead time").":

"; # $NWB#VERM_AGENTS_DT-detail_of_agent_dead_time$NWE +$HTML_output.="
"; +$HTML_output.=""; + +$HTML_output.=""; +$HTML_output.="\n"; +$HTML_output.="\n"; +$HTML_output.="\n"; +$HTML_output.="\n"; + +$HTML_output.="\n"; + + +$CSV_output["agent_dead_details"]="\""._QXZ("Agent")."\",\""._QXZ("Agent ID")."\",\""._QXZ("Total Dead Time")."\",\""._QXZ("Average Dead Time")."\"\n"; +$CSV_output["auto_download"]="\""._QXZ("Agent")."\",\""._QXZ("Agent ID")."\",\""._QXZ("Total Dead Time")."\",\""._QXZ("Average Dead Time")."\"\n"; + +$agent_dead_stmt="select user, count(*) as calls, sec_to_time(sum(dead_sec)) as total_dead_time, sec_to_time(round(sum(dead_sec)/count(*))) as average_dead_time from vicidial_agent_log $vicidial_agent_log_SQL and lead_id is not null group by user"; +if ($DB) {$HTML_output.="$agent_dead_stmt";} +$agent_dead_rslt=mysql_to_mysqli($agent_dead_stmt, $link); +$agent_dead_array=array(); $i=0; +while ($agent_dead_row=mysqli_fetch_array($agent_dead_rslt)) + { + $user=$agent_dead_row["user"]; + $agentName=$fullname_info["$user"]; + + $agent_dead_array[$i]["user"]=$agentName; + $agent_dead_array[$i]["ID"]=$user; + $agent_dead_array[$i]["total_dead_time"]=$agent_dead_row["total_dead_time"]; + $agent_dead_array[$i]["average_dead_time"]=$agent_dead_row["average_dead_time"]; + $i++; + + } + +if (!$sort_add_index) {$sort_add_index="user";} + +if ($sort_add_index) + { + + $col = array_column( $agent_dead_array, "$sort_add_index" ); + if (preg_match('/ desc$/', $sort_agent_dead_detail)) + { + array_multisort( $col, SORT_DESC, SORT_STRING, $agent_dead_array ); + } + else + { + array_multisort( $col, SORT_ASC, SORT_STRING, $agent_dead_array ); + } + + # print_r($agent_dead_array); + } + +$q=0; +foreach ($agent_dead_array as $i => $row) + { + $q++; + + $HTML_output.=""; + $HTML_output.=""; + $HTML_output.=""; + $HTML_output.=""; + $HTML_output.=""; + $HTML_output.="\n"; + + if (!$download_rpt && $q%100==0) {echo $HTML_output; ob_flush(); flush(); $HTML_output="";} + + $CSV_output["agent_dead_details"].="\"".$row["user"]."\",\"".$row["ID"]."\",\"".$row["total_dead_time"]."\",\"".$row["average_dead_time"]."\"\n"; + $CSV_output["auto_download"].="\"".$row["user"]."\",\"".$row["ID"]."\",\"".$row["total_dead_time"]."\",\"".$row["average_dead_time"]."\"\n"; + } + +$HTML_output.=""; +$HTML_output.=""; +$HTML_output.=""; +$HTML_output.="
".$row["user"]."".$row["ID"]."".$row["total_dead_time"]."".$row["average_dead_time"]."
Export as...
"; +$HTML_output.=""; +##################################### if ($download_rpt) {