diff --git a/agc_2-X/trunk/www/vicidial/AST_agent_performance_detail.php b/agc_2-X/trunk/www/vicidial/AST_agent_performance_detail.php
index 8c2b9c8e..323d3df0 100644
--- a/agc_2-X/trunk/www/vicidial/AST_agent_performance_detail.php
+++ b/agc_2-X/trunk/www/vicidial/AST_agent_performance_detail.php
@@ -40,6 +40,7 @@
# 131010-1930 - Expanded user group column, added most recent user group
# 131019-1111 - Added user select
# 140108-0713 - Added webserver and hostname to report logging
+# 140319-1913 - Added option to show percentages for various fields
#
$startMS = microtime();
@@ -74,7 +75,8 @@ if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];}
elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];}
if (isset($_GET["report_display_type"])) {$report_display_type=$_GET["report_display_type"];}
elseif (isset($_POST["report_display_type"])) {$report_display_type=$_POST["report_display_type"];}
-
+if (isset($_GET["show_percentages"])) {$show_percentages=$_GET["show_percentages"];}
+ elseif (isset($_POST["show_percentages"])) {$show_percentages=$_POST["show_percentages"];}
if (strlen($shift)<2) {$shift='ALL';}
@@ -517,10 +519,12 @@ $HTML_text.="\n";
$HTML_text.="\n";
$HTML_text.="\n";
$HTML_text.="
\n";
+$HTML_text.="Show %'s\n";
+$HTML_text.="
";
$HTML_text.="Display as: ";
$HTML_text.="\n
";
+$HTML_text.="
\n";
$HTML_text.="$NWB#agent_performance_detail$NWE\n";
$HTML_text.=" | ";
@@ -582,7 +586,13 @@ $statusesHEAD='';
$CSV_header="\"Agent Performance Detail $NOW_TIME\"\n";
$CSV_header.="\"Time range: $query_date_BEGIN to $query_date_END\"\n\n";
$CSV_header.="\"---------- AGENTS Details -------------\"\n";
-$CSV_header.='"USER NAME","ID","CURRENT USER GROUP","MOST RECENT USER GROUP","CALLS","TIME","PAUSE","PAUSAVG","WAIT","WAITAVG","TALK","TALKAVG","DISPO","DISPAVG","DEAD","DEADAVG","CUSTOMER","CUSTAVG"';
+
+if ($show_percentages) {
+ $CSV_header.='"USER NAME","ID","CURRENT USER GROUP","MOST RECENT USER GROUP","CALLS","TIME","PAUSE","PAUSE %","PAUSAVG","WAIT","WAIT %","WAITAVG","TALK","TALK %","TALKAVG","DISPO","DISPO %","DISPAVG","DEAD","DEAD %","DEADAVG","CUSTOMER","CUSTOMER %","CUSTAVG"';
+} else {
+ $CSV_header.='"USER NAME","ID","CURRENT USER GROUP","MOST RECENT USER GROUP","CALLS","TIME","PAUSE","PAUSAVG","WAIT","WAITAVG","TALK","TALKAVG","DISPO","DISPAVG","DEAD","DEADAVG","CUSTOMER","CUSTAVG"';
+}
+
$statusesHTML='';
$statusesARY[0]='';
@@ -643,6 +653,7 @@ $CUST_graph=$graph_header." | CUST | ";
$CUSTAVG_graph=$graph_header."CUST AVG | ";
$i=0;
+$userTOTcalls=array();
while ($i < $rows_to_print)
{
$row=mysqli_fetch_row($rslt);
@@ -660,6 +671,8 @@ while ($i < $rows_to_print)
$user_group[$i] = $row[9];
$customer_sec[$i] = ($talk_sec[$i] - $dead_sec[$i]);
+ if (strlen($status[$i])>0) {$userTOTcalls[$row[3]]+=$row[0];}
+
$max_varname="max_".$status[$i];
$$max_varname=1;
@@ -668,11 +681,17 @@ while ($i < $rows_to_print)
if ( (!preg_match("/\-$status[$i]\-/i", $statuses)) and (strlen($status[$i])>0) )
{
$statusesTXT = sprintf("%8s", $status[$i]);
+
$statusesHEAD .= "----------+";
$statusesHTML .= " $statusesTXT |";
-
$CSV_header.=",\"$status[$i]\"";
+ if($show_percentages) {
+ $statusesHEAD .= "------------+";
+ $statusesHTML .= " $statusesTXT % |";
+ $CSV_header.=",\"$status[$i] %\"";
+ }
+
$statuses .= "$status[$i]-";
$statusesARY[$j] = $status[$i];
$j++;
@@ -693,9 +712,16 @@ $CSV_header.="\n";
$CSV_lines='';
$ASCII_text.="CALL STATS BREAKDOWN: (Statistics related to handling of calls only) [DOWNLOAD]\n";
-$ASCII_text.="+-----------------+----------+----------------------+----------------------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
-$ASCII_text.="| USER NAME | ID | CURRENT USER GROUP | MOST RECENT USER GRP | CALLS | TIME | PAUSE |PAUSAVG | WAIT |WAITAVG | TALK |TALKAVG | DISPO |DISPAVG | DEAD |DEADAVG | CUSTOMER |CUSTAVG |$statusesHTML\n";
-$ASCII_text.="+-----------------+----------+----------------------+----------------------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+
+if ($show_percentages) {
+ $ASCII_text.="+-----------------+----------+----------------------+----------------------+--------+-----------+----------+------------+--------+----------+------------+--------+----------+------------+--------+----------+------------+--------+----------+------------+--------+----------+------------+--------+$statusesHEAD\n";
+ $ASCII_text.="| USER NAME | ID | CURRENT USER GROUP | MOST RECENT USER GRP | CALLS | TIME | PAUSE | PAUSE % |PAUSAVG | WAIT | WAIT % |WAITAVG | TALK | TALK % |TALKAVG | DISPO | DISPO % |DISPAVG | DEAD | DEAD % |DEADAVG | CUSTOMER | CUSTOMER % |CUSTAVG |$statusesHTML\n";
+ $ASCII_text.="+-----------------+----------+----------------------+----------------------+--------+-----------+----------+------------+--------+----------+------------+--------+----------+------------+--------+----------+------------+--------+----------+------------+--------+----------+------------+--------+$statusesHEAD\n";
+} else {
+ $ASCII_text.="+-----------------+----------+----------------------+----------------------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+ $ASCII_text.="| USER NAME | ID | CURRENT USER GROUP | MOST RECENT USER GRP | CALLS | TIME | PAUSE |PAUSAVG | WAIT |WAITAVG | TALK |TALKAVG | DISPO |DISPAVG | DEAD |DEADAVG | CUSTOMER |CUSTAVG |$statusesHTML\n";
+ $ASCII_text.="+-----------------+----------+----------------------+----------------------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+}
### BEGIN loop through each user ###
@@ -726,6 +752,12 @@ while ($m < $k)
$SstatusesHTML='';
$CSVstatuses='';
+ $Stalk_sec_pct=0;
+ $Spause_sec_pct=0;
+ $Swait_sec_pct=0;
+ $Sdispo_sec_pct=0;
+ $Sdead_sec_pct=0;
+
### BEGIN loop through each status ###
$n=0;
while ($n < $j)
@@ -757,6 +789,12 @@ while ($m < $k)
$CSVstatuses.=",\"$calls[$i]\"";
+ if ($show_percentages) {
+ $SstatusTXT_pct=sprintf("%8s", sprintf("%0.2f", ZeroDivisionCheck(100*$calls[$i], $userTOTcalls[$Suser])));
+ $SstatusesHTML .= " $SstatusTXT_pct % |";
+ $CSVstatuses.=",\"$SstatusTXT_pct %\"";
+ }
+
$status_found++;
}
$i++;
@@ -765,6 +803,10 @@ while ($m < $k)
{
$SstatusesHTML .= " 0 |";
$CSVstatuses.=",\"0\"";
+ if ($show_percentages) {
+ $SstatusesHTML .= " 0.00 % |";
+ $CSVstatuses.=",\"0.00 %\"";
+ }
$graph_stats[$m][(15+$n)]=0;
}
### END loop through each stat line ###
@@ -781,18 +823,13 @@ while ($m < $k)
$TOTtotDEAD=($TOTtotDEAD + $Sdead_sec);
$TOTtotCUSTOMER=($TOTtotCUSTOMER + $Scustomer_sec);
$Stime = ($Stalk_sec + $Spause_sec + $Swait_sec + $Sdispo_sec);
- if ( ($Scalls > 0) and ($Stalk_sec > 0) ) {$Stalk_avg = ($Stalk_sec/$Scalls);}
- else {$Stalk_avg=0;}
- if ( ($Scalls > 0) and ($Spause_sec > 0) ) {$Spause_avg = ($Spause_sec/$Scalls);}
- else {$Spause_avg=0;}
- if ( ($Scalls > 0) and ($Swait_sec > 0) ) {$Swait_avg = ($Swait_sec/$Scalls);}
- else {$Swait_avg=0;}
- if ( ($Scalls > 0) and ($Sdispo_sec > 0) ) {$Sdispo_avg = ($Sdispo_sec/$Scalls);}
- else {$Sdispo_avg=0;}
- if ( ($Scalls > 0) and ($Sdead_sec > 0) ) {$Sdead_avg = ($Sdead_sec/$Scalls);}
- else {$Sdead_avg=0;}
- if ( ($Scalls > 0) and ($Scustomer_sec > 0) ) {$Scustomer_avg = ($Scustomer_sec/$Scalls);}
- else {$Scustomer_avg=0;}
+
+ $Stalk_avg = ZeroDivisionCheck($Stalk_sec, $Scalls);
+ $Spause_avg = ZeroDivisionCheck($Spause_sec, $Scalls);
+ $Swait_avg = ZeroDivisionCheck($Swait_sec, $Scalls);
+ $Sdispo_avg = ZeroDivisionCheck($Sdispo_sec, $Scalls);
+ $Sdead_avg = ZeroDivisionCheck($Sdead_sec, $Scalls);
+ $Scustomer_avg = ZeroDivisionCheck($Scustomer_sec, $Scalls);
$RAWuser = $Suser;
$RAWcalls = $Scalls;
@@ -850,41 +887,62 @@ while ($m < $k)
$graph_stats[$m][12]=trim($Sdead_avg);
$graph_stats[$m][13]=trim($Scustomer_sec);
$graph_stats[$m][14]=trim($Scustomer_avg);
-
- $pfUSERtime_MS = sec_convert($Stime,'H');
- $pfUSERtotTALK_MS = sec_convert($Stalk_sec,'H');
- $pfUSERavgTALK_MS = sec_convert($Stalk_avg,'M');
- $USERtotPAUSE_MS = sec_convert($Spause_sec,'H');
- $USERavgPAUSE_MS = sec_convert($Spause_avg,'M');
- $USERtotWAIT_MS = sec_convert($Swait_sec,'H');
- $USERavgWAIT_MS = sec_convert($Swait_avg,'M');
- $USERtotDISPO_MS = sec_convert($Sdispo_sec,'H');
- $USERavgDISPO_MS = sec_convert($Sdispo_avg,'M');
- $USERtotDEAD_MS = sec_convert($Sdead_sec,'H');
- $USERavgDEAD_MS = sec_convert($Sdead_avg,'M');
- $USERtotCUSTOMER_MS = sec_convert($Scustomer_sec,'H');
- $USERavgCUSTOMER_MS = sec_convert($Scustomer_avg,'M');
+
- $pfUSERtime_MS = sprintf("%9s", $pfUSERtime_MS);
- $pfUSERtotTALK_MS = sprintf("%8s", $pfUSERtotTALK_MS);
- $pfUSERavgTALK_MS = sprintf("%6s", $pfUSERavgTALK_MS);
- $pfUSERtotPAUSE_MS = sprintf("%8s", $USERtotPAUSE_MS);
- $pfUSERavgPAUSE_MS = sprintf("%6s", $USERavgPAUSE_MS);
- $pfUSERtotWAIT_MS = sprintf("%8s", $USERtotWAIT_MS);
- $pfUSERavgWAIT_MS = sprintf("%6s", $USERavgWAIT_MS);
- $pfUSERtotDISPO_MS = sprintf("%8s", $USERtotDISPO_MS);
- $pfUSERavgDISPO_MS = sprintf("%6s", $USERavgDISPO_MS);
- $pfUSERtotDEAD_MS = sprintf("%8s", $USERtotDEAD_MS);
- $pfUSERavgDEAD_MS = sprintf("%6s", $USERavgDEAD_MS);
- $pfUSERtotCUSTOMER_MS = sprintf("%8s", $USERtotCUSTOMER_MS);
- $pfUSERavgCUSTOMER_MS = sprintf("%6s", $USERavgCUSTOMER_MS);
+ $pfUSERtime_MS = sec_convert($Stime,'H');
+ $pfUSERtotTALK_MS = sec_convert($Stalk_sec,'H');
+ $pfUSERtotTALK_MS_pct = sprintf("%0.2f", ZeroDivisionCheck(100*$Stalk_sec, $Stime));
+ $pfUSERavgTALK_MS = sec_convert($Stalk_avg,'M');
+ $USERtotPAUSE_MS = sec_convert($Spause_sec,'H');
+ $pfUSERtotPAUSE_MS_pct = sprintf("%0.2f", ZeroDivisionCheck(100*$Spause_sec, $Stime));
+ $USERavgPAUSE_MS = sec_convert($Spause_avg,'M');
+ $USERtotWAIT_MS = sec_convert($Swait_sec,'H');
+ $pfUSERtotWAIT_MS_pct = sprintf("%0.2f", ZeroDivisionCheck(100*$Swait_sec, $Stime));
+ $USERavgWAIT_MS = sec_convert($Swait_avg,'M');
+ $USERtotDISPO_MS = sec_convert($Sdispo_sec,'H');
+ $pfUSERtotDISPO_MS_pct = sprintf("%0.2f", ZeroDivisionCheck(100*$Sdispo_sec, $Stime));
+ $USERavgDISPO_MS = sec_convert($Sdispo_avg,'M');
+ $USERtotDEAD_MS = sec_convert($Sdead_sec,'H');
+ $pfUSERtotDEAD_MS_pct = sprintf("%0.2f", ZeroDivisionCheck(100*$Sdead_sec, $Stime));
+ $USERavgDEAD_MS = sec_convert($Sdead_avg,'M');
+ $USERtotCUSTOMER_MS = sec_convert($Scustomer_sec,'H');
+ $pfUSERtotCUSTOMER_MS_pct = sprintf("%0.2f", ZeroDivisionCheck(100*$Scustomer_sec, $Stime));
+ $USERavgCUSTOMER_MS = sec_convert($Scustomer_avg,'M');
+
+ $pfUSERtime_MS = sprintf("%9s", $pfUSERtime_MS);
+ $pfUSERtotTALK_MS = sprintf("%8s", $pfUSERtotTALK_MS);
+ $pfUSERtotTALK_MS_pct = sprintf("%8s", $pfUSERtotTALK_MS_pct);
+ $pfUSERavgTALK_MS = sprintf("%6s", $pfUSERavgTALK_MS);
+ $pfUSERtotPAUSE_MS = sprintf("%8s", $USERtotPAUSE_MS);
+ $pfUSERtotPAUSE_MS_pct = sprintf("%8s", $pfUSERtotPAUSE_MS_pct);
+ $pfUSERavgPAUSE_MS = sprintf("%6s", $USERavgPAUSE_MS);
+ $pfUSERtotWAIT_MS = sprintf("%8s", $USERtotWAIT_MS);
+ $pfUSERtotWAIT_MS_pct = sprintf("%8s", $pfUSERtotWAIT_MS_pct);
+ $pfUSERavgWAIT_MS = sprintf("%6s", $USERavgWAIT_MS);
+ $pfUSERtotDISPO_MS = sprintf("%8s", $USERtotDISPO_MS);
+ $pfUSERtotDISPO_MS_pct = sprintf("%8s", $pfUSERtotDISPO_MS_pct);
+ $pfUSERavgDISPO_MS = sprintf("%6s", $USERavgDISPO_MS);
+ $pfUSERtotDEAD_MS = sprintf("%8s", $USERtotDEAD_MS);
+ $pfUSERtotDEAD_MS_pct = sprintf("%8s", $pfUSERtotDEAD_MS_pct);
+ $pfUSERavgDEAD_MS = sprintf("%6s", $USERavgDEAD_MS);
+ $pfUSERtotCUSTOMER_MS = sprintf("%8s", $USERtotCUSTOMER_MS);
+ $pfUSERtotCUSTOMER_MS_pct = sprintf("%8s", $pfUSERtotCUSTOMER_MS_pct);
+ $pfUSERavgCUSTOMER_MS = sprintf("%6s", $USERavgCUSTOMER_MS);
$PAUSEtotal[$m] = $pfUSERtotPAUSE_MS;
- $Toutput = "| $Sfull_name | $Suser | $Suser_group | $Slast_user_group | $Scalls | $pfUSERtime_MS | $pfUSERtotPAUSE_MS | $pfUSERavgPAUSE_MS | $pfUSERtotWAIT_MS | $pfUSERavgWAIT_MS | $pfUSERtotTALK_MS | $pfUSERavgTALK_MS | $pfUSERtotDISPO_MS | $pfUSERavgDISPO_MS | $pfUSERtotDEAD_MS | $pfUSERavgDEAD_MS | $pfUSERtotCUSTOMER_MS | $pfUSERavgCUSTOMER_MS |$SstatusesHTML\n";
+ if ($show_percentages) {
+ $Toutput = "| $Sfull_name | $Suser | $Suser_group | $Slast_user_group | $Scalls | $pfUSERtime_MS | $pfUSERtotPAUSE_MS | $pfUSERtotPAUSE_MS_pct % | $pfUSERavgPAUSE_MS | $pfUSERtotWAIT_MS | $pfUSERtotWAIT_MS_pct % | $pfUSERavgWAIT_MS | $pfUSERtotTALK_MS | $pfUSERtotTALK_MS_pct % | $pfUSERavgTALK_MS | $pfUSERtotDISPO_MS | $pfUSERtotDISPO_MS_pct % | $pfUSERavgDISPO_MS | $pfUSERtotDEAD_MS | $pfUSERtotDEAD_MS_pct % | $pfUSERavgDEAD_MS | $pfUSERtotCUSTOMER_MS | $pfUSERtotCUSTOMER_MS_pct % | $pfUSERavgCUSTOMER_MS |$SstatusesHTML\n";
+ } else {
+ $Toutput = "| $Sfull_name | $Suser | $Suser_group | $Slast_user_group | $Scalls | $pfUSERtime_MS | $pfUSERtotPAUSE_MS | $pfUSERavgPAUSE_MS | $pfUSERtotWAIT_MS | $pfUSERavgWAIT_MS | $pfUSERtotTALK_MS | $pfUSERavgTALK_MS | $pfUSERtotDISPO_MS | $pfUSERavgDISPO_MS | $pfUSERtotDEAD_MS | $pfUSERavgDEAD_MS | $pfUSERtotCUSTOMER_MS | $pfUSERavgCUSTOMER_MS |$SstatusesHTML\n";
+ }
$CSV_lines.="\"$Sfull_nameRAW\",";
- $CSV_lines.=preg_replace('/\s/', '', "\"$SuserRAW\",\"$Suser_group\",\"$Slast_user_group\",\"$Scalls\",\"$pfUSERtime_MS\",\"$pfUSERtotPAUSE_MS\",\"$pfUSERavgPAUSE_MS\",\"$pfUSERtotWAIT_MS\",\"$pfUSERavgWAIT_MS\",\"$pfUSERtotTALK_MS\",\"$pfUSERavgTALK_MS\",\"$pfUSERtotDISPO_MS\",\"$pfUSERavgDISPO_MS\",\"$pfUSERtotDEAD_MS\",\"$pfUSERavgDEAD_MS\",\"$pfUSERtotCUSTOMER_MS\",\"$pfUSERavgCUSTOMER_MS\"$CSVstatuses");
+ if ($show_percentages) {
+ $CSV_lines.=preg_replace('/\s/', '', "\"$SuserRAW\",\"$Suser_group\",\"$Slast_user_group\",\"$Scalls\",\"$pfUSERtime_MS\",\"$pfUSERtotPAUSE_MS\",\"$pfUSERtotPAUSE_MS_pct\",\"$pfUSERavgPAUSE_MS\",\"$pfUSERtotWAIT_MS\",\"$pfUSERtotWAIT_MS_pct\",\"$pfUSERavgWAIT_MS\",\"$pfUSERtotTALK_MS\",\"$pfUSERtotTALK_MS_pct\",\"$pfUSERavgTALK_MS\",\"$pfUSERtotDISPO_MS\",\"$pfUSERtotDISPO_MS_pct\",\"$pfUSERavgDISPO_MS\",\"$pfUSERtotDEAD_MS\",\"$pfUSERtotDEAD_MS_pct\",\"$pfUSERavgDEAD_MS\",\"$pfUSERtotCUSTOMER_MS\",\"$pfUSERtotCUSTOMER_MS_pct\",\"$pfUSERavgCUSTOMER_MS\"$CSVstatuses");
+ } else {
+ $CSV_lines.=preg_replace('/\s/', '', "\"$SuserRAW\",\"$Suser_group\",\"$Slast_user_group\",\"$Scalls\",\"$pfUSERtime_MS\",\"$pfUSERtotPAUSE_MS\",\"$pfUSERavgPAUSE_MS\",\"$pfUSERtotWAIT_MS\",\"$pfUSERavgWAIT_MS\",\"$pfUSERtotTALK_MS\",\"$pfUSERavgTALK_MS\",\"$pfUSERtotDISPO_MS\",\"$pfUSERavgDISPO_MS\",\"$pfUSERtotDEAD_MS\",\"$pfUSERavgDEAD_MS\",\"$pfUSERtotCUSTOMER_MS\",\"$pfUSERavgCUSTOMER_MS\"$CSVstatuses");
+ }
$CSV_lines.="\n";
$TOPsorted_output[$m] = $Toutput;
@@ -952,6 +1010,10 @@ while ($n < $j)
if ($status_found < 1)
{
$SUMstatusesHTML .= " 0 |";
+ if ($show_percentages) {
+ $SUMstatusesHTML .= " 0.00 % |";
+ $CSVSUMstatuses.=",\"0.00 %\"";
+ }
$$total_var=0;
}
else
@@ -959,6 +1021,11 @@ while ($n < $j)
$SUMstatusTXT = sprintf("%8s", $Scalls);
$SUMstatusesHTML .= " $SUMstatusTXT |";
$CSVSUMstatuses.=",\"$Scalls\"";
+ if ($show_percentages) {
+ $SstatusTXT_pct=sprintf("%8s", sprintf("%0.2f", ZeroDivisionCheck(100*$Scalls,$TOTcalls)));
+ $SUMstatusesHTML .= " $SstatusTXT_pct % |";
+ $CSVSUMstatuses.=",\"$SstatusTXT_pct %\"";
+ }
$$total_var=$Scalls;
}
$n++;
@@ -988,6 +1055,12 @@ $TOTtotDEAD_MS = sec_convert($TOTtotDEAD,'H');
$TOTtotPAUSE_MS = sec_convert($TOTtotPAUSE,'H');
$TOTtotWAIT_MS = sec_convert($TOTtotWAIT,'H');
$TOTtotCUSTOMER_MS = sec_convert($TOTtotCUSTOMER,'H');
+$TOTtotTALK_MS_pct = sprintf("%0.2f", ZeroDivisionCheck(100*$TOTtotTALK, $TOTtime));
+$TOTtotDISPO_MS_pct = sprintf("%0.2f", ZeroDivisionCheck(100*$TOTtotDISPO, $TOTtime));
+$TOTtotDEAD_MS_pct = sprintf("%0.2f", ZeroDivisionCheck(100*$TOTtotDEAD, $TOTtime));
+$TOTtotPAUSE_MS_pct = sprintf("%0.2f", ZeroDivisionCheck(100*$TOTtotPAUSE, $TOTtime));
+$TOTtotWAIT_MS_pct = sprintf("%0.2f", ZeroDivisionCheck(100*$TOTtotWAIT, $TOTtime));
+$TOTtotCUSTOMER_MS_pct =sprintf("%0.2f", ZeroDivisionCheck(100*$TOTtotCUSTOMER, $TOTtime));
$TOTavgTALK_MS = sec_convert($TOTavgTALK,'M');
$TOTavgDISPO_MS = sec_convert($TOTavgDISPO,'H');
$TOTavgDEAD_MS = sec_convert($TOTavgDEAD,'H');
@@ -1002,6 +1075,12 @@ $TOTtotDEAD_MS = sprintf("%10s", $TOTtotDEAD_MS);
$TOTtotPAUSE_MS = sprintf("%10s", $TOTtotPAUSE_MS);
$TOTtotWAIT_MS = sprintf("%10s", $TOTtotWAIT_MS);
$TOTtotCUSTOMER_MS = sprintf("%10s", $TOTtotCUSTOMER_MS);
+$TOTtotTALK_MS_pct = sprintf("%8s", $TOTtotTALK_MS_pct);
+$TOTtotDISPO_MS_pct = sprintf("%8s", $TOTtotDISPO_MS_pct);
+$TOTtotDEAD_MS_pct = sprintf("%8s", $TOTtotDEAD_MS_pct);
+$TOTtotPAUSE_MS_pct = sprintf("%8s", $TOTtotPAUSE_MS_pct);
+$TOTtotWAIT_MS_pct = sprintf("%8s", $TOTtotWAIT_MS_pct);
+$TOTtotCUSTOMER_MS_pct = sprintf("%8s", $TOTtotCUSTOMER_MS_pct);
$TOTavgTALK_MS = sprintf("%6s", $TOTavgTALK_MS);
$TOTavgDISPO_MS = sprintf("%6s", $TOTavgDISPO_MS);
$TOTavgDEAD_MS = sprintf("%6s", $TOTavgDEAD_MS);
@@ -1023,11 +1102,15 @@ while(strlen($TOTavgPAUSE_MS)>6) {$TOTavgPAUSE_MS = substr("$TOTavgPAUSE_MS", 0,
while(strlen($TOTavgWAIT_MS)>6) {$TOTavgWAIT_MS = substr("$TOTavgWAIT_MS", 0, -1);}
while(strlen($TOTavgCUSTOMER_MS)>6) {$TOTavgCUSTOMER_MS = substr("$TOTavgCUSTOMER_MS", 0, -1);}
-
-$ASCII_text.="+-----------------+----------+----------------------+----------------------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
-$ASCII_text.="| TOTALS AGENTS:$TOT_AGENTS | $TOTcalls| $TOTtime_MS|$TOTtotPAUSE_MS| $TOTavgPAUSE_MS |$TOTtotWAIT_MS| $TOTavgWAIT_MS |$TOTtotTALK_MS| $TOTavgTALK_MS |$TOTtotDISPO_MS| $TOTavgDISPO_MS |$TOTtotDEAD_MS| $TOTavgDEAD_MS |$TOTtotCUSTOMER_MS| $TOTavgCUSTOMER_MS |$SUMstatusesHTML\n";
-$ASCII_text.="+-----------------+----------+----------------------+----------------------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
-
+if ($show_percentages) {
+ $ASCII_text.="+-----------------+----------+----------------------+----------------------+--------+-----------+----------+------------+--------+----------+------------+--------+----------+------------+--------+----------+------------+--------+----------+------------+--------+----------+------------+--------+$statusesHEAD\n";
+ $ASCII_text.="| TOTALS AGENTS:$TOT_AGENTS | $TOTcalls| $TOTtime_MS|$TOTtotPAUSE_MS| $TOTtotPAUSE_MS_pct % | $TOTavgPAUSE_MS |$TOTtotWAIT_MS| $TOTtotWAIT_MS_pct % | $TOTavgWAIT_MS |$TOTtotTALK_MS| $TOTtotTALK_MS_pct % | $TOTavgTALK_MS |$TOTtotDISPO_MS| $TOTtotDISPO_MS_pct % | $TOTavgDISPO_MS |$TOTtotDEAD_MS| $TOTtotDEAD_MS_pct % | $TOTavgDEAD_MS |$TOTtotCUSTOMER_MS| $TOTtotCUSTOMER_MS_pct % | $TOTavgCUSTOMER_MS |$SUMstatusesHTML\n";
+ $ASCII_text.="+-----------------+----------+----------------------+----------------------+--------+-----------+----------+------------+--------+----------+------------+--------+----------+------------+--------+----------+------------+--------+----------+------------+--------+----------+------------+--------+$statusesHEAD\n";
+} else {
+ $ASCII_text.="+-----------------+----------+----------------------+----------------------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+ $ASCII_text.="| TOTALS AGENTS:$TOT_AGENTS | $TOTcalls| $TOTtime_MS|$TOTtotPAUSE_MS| $TOTavgPAUSE_MS |$TOTtotWAIT_MS| $TOTavgWAIT_MS |$TOTtotTALK_MS| $TOTavgTALK_MS |$TOTtotDISPO_MS| $TOTavgDISPO_MS |$TOTtotDEAD_MS| $TOTavgDEAD_MS |$TOTtotCUSTOMER_MS| $TOTavgCUSTOMER_MS |$SUMstatusesHTML\n";
+ $ASCII_text.="+-----------------+----------+----------------------+----------------------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+}
for ($e=0; $e".$graph_stats[$d][0]." | ".$graph_stats[$d][1]." | ";
- $TIME_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][2], 'HF')." |
";
- $PAUSE_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][3], 'HF')." |
";
- $PAUSEAVG_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][4], 'HF')." |
";
- $WAIT_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][5], 'HF')." |
";
- $WAITAVG_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][6], 'HF')." |
";
- $TALK_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][7], 'HF')." |
";
- $TALKAVG_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][8], 'HF')." |
";
- $DISPO_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][9], 'HF')." |
";
- $DISPOAVG_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][10], 'HF')." |
";
- $DEAD_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][11], 'HF')." |
";
- $DEADAVG_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][12], 'HF')." |
";
- $CUST_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][13], 'HF')." |
";
- $CUSTAVG_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][14], 'HF')." |
";
+ $CALLS_graph.=" | ".$graph_stats[$d][0]." | ".$graph_stats[$d][1]." |
";
+ $TIME_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][2], 'HF')." |
";
+ $PAUSE_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][3], 'HF')." |
";
+ $PAUSEAVG_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][4], 'HF')." |
";
+ $WAIT_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][5], 'HF')." |
";
+ $WAITAVG_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][6], 'HF')." |
";
+ $TALK_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][7], 'HF')." |
";
+ $TALKAVG_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][8], 'HF')." |
";
+ $DISPO_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][9], 'HF')." |
";
+ $DISPOAVG_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][10], 'HF')." |
";
+ $DEAD_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][11], 'HF')." |
";
+ $DEADAVG_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][12], 'HF')." |
";
+ $CUST_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][13], 'HF')." |
";
+ $CUSTAVG_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][14], 'HF')." |
";
for ($e=0; $e ".$$max_varname." //-->\n";
- $$varname.=" | ".$graph_stats[$d][0]." | ".$graph_stats[$d][($e+15)]." |
";
+ $$varname.=" | ".$graph_stats[$d][0]." | ".$graph_stats[$d][($e+15)]." |
";
}
}
@@ -1124,8 +1207,11 @@ $GRAPH3="
$GRAPH_text.=$JS_text.$GRAPH.$GRAPH2.$GRAPH3;
-
-$CSV_total=preg_replace('/\s/', '', "\"\",\"\",\"TOTALS\",\"AGENTS:$TOT_AGENTS\",\"$TOTcalls\",\"$TOTtime_MS\",\"$TOTtotPAUSE_MS\",\"$TOTavgPAUSE_MS\",\"$TOTtotWAIT_MS\",\"$TOTavgWAIT_MS\",\"$TOTtotTALK_MS\",\"$TOTavgTALK_MS\",\"$TOTtotDISPO_MS\",\"$TOTavgDISPO_MS\",\"$TOTtotDEAD_MS\",\"$TOTavgDEAD_MS\",\"$TOTtotCUSTOMER_MS\",\"$TOTavgCUSTOMER_MS\"$CSVSUMstatuses");
+if ($show_percentages) {
+ $CSV_total=preg_replace('/\s/', '', "\"\",\"\",\"TOTALS\",\"AGENTS:$TOT_AGENTS\",\"$TOTcalls\",\"$TOTtime_MS\",\"$TOTtotPAUSE_MS\",\"$TOTtotPAUSE_MS_pct %\",\"$TOTavgPAUSE_MS\",\"$TOTtotWAIT_MS\",\"$TOTtotWAIT_MS_pct %\",\"$TOTavgWAIT_MS\",\"$TOTtotTALK_MS\",\"$TOTtotTALK_MS_pct %\",\"$TOTavgTALK_MS\",\"$TOTtotDISPO_MS\",\"$TOTtotDISPO_MS_pct %\",\"$TOTavgDISPO_MS\",\"$TOTtotDEAD_MS\",\"$TOTtotDEAD_MS_pct %\",\"$TOTavgDEAD_MS\",\"$TOTtotCUSTOMER_MS\",\"$TOTtotCUSTOMER_MS_pct %\",\"$TOTavgCUSTOMER_MS\"$CSVSUMstatuses\n\n");
+} else {
+ $CSV_total=preg_replace('/\s/', '', "\"\",\"\",\"TOTALS\",\"AGENTS:$TOT_AGENTS\",\"$TOTcalls\",\"$TOTtime_MS\",\"$TOTtotPAUSE_MS\",\"$TOTavgPAUSE_MS\",\"$TOTtotWAIT_MS\",\"$TOTavgWAIT_MS\",\"$TOTtotTALK_MS\",\"$TOTavgTALK_MS\",\"$TOTtotDISPO_MS\",\"$TOTavgDISPO_MS\",\"$TOTtotDEAD_MS\",\"$TOTavgDEAD_MS\",\"$TOTtotCUSTOMER_MS\",\"$TOTavgCUSTOMER_MS\"$CSVSUMstatuses\n\n");
+}
if ($file_download == 1)
{
@@ -1466,16 +1552,16 @@ for ($e=0; $e| ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][1], 'H')." | |
";
- $NONPAUSE_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][2], 'H')." |
";
- $PAUSE_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][3], 'H')." |
";
+ $TOTAL_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][1], 'H')." |
";
+ $NONPAUSE_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][2], 'H')." |
";
+ $PAUSE_graph.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][3], 'H')." |
";
for ($e=0; $e".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][($e+4)], 'H')." | ";
+ $$varname.=" | ".$graph_stats[$d][0]." | ".sec_convert($graph_stats[$d][($e+4)], 'H')." |
";
}
}
diff --git a/agc_2-X/trunk/www/vicidial/functions.php b/agc_2-X/trunk/www/vicidial/functions.php
index f3bc297e..5c4b6502 100644
--- a/agc_2-X/trunk/www/vicidial/functions.php
+++ b/agc_2-X/trunk/www/vicidial/functions.php
@@ -17,6 +17,7 @@
# 130615-2111 - Added user authentication function and login lockout for 15 minutes after 10 failed login
# 130705-1957 - Added password encryption compatibility
# 130831-0919 - Changed to mysqli PHP functions
+# 140319-1924 - Added ZeroDivisionCheck function
#
##### BEGIN validate user login credentials, check for failed lock out #####
@@ -406,4 +407,11 @@ function mysql_to_mysqli($stmt, $link) {
return $rslt;
}
+function ZeroDivisionCheck($dividend, $divisor) {
+ if ($divisor>0) {
+ return ($dividend/$divisor);
+ } else {
+ return 0;
+ }
+}
?>