diff --git a/agc_2-X/trunk/UPGRADE b/agc_2-X/trunk/UPGRADE index 2f400239..066f7b55 100644 --- a/agc_2-X/trunk/UPGRADE +++ b/agc_2-X/trunk/UPGRADE @@ -642,6 +642,8 @@ OTHER CHANGES: 144. Added last_inbound_call_time and last_inbound_call_finish Next Agent Call routing options to in-groups. +145. Added CSV download option to almost all reports. + diff --git a/agc_2-X/trunk/www/vicidial/AST_CLOSER_service_level.php b/agc_2-X/trunk/www/vicidial/AST_CLOSER_service_level.php index a722eafd..39da9f40 100644 --- a/agc_2-X/trunk/www/vicidial/AST_CLOSER_service_level.php +++ b/agc_2-X/trunk/www/vicidial/AST_CLOSER_service_level.php @@ -1,7 +1,7 @@ LICENSE: AGPLv2 +# Copyright (C) 2011 Matt Florell LICENSE: AGPLv2 # # CHANGES # @@ -17,6 +17,7 @@ # 100712-1324 - Added system setting slave server option # 100802-2347 - Added User Group Allowed Reports option validation # 100914-1326 - Added lookup for user_level 7 users to set to reports only which will remove other admin links +# 110703-1756 - Added download option # require("dbconnect.php"); @@ -36,6 +37,8 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];} elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); @@ -49,7 +52,7 @@ $db_source = 'M'; ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin,outbound_autodial_active,slave_db_server,reports_use_slave_db FROM system_settings;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); if ($qm_conf_ct > 0) { @@ -68,18 +71,18 @@ if ( (strlen($slave_db_server)>5) and (preg_match("/$report_name/",$reports_use_ $use_slave_server=1; $db_source = 'S'; require("dbconnect.php"); - echo "\n"; + $MAIN.="\n"; } $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $auth=$row[0]; $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level='7' and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $reports_only_user=$row[0]; @@ -93,13 +96,13 @@ if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) } $stmt="SELECT user_group from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGuser_group = $row[0]; $stmt="SELECT allowed_campaigns,allowed_reports from vicidial_user_groups where user_group='$LOGuser_group';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGallowed_campaigns = $row[0]; @@ -122,7 +125,7 @@ if (!isset($end_date)) {$end_date = $NOW_DATE;} $stmt="select group_id,group_name from vicidial_inbound_groups order by group_id;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $groups_to_print = mysql_num_rows($rslt); $i=0; while ($i < $groups_to_print) @@ -132,95 +135,92 @@ while ($i < $groups_to_print) $group_names[$i] = $row[1]; $i++; } -?> - - - +$HEADER.="\n"; +$HEADER.="\n"; +$HEADER.="\n"; -\n"; -echo "\n"; +$HEADER.="\n"; +$HEADER.="\n"; -echo "\n"; -echo "$report_name\n"; +$HEADER.="\n"; +$HEADER.="$report_name\n"; $short_header=1; -require("admin_header.php"); +# require("admin_header.php"); -echo "
"; +$MAIN.="
"; -echo "
\n"; -echo ""; +$MAIN.="\n"; +$MAIN.=""; -?> - -\n"; +$MAIN.="var o_cal = new tcal ({\n"; +$MAIN.=" // form name\n"; +$MAIN.=" 'formname': 'vicidial_report',\n"; +$MAIN.=" // input name\n"; +$MAIN.=" 'controlname': 'query_date'\n"; +$MAIN.="});\n"; +$MAIN.="o_cal.a_tpl.yearscroll = false;\n"; +$MAIN.="// o_cal.a_tpl.weekstart = 1; // Monday week start\n"; +$MAIN.="\n"; -echo " to "; +$MAIN.=" to "; -?> - -\n"; +$MAIN.="var o_cal = new tcal ({\n"; +$MAIN.=" // form name\n"; +$MAIN.=" 'formname': 'vicidial_report',\n"; +$MAIN.=" // input name\n"; +$MAIN.=" 'controlname': 'end_date'\n"; +$MAIN.="});\n"; +$MAIN.="o_cal.a_tpl.yearscroll = false;\n"; +$MAIN.="// o_cal.a_tpl.weekstart = 1; // Monday week start\n"; +$MAIN.="\n"; -echo "\n"; $o=0; while ($groups_to_print > $o) { - if ($groups[$o] == $group) {echo "\n";} - else {echo "\n";} + if ($groups[$o] == $group) {$MAIN.="\n";} + else {$MAIN.="\n";} $o++; } -echo "\n"; -echo "\n"; -echo "\n"; -echo "           MODIFY | REPORTS \n"; -echo "
\n\n"; +$MAIN.="\n"; +$MAIN.="\n"; +$MAIN.="\n"; +$MAIN.="           DOWNLOAD | MODIFY | REPORTS \n"; +$MAIN.="\n\n"; -echo "
\n\n";
+$MAIN.="
\n\n";
 
 
 if (!$group)
 	{
-	echo "\n\n";
-	echo "PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
+	$MAIN.="\n\n";
+	$MAIN.="PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
+	echo "$HEADER";
+	require("admin_header.php");
+	echo "$MAIN";
 	}
 
 else
@@ -305,10 +305,13 @@ if ( ($EQsec < $SQsec) and ($DURATIONday < 1) )
 	$DURATIONday++;
 	}
 
-echo "Inbound Service Level Report                      $NOW_TIME\n";
-echo "\n";
-echo "Time range $DURATIONday days: $query_date_BEGIN to $query_date_END\n\n";
+$MAIN.="Inbound Service Level Report                      $NOW_TIME\n";
+$MAIN.="\n";
+$MAIN.="Time range $DURATIONday days: $query_date_BEGIN to $query_date_END\n\n";
 #echo "Time range day sec: $SQsec - $EQsec   Day range in epoch: $SQepoch - $EQepoch   Start: $SQepochDAY\n";
+$CSV_text.="\"Inbound Service Level Report\",\"$NOW_TIME\"\n";
+$CSV_text.="\n";
+$CSV_text.="\"Time range $DURATIONday days:\",\"$query_date_BEGIN to $query_date_END\"\n\n";
 
 $d=0;
 while ($d < $DURATIONday)
@@ -414,7 +417,7 @@ $TOTintervals = $j;
 ### GRAB ALL RECORDS WITHIN RANGE FROM THE DATABASE ###
 $stmt="select queue_seconds,UNIX_TIMESTAMP(call_date),length_in_sec,status from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "';";
 $rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
+if ($DB) {$MAIN.="$stmt\n";}
 $records_to_grab = mysql_num_rows($rslt);
 $i=0;
 while ($i < $records_to_grab)
@@ -533,11 +536,12 @@ while ($j < $TOTintervals)
 
 ###################################################
 ### TOTALS SUMMARY SECTION ###
-echo "+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
-echo "|                                           |        |        |        |        |        |  AVG   |  AVG   |        |  TOTAL   |  AVG   |\n";
-echo "| SHIFT                                     |        |        |  AVG   |        |        | HOLD(s)| HOLD(s)|        | CALLTIME |CALLTIME|\n";
-echo "| DATE-TIME RANGE                           | DROPS  | DROP % | DROP(s)| HOLD   | HOLD % |  HOLD  | TOTAL  | CALLS  | MIN:SEC  |SECONDS |\n";
-echo "+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
+$MAIN.="+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
+$MAIN.="|                                           |        |        |        |        |        |  AVG   |  AVG   |        |  TOTAL   |  AVG   |\n";
+$MAIN.="| SHIFT                                     |        |        |  AVG   |        |        | HOLD(s)| HOLD(s)|        | CALLTIME |CALLTIME|\n";
+$MAIN.="| DATE-TIME RANGE                           | DROPS  | DROP % | DROP(s)| HOLD   | HOLD % |  HOLD  | TOTAL  | CALLS  | MIN:SEC  |SECONDS |\n";
+$MAIN.="+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
+$CSV_text.="\"SHIFT DATE-TIME RANGE\",\"DROPS\",\" DROP %\",\" AVG DROP(s)\",\" HOLD\",\" HOLD %\",\" AVG HOLD(S) HOLD\",\" AVG HOLD(S) TOTAL\",\" CALLS\",\" TOTAL CALLTIME MIN:SEC\",\" AVG CALLTIME SECONDS\"\n";
 
 $d=0;
 while ($d < $DURATIONday)
@@ -595,7 +599,8 @@ while ($d < $DURATIONday)
 	$totQUEUEdate[$d] =	sprintf("%6s", $totQUEUEdate[$d]);
 	$totCALLSdate[$d] =	sprintf("%6s", $totCALLSdate[$d]);
 
-	echo "| $daySTART[$d] - $dayEND[$d] | $totDROPSdate[$d] | $totDROPSpctDATE[$d]%|$totDROPSavgDATE[$d] | $totQUEUEdate[$d] | $totQUEUEpctDATE[$d]%|$totQUEUEavgDATE[$d] |$totQUEUEtotDATE[$d] | $totCALLSdate[$d] | $totTIME_MS | $totCALLSavgDATE[$d] |\n";
+	$MAIN.="| $daySTART[$d] - $dayEND[$d] | $totDROPSdate[$d] | $totDROPSpctDATE[$d]%|$totDROPSavgDATE[$d] | $totQUEUEdate[$d] | $totQUEUEpctDATE[$d]%|$totQUEUEavgDATE[$d] |$totQUEUEtotDATE[$d] | $totCALLSdate[$d] | $totTIME_MS | $totCALLSavgDATE[$d] |\n";
+	$CSV_text.="\"$daySTART[$d] - $dayEND[$d]\",\"$totDROPSdate[$d]\",\"$totDROPSpctDATE[$d]%\",\"$totDROPSavgDATE[$d]\",\"$totQUEUEdate[$d]\",\"$totQUEUEpctDATE[$d]%\",\"$totQUEUEavgDATE[$d]\",\"$totQUEUEtotDATE[$d]\",\"$totCALLSdate[$d]\",\"$totTIME_MS\",\"$totCALLSavgDATE[$d]\"\n";
 	$d++;
 	}
 
@@ -649,10 +654,10 @@ else
 	$FtotQUEUE =	sprintf("%6s", $totQUEUE);
 	$FtotCALLS =	sprintf("%6s", $totCALLS);
 
-echo "+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
-echo "|                                    TOTALS | $FtotDROPS | $FtotDROPSpct%|$FtotDROPSavg | $FtotQUEUE | $FtotQUEUEpct%|$FtotQUEUEavg |$FtotQUEUEtot | $FtotCALLS |$totTIME_MS | $FtotCALLSavg |\n";
-echo "+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
-
+$MAIN.="+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
+$MAIN.="|                                    TOTALS | $FtotDROPS | $FtotDROPSpct%|$FtotDROPSavg | $FtotQUEUE | $FtotQUEUEpct%|$FtotQUEUEavg |$FtotQUEUEtot | $FtotCALLS |$totTIME_MS | $FtotCALLSavg |\n";
+$MAIN.="+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
+$CSV_text.="\"TOTALS\",\"$FtotDROPS\",\"$FtotDROPSpct%\",\"$FtotDROPSavg\",\"$FtotQUEUE\",\"$FtotQUEUEpct%\",\"$FtotQUEUEavg\",\"$FtotQUEUEtot\",\"$FtotCALLS\",\"$totTIME_MS\",\"$FtotCALLSavg\"\n";
 
 	## FORMAT OUTPUT ##
 	$i=0;
@@ -698,15 +703,17 @@ else
 ###################################################################
 #########  HOLD TIME, CALL AND DROP STATS 15-MINUTE INCREMENTS ####
 
-echo "\n";
-echo "---------- HOLD TIME, CALL AND DROP STATS\n";
+$MAIN.="\n";
+$MAIN.="---------- HOLD TIME, CALL AND DROP STATS\n";
 
-echo "";
+$MAIN.="";
 
-echo "";
-echo "\n";
-echo "GRAPH IN 15 MINUTE INCREMENTS OF AVERAGE HOLD TIME FOR CALLS TAKEN INTO THIS IN-GROUP\n";
+$MAIN.="";
+$MAIN.="\n";
+$MAIN.="GRAPH IN 15 MINUTE INCREMENTS OF AVERAGE HOLD TIME FOR CALLS TAKEN INTO THIS IN-GROUP\n";
 
+$CSV_text.="\n\n\"HOLD TIME; CALL AND DROP STATS\"\n";
+$CSV_text.="\"GRAPH IN 15 MINUTE INCREMENTS\"\n\"OF AVERAGE HOLD TIME FOR CALLS\"\n\"TAKEN INTO THIS IN-GROUP\"\n";
 
 $k=1;
 $Mk=0;
@@ -768,10 +775,12 @@ while ($k <= 22)
 	}
 
 
-echo "+-------------+-----------------------+-------+-------+  +-----------------------+-------+-------+\n";
-echo "|    TIME     |  AVG HOLD TIME (sec)  | (in seconds)  |  |    CALLS HANDLED      |       |       |\n";
-echo "| 15 MIN INT  |$hold_scale| AVG   | MAX   |  |$call_scale| DROPS | TOTAL |\n";
-echo "+-------------+-----------------------+-------+-------+  +-----------------------+-------+-------+\n";
+$MAIN.="+-------------+-----------------------+-------+-------+  +-----------------------+-------+-------+\n";
+$MAIN.="|    TIME     |  AVG HOLD TIME (sec)  | (in seconds)  |  |    CALLS HANDLED      |       |       |\n";
+$MAIN.="| 15 MIN INT  |$hold_scale| AVG   | MAX   |  |$call_scale| DROPS | TOTAL |\n";
+$MAIN.="+-------------+-----------------------+-------+-------+  +-----------------------+-------+-------+\n";
+
+$CSV_text.="\"TIME - 15 MIN INT\",\"AVG SECS\",\"MAX SECS\",\"\",\"DROPS\",\"TOTAL\"\n";
 
 $i=0;
 while ($i < $TOTintervals)
@@ -793,9 +802,9 @@ while ($i < $TOTintervals)
 			$TOT_lines++;
 			$qrtQUEUEavg[$i] =	sprintf("%5s", $qrtQUEUEavg[$i]);
 			$qrtQUEUEmax[$i] =	sprintf("%5s", $qrtQUEUEmax[$i]);
-			echo "|$HMdisplay[$i]|";
-			$k=0;   while ($k <= 22) {echo " ";   $k++;}
-			echo "| $qrtQUEUEavg[$i] | $qrtQUEUEmax[$i] |";
+			$MAIN.="|$HMdisplay[$i]|";
+			$k=0;   while ($k <= 22) {$MAIN.=" ";   $k++;}
+			$MAIN.="| $qrtQUEUEavg[$i] | $qrtQUEUEmax[$i] |";
 			}
 		}
 	else
@@ -808,13 +817,13 @@ while ($i < $TOTintervals)
 		$qrtQUEUEavg[$i] =	sprintf("%5s", $qrtQUEUEavg[$i]);
 		$qrtQUEUEmax[$i] =	sprintf("%5s", $qrtQUEUEmax[$i]);
 
-		echo "|$HMdisplay[$i]|";
-		$k=0;   while ($k <= $Xavg_hold) {echo "*";   $k++;   $char_counter++;}
-		if ($char_counter >= 22) {echo "H";   $char_counter++;}
-		else {echo "*H";   $char_counter++;   $char_counter++;}
-		$k=0;   while ($k <= $Yavg_hold) {echo " ";   $k++;   $char_counter++;}
-			while ($char_counter <= 22) {echo " ";   $char_counter++;}
-		echo "| $qrtQUEUEavg[$i] | $qrtQUEUEmax[$i] |";
+		$MAIN.="|$HMdisplay[$i]|";
+		$k=0;   while ($k <= $Xavg_hold) {$MAIN.="*";   $k++;   $char_counter++;}
+		if ($char_counter >= 22) {$MAIN.="H";   $char_counter++;}
+		else {$MAIN.="*H";   $char_counter++;   $char_counter++;}
+		$k=0;   while ($k <= $Yavg_hold) {$MAIN.=" ";   $k++;   $char_counter++;}
+			while ($char_counter <= 22) {$MAIN.=" ";   $char_counter++;}
+		$MAIN.="| $qrtQUEUEavg[$i] | $qrtQUEUEmax[$i] |";
 		}
 	### END HOLD TIME TOTALS GRAPH ###
 
@@ -830,9 +839,9 @@ while ($i < $TOTintervals)
 		else
 			{
 			$qrtCALLS[$i] =	sprintf("%5s", $qrtCALLS[$i]);
-			echo "  |";
-			$k=0;   while ($k <= 22) {echo " ";   $k++;}
-			echo "| $qrtCALLS[$i] |     0 |\n";
+			$MAIN.="  |";
+			$k=0;   while ($k <= 22) {$MAIN.=" ";   $k++;}
+			$MAIN.="| $qrtCALLS[$i] |     0 |\n";
 			}
 		}
 	else
@@ -846,13 +855,13 @@ while ($i < $TOTintervals)
 			{
 			$qrtCALLS[$i] =	sprintf("%5s", $qrtCALLS[$i]);
 
-			echo "  |";
-			$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
-			if ($char_counter > 21) {echo "C";   $char_counter++;}
-			else {echo "*C";   $char_counter++;   $char_counter++;}
-			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
-				while ($char_counter <= 22) {echo " ";   $char_counter++;}
-			echo "|     0 | $qrtCALLS[$i] |\n";
+			$MAIN.="  |";
+			$k=0;   while ($k <= $Xhour_count) {$MAIN.="*";   $k++;   $char_counter++;}
+			if ($char_counter > 21) {$MAIN.="C";   $char_counter++;}
+			else {$MAIN.="*C";   $char_counter++;   $char_counter++;}
+			$k=0;   while ($k <= $Yhour_count) {$MAIN.=" ";   $k++;   $char_counter++;}
+				while ($char_counter <= 22) {$MAIN.=" ";   $char_counter++;}
+			$MAIN.="|     0 | $qrtCALLS[$i] |\n";
 			}
 		else
 			{
@@ -865,17 +874,18 @@ while ($i < $TOTintervals)
 			$qrtCALLS[$i] =	sprintf("%5s", $qrtCALLS[$i]);
 			$qrtDROPS[$i] =	sprintf("%5s", $qrtDROPS[$i]);
 
-			echo "  |";
-			$k=0;   while ($k <= $Xdrop_count) {echo ">";   $k++;   $char_counter++;}
-			echo "D";   $char_counter++;
-			$k=0;   while ($k <= $XXhour_count) {echo "*";   $k++;   $char_counter++;}
-			echo "C";   $char_counter++;
-			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
-				while ($char_counter <= 22) {echo " ";   $char_counter++;}
-			echo "| $qrtDROPS[$i] | $qrtCALLS[$i] |\n";
+			$MAIN.="  |";
+			$k=0;   while ($k <= $Xdrop_count) {$MAIN.=">";   $k++;   $char_counter++;}
+			$MAIN.="D";   $char_counter++;
+			$k=0;   while ($k <= $XXhour_count) {$MAIN.="*";   $k++;   $char_counter++;}
+			$MAIN.="C";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {$MAIN.=" ";   $k++;   $char_counter++;}
+				while ($char_counter <= 22) {$MAIN.=" ";   $char_counter++;}
+			$MAIN.="| $qrtDROPS[$i] | $qrtCALLS[$i] |\n";
 			}
 		}
 	### END CALLS TOTALS GRAPH ###
+	$CSV_text.="\"$HMdisplay[$i]\",\"$qrtQUEUEavg[$i]\",\"$qrtQUEUEmax[$i]\",\"\",\"$qrtDROPS[$i]\",\"$qrtCALLS[$i]\"\n";
 
 	$i++;
 	}
@@ -893,9 +903,10 @@ $totDROPS =	sprintf("%5s", $totDROPS);
 $totCALLS =	sprintf("%5s", $totCALLS);
 
 
-echo "+-------------+-----------------------+-------+-------+  +-----------------------+-------+-------+\n";
-echo "| TOTAL                               | $totQUEUEavg | $totQUEUEmax |  |                       | $totDROPS | $totCALLS |\n";
-echo "+-------------------------------------+-------+-------+  +-----------------------+-------+-------+\n";
+$MAIN.="+-------------+-----------------------+-------+-------+  +-----------------------+-------+-------+\n";
+$MAIN.="| TOTAL                               | $totQUEUEavg | $totQUEUEmax |  |                       | $totDROPS | $totCALLS |\n";
+$MAIN.="+-------------------------------------+-------+-------+  +-----------------------+-------+-------+\n";
+$CSV_text.="\"TOTAL\",\"$totQUEUEavg\",\"$totQUEUEmax\",\"\",\"$totDROPS\",\"$totCALLS\"\n\n";
 
 
 
@@ -904,12 +915,15 @@ echo "+-------------------------------------+-------+-------+  +----------------
 #########  CALL HOLD TIME BREAKDOWN IN SECONDS, 15-MINUTE INCREMENT
 
 
-echo "\n";
-echo "---------- CALL HOLD TIME BREAKDOWN IN SECONDS\n";
-echo "+-------------+-------+-----------------------------------------+ +------+--------------------------------+\n";
-echo "|    TIME     |       |  % OF CALLS GROUPED BY HOLD TIME (SEC)  | |   AVERAGE TIME BEFORE ANSWER (SEC)    |\n";
-echo "| 15 MIN INT  | CALLS |    0   20   40   60   80  100  120 120+ | | AVG  |0   20   40   60   80  100  120 |\n";
-echo "+-------------+-------+-----------------------------------------+ +------+--------------------------------+\n";
+$MAIN.="\n";
+$MAIN.="---------- CALL HOLD TIME BREAKDOWN IN SECONDS\n";
+$MAIN.="+-------------+-------+-----------------------------------------+ +------+--------------------------------+\n";
+$MAIN.="|    TIME     |       |  % OF CALLS GROUPED BY HOLD TIME (SEC)  | |   AVERAGE TIME BEFORE ANSWER (SEC)    |\n";
+$MAIN.="| 15 MIN INT  | CALLS |    0   20   40   60   80  100  120 120+ | | AVG  |0   20   40   60   80  100  120 |\n";
+$MAIN.="+-------------+-------+-----------------------------------------+ +------+--------------------------------+\n";
+
+$CSV_text.="\"CALL HOLD TIME BREAKDOWN IN SECONDS\"\n";
+$CSV_text.="\"TIME 15-MIN INT\",\"CALLS\",\"0 (seconds)\",\"20\",\"40\",\"60\",\"80\",\"100\",\"120\",\"120+\",\"AVG TIME BEFORE ANSWER(SEC)\"\n";
 
 $APhd__0=0; $APhd_20=0; $APhd_40=0; $APhd_60=0; $APhd_80=0; $APhd100=0; $APhd120=0; $APhd121=0;
 $h=0;
@@ -991,8 +1005,8 @@ while ($h < $TOTintervals)
 	$Aavg_hold[$h] = sprintf("%4s", $Aavg_hold[$h]);
 	while (strlen($Aavg_hold[$h])>4) {$Aavg_hold[$h] = ereg_replace("^.",'',$Aavg_hold[$h]);}
 
-	echo "|$HMdisplay[$h]| $qrtCALLS[$h] | $Phd__0[$h] $Phd_20[$h] $Phd_40[$h] $Phd_60[$h] $Phd_80[$h] $Phd100[$h] $Phd120[$h] $Phd121[$h] | | $Aavg_hold[$h] |$qrtQUEUEavg_scale[$h]|\n";
-	
+	$MAIN.="|$HMdisplay[$h]| $qrtCALLS[$h] | $Phd__0[$h] $Phd_20[$h] $Phd_40[$h] $Phd_60[$h] $Phd_80[$h] $Phd100[$h] $Phd120[$h] $Phd121[$h] | | $Aavg_hold[$h] |$qrtQUEUEavg_scale[$h]|\n";
+	$CSV_text.="\"$HMdisplay[$h]\",\"$qrtCALLS[$h]\",\"$Phd__0[$h]\",\"$Phd_20[$h]\",\"$Phd_40[$h]\",\"$Phd_60[$h]\",\"$Phd_80[$h]\",\"$Phd100[$h]\",\"$Phd120[$h]\",\"$Phd121[$h]\",\"$Aavg_hold[$h]\"\n";
 	$h++;
 	}
 
@@ -1017,19 +1031,48 @@ $APhd121 =	sprintf("%4s", $APhd121);
 
 	while (strlen($totQUEUEavg)>4) {$totQUEUEavg = ereg_replace(".$",'',$totQUEUEavg);}
 
-echo "+-------------+-------+-----------------------------------------+ +------+--------------------------------+\n";
-echo "| TOTAL       | $ALLcalls | $APhd__0 $APhd_20 $APhd_40 $APhd_60 $APhd_80 $APhd100 $APhd120 $APhd121 | | $totQUEUEavg |\n";
-echo "+-------------+-------+-----------------------------------------+ +------+\n";
+$MAIN.="+-------------+-------+-----------------------------------------+ +------+--------------------------------+\n";
+$MAIN.="| TOTAL       | $ALLcalls | $APhd__0 $APhd_20 $APhd_40 $APhd_60 $APhd_80 $APhd100 $APhd120 $APhd121 | | $totQUEUEavg |\n";
+$MAIN.="+-------------+-------+-----------------------------------------+ +------+\n";
+$CSV_text.="\" TOTAL\",\"$ALLcalls\",$APhd__0\",\"$APhd_20\",\"$APhd_40\",\"$APhd_60\",\"$APhd_80\",\"$APhd100\",\"$APhd120\",\"$APhd121\",\"$totQUEUEavg\"\n";
 
 $ENDtime = date("U");
 $RUNtime = ($ENDtime - $STARTtime);
-echo "\nRun Time: $RUNtime seconds|$db_source\n";
+$MAIN.="\nRun Time: $RUNtime seconds|$db_source\n";
+$MAIN.="
\n"; +$MAIN.="
\n"; +$MAIN.="\n"; + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AST_CLOSER_service_level_$US$FILE_TIME.csv"; + $CSV_text=preg_replace('/ +\"/', '"', $CSV_text); + $CSV_text=preg_replace('/\" +/', '"', $CSV_text); + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$CSV_text"; + + exit; + } + else + { + + echo "$HEADER"; + require("admin_header.php"); + echo "$MAIN"; + } } ?> - -
- - diff --git a/agc_2-X/trunk/www/vicidial/AST_CLOSERstats.php b/agc_2-X/trunk/www/vicidial/AST_CLOSERstats.php index 73544eb0..69b81078 100644 --- a/agc_2-X/trunk/www/vicidial/AST_CLOSERstats.php +++ b/agc_2-X/trunk/www/vicidial/AST_CLOSERstats.php @@ -1,7 +1,7 @@ LICENSE: AGPLv2 +# Copyright (C) 2011 Matt Florell LICENSE: AGPLv2 # # CHANGES # @@ -31,6 +31,7 @@ # 100802-2347 - Added User Group Allowed Reports option validation # 100913-1634 - Added DID option to select by DIDs instead of In-groups # 100914-1326 - Added lookup for user_level 7 users to set to reports only which will remove other admin links +# 110703-1759 - Added download option # require("dbconnect.php"); @@ -55,6 +56,8 @@ if (isset($_GET["DID"])) {$DID=$_GET["DID"];} elseif (isset($_POST["DID"])) {$DID=$_POST["DID"];} if (isset($_GET["DB"])) {$DB=$_GET["DB"];} elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); @@ -69,7 +72,7 @@ $db_source = 'M'; ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin,outbound_autodial_active,slave_db_server,reports_use_slave_db FROM system_settings;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); if ($qm_conf_ct > 0) { @@ -88,13 +91,13 @@ if ( (strlen($slave_db_server)>5) and (preg_match("/$report_name/",$reports_use_ $use_slave_server=1; $db_source = 'S'; require("dbconnect.php"); - echo "\n"; + $MAIN.="\n"; } $stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $gmt_conf_ct = mysql_num_rows($rslt); $dst = date("I"); if ($gmt_conf_ct > 0) @@ -105,14 +108,14 @@ if ($gmt_conf_ct > 0) } $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $auth=$row[0]; $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level='7' and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $reports_only_user=$row[0]; @@ -126,13 +129,13 @@ if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) } $stmt="SELECT user_group from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGuser_group = $row[0]; $stmt="SELECT allowed_campaigns,allowed_reports from vicidial_user_groups where user_group='$LOGuser_group';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGallowed_campaigns = $row[0]; @@ -157,7 +160,7 @@ $stmt="select group_id,group_name,8 from vicidial_inbound_groups order by group_ if ($DID=='Y') {$stmt="select did_pattern,did_description,did_id from vicidial_inbound_dids order by did_pattern;";} $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $groups_to_print = mysql_num_rows($rslt); $i=0; $LISTgroups[$i]='---NONE---'; @@ -196,7 +199,7 @@ else $stmt="select vsc_id,vsc_name from vicidial_status_categories;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $statcats_to_print = mysql_num_rows($rslt); $i=0; while ($i < $statcats_to_print) @@ -207,137 +210,131 @@ while ($i < $statcats_to_print) $vsc_count[$i] = 0; $i++; } -?> - - - +$HEADER.="\n"; +$HEADER.="\n"; +$HEADER.="\n"; -\n"; -echo "\n"; +$HEADER.="\n"; +$HEADER.="\n"; -echo "\n"; -echo "$report_name\n"; +$HEADER.="\n"; +$HEADER.="$report_name\n"; $short_header=1; -require("admin_header.php"); +#require("admin_header.php"); -echo "
"; +$MAIN.="
"; if ($DB > 0) { - echo "
\n"; - echo "$group_ct|$group_string|$group_SQL\n"; - echo "
\n"; - echo "$shift|$query_date|$end_date\n"; - echo "
\n"; + $MAIN.="
\n"; + $MAIN.="$group_ct|$group_string|$group_SQL\n"; + $MAIN.="
\n"; + $MAIN.="$shift|$query_date|$end_date\n"; + $MAIN.="
\n"; } -echo "
\n"; -echo "
\n"; -echo "\n"; -echo "\n"; -echo "Date Range:
\n"; -echo ""; +$MAIN.="\n"; +$MAIN.="\n"; -echo "\n"; +$MAIN.="
\n"; +$MAIN.="\n"; +$MAIN.="\n"; +$MAIN.="Date Range:
\n"; +$MAIN.=""; -?> - -\n"; +$MAIN.="var o_cal = new tcal ({\n"; +$MAIN.=" // form name\n"; +$MAIN.=" 'formname': 'vicidial_report',\n"; +$MAIN.=" // input name\n"; +$MAIN.=" 'controlname': 'query_date'\n"; +$MAIN.="});\n"; +$MAIN.="o_cal.a_tpl.yearscroll = false;\n"; +$MAIN.="// o_cal.a_tpl.weekstart = 1; // Monday week start\n"; +$MAIN.="\n"; -echo " to "; +$MAIN.=" to "; -?> - -\n"; +$MAIN.="var o_cal = new tcal ({\n"; +$MAIN.=" // form name\n"; +$MAIN.=" 'formname': 'vicidial_report',\n"; +$MAIN.=" // input name\n"; +$MAIN.=" 'controlname': 'end_date'\n"; +$MAIN.="});\n"; +$MAIN.="o_cal.a_tpl.yearscroll = false;\n"; +$MAIN.="// o_cal.a_tpl.weekstart = 1; // Monday week start\n"; +$MAIN.="\n"; -echo "
\n"; +$MAIN.="\n"; if ($DID=='Y') - {echo "Inbound DIDs: \n";} + {$MAIN.="Inbound DIDs: \n";} else - {echo "Inbound Groups: \n";} -echo "\n"; -echo "\n"; +$MAIN.="\n"; -echo "\n"; -echo "           "; +$MAIN.="\n"; +$MAIN.="\n"; +$MAIN.="           "; if ($DID!='Y') { - echo "MODIFY | "; - echo "IVR REPORT | \n"; + $MAIN.="MODIFY | "; + $MAIN.="IVR REPORT | \n"; } -echo "REPORTS | "; -echo "\n"; +$MAIN.="REPORTS | "; +$MAIN.="\n"; -echo "
\n"; +$MAIN.="
\n"; -#echo "\n"; # $o=0; # while ($groups_to_print > $o) # { -# if ($groups[$o] == $group) {echo "\n";} -# else {echo "\n";} +# if ($groups[$o] == $group) {$MAIN.="\n";} +# else {$MAIN.="\n";} # $o++; # } -#echo "\n"; -echo "Shift: \n"; -echo "   \n"; -echo "
\n"; -echo "\n\n"; +#$MAIN.="\n"; +$MAIN.="Shift: \n"; +$MAIN.="   \n"; +$MAIN.="
\n"; +$MAIN.="\n\n"; -echo "
\n\n";
+$MAIN.="
\n\n";
 
 
 if ($groups_to_print < 1)
 	{
-	echo "\n\n";
+	$MAIN.="\n\n";
 	if ($DID=='Y')
-		{echo "PLEASE SELECT A DID AND DATE RANGE ABOVE AND CLICK SUBMIT\n";}
+		{$MAIN.="PLEASE SELECT A DID AND DATE RANGE ABOVE AND CLICK SUBMIT\n";}
 	else
-		{echo "PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT\n";}
+		{$MAIN.="PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT\n";}
 	}
 
 else
@@ -366,16 +363,16 @@ $query_date_END = "$end_date $time_END";
 
 
 
-echo "Inbound Call Stats: $group_string          $NOW_TIME\n";
-
+$MAIN.="Inbound Call Stats: $group_string          $NOW_TIME        DOWNLOAD\n";
 
+$CSV_text1.="\"Inbound Call Stats:\",\"$group_string\",\"$NOW_TIME\"\n";
 
 
 if ($DID=='Y')
 	{
 	$stmt="select did_id from vicidial_inbound_dids where did_pattern IN($group_SQL);";
 	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
+	if ($DB) {$MAIN.="$stmt\n";}
 	$dids_to_print = mysql_num_rows($rslt);
 	$i=0;
 	while ($i < $dids_to_print)
@@ -390,7 +387,7 @@ if ($DID=='Y')
 
 	$stmt="select uniqueid from vicidial_did_log where did_id IN($did_SQL);";
 	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
+	if ($DB) {$MAIN.="$stmt\n";}
 	$unids_to_print = mysql_num_rows($rslt);
 	$i=0;
 	while ($i < $unids_to_print)
@@ -403,25 +400,30 @@ if ($DID=='Y')
 	if (strlen($unid_SQL)<3) {$unid_SQL="''";}
 
 	if ($DB > 0)
-		{echo "|$did_SQL|$unid_SQL|\n";}
+		{$MAIN.="|$did_SQL|$unid_SQL|\n";}
 
 	}
 
 if ($group_ct > 1)
 	{
-	echo "\n";
-	echo "---------- MULTI-GROUP BREAKDOWN:\n";
+	$MAIN.="\n";
+	$MAIN.="---------- MULTI-GROUP BREAKDOWN:\n";
+
+	$CSV_text1.="\n\"MULTI-GROUP BREAKDOWN:\"\n";
+
 	if ($DID=='Y')
 		{
-		echo "+----------------------+---------+---------+---------+---------+\n";
-		echo "| DID                  | CALLS   | DROPS   | DROP %  | IVR     |\n";
-		echo "+----------------------+---------+---------+---------+---------+\n";
+		$MAIN.="+----------------------+---------+---------+---------+---------+\n";
+		$MAIN.="| DID                  | CALLS   | DROPS   | DROP %  | IVR     |\n";
+		$MAIN.="+----------------------+---------+---------+---------+---------+\n";
+		$CSV_text1.="\"DID\",\"CALLS\",\"DROPS\",\"DROP %\",\"IVR\"\n";
 		}
 	else
 		{
-		echo "+----------------------+---------+---------+---------+---------+\n";
-		echo "| IN-GROUP             | CALLS   | DROPS   | DROP %  | IVR     |\n";
-		echo "+----------------------+---------+---------+---------+---------+\n";
+		$MAIN.="+----------------------+---------+---------+---------+---------+\n";
+		$MAIN.="| IN-GROUP             | CALLS   | DROPS   | DROP %  | IVR     |\n";
+		$MAIN.="+----------------------+---------+---------+---------+---------+\n";
+		$CSV_text1.="\"IN-GROUP\",\"CALLS\",\"DROPS\",\"DROP %\",\"IVR\"\n";
 		}
 
 	$i=0;
@@ -431,7 +433,7 @@ if ($group_ct > 1)
 		$DIDunid_SQL='';
 		$stmt="select did_id from vicidial_inbound_dids where did_pattern='$group[$i]';";
 		$rslt=mysql_query($stmt, $link);
-		if ($DB) {echo "$stmt\n";}
+		if ($DB) {$MAIN.="$stmt\n";}
 		$Sdids_to_print = mysql_num_rows($rslt);
 		if ($Sdids_to_print > 0)
 			{
@@ -441,7 +443,7 @@ if ($group_ct > 1)
 
 		$stmt="select uniqueid from vicidial_did_log where did_id='$did_id[$i]';";
 		$rslt=mysql_query($stmt, $link);
-		if ($DB) {echo "$stmt\n";}
+		if ($DB) {$MAIN.="$stmt\n";}
 		$DIDunids_to_print = mysql_num_rows($rslt);
 		$k=0;
 		while ($k < $DIDunids_to_print)
@@ -459,7 +461,7 @@ if ($group_ct > 1)
 			$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and uniqueid IN($DIDunid_SQL);";
 			}
 		$rslt=mysql_query($stmt, $link);
-		if ($DB) {echo "$stmt\n";}
+		if ($DB) {$MAIN.="$stmt\n";}
 		$row=mysql_fetch_row($rslt);
 
 		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='$group[$i]' and comment_b='START';";
@@ -468,7 +470,7 @@ if ($group_ct > 1)
 			$stmt="select count(*) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and uniqueid IN($DIDunid_SQL);";
 			}
 		$rslt=mysql_query($stmt, $link);
-		if ($DB) {echo "$stmt\n";}
+		if ($DB) {$MAIN.="$stmt\n";}
 		$rowx=mysql_fetch_row($rslt);
 
 		$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]' and status IN('DROP','XDROP') and (length_in_sec <= 49999 or length_in_sec is null);";
@@ -477,7 +479,7 @@ if ($group_ct > 1)
 			$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and status IN('DROP','XDROP') and (length_in_sec <= 49999 or length_in_sec is null) and uniqueid IN($DIDunid_SQL);";
 			}
 		$rslt=mysql_query($stmt, $link);
-		if ($DB) {echo "$stmt\n";}
+		if ($DB) {$MAIN.="$stmt\n";}
 		$rowy=mysql_fetch_row($rslt);
 
 		$groupDISPLAY =	sprintf("%20s", $group[$i]);
@@ -493,19 +495,21 @@ if ($group_ct > 1)
 			}
 		$gDROPpercent =	sprintf("%6s", $gDROPpercent);
 
-		echo "| $groupDISPLAY | $gTOTALcalls | $gDROPcalls | $gDROPpercent% | $gIVRcalls |\n";
+		$MAIN.="| $groupDISPLAY | $gTOTALcalls | $gDROPcalls | $gDROPpercent% | $gIVRcalls |\n";
+		$CSV_text1.="\"$groupDISPLAY\",\"$gTOTALcalls\",\"$gDROPcalls\",\"$gDROPpercent%\",\"$gIVRcalls\"\n";
 		$i++;
 		}
 
-	echo "+----------------------+---------+---------+---------+---------+\n";
+	$MAIN.="+----------------------+---------+---------+---------+---------+\n";
 
 	}
 
 
-echo "\n";
-echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
-echo "---------- TOTALS\n";
+$MAIN.="\n";
+$MAIN.="Time range: $query_date_BEGIN to $query_date_END\n\n";
+$MAIN.="---------- TOTALS\n";
 
+$CSV_text1.="\n\"Time range:\",\"$query_date_BEGIN\",\"to\",\"$query_date_END\"\n\n";
 
 $stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL);";
 if ($DID=='Y')
@@ -513,7 +517,7 @@ if ($DID=='Y')
 	$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and uniqueid IN($unid_SQL);";
 	}
 $rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
+if ($DB) {$MAIN.="$stmt\n";}
 $row=mysql_fetch_row($rslt);
 
 $stmt="select count(*),sum(queue_seconds) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and status NOT IN('DROP','XDROP','HXFER','QVMAIL','HOLDTO','LIVE','QUEUE','TIMEOT','AFTHRS','NANQUE','INBND');";
@@ -522,7 +526,7 @@ if ($DID=='Y')
 	$stmt="select count(*),sum(queue_seconds) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and status NOT IN('DROP','XDROP','HXFER','QVMAIL','HOLDTO','LIVE','QUEUE','TIMEOT','AFTHRS','NANQUE','INBND') and uniqueid IN($unid_SQL);";
 	}
 $rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
+if ($DB) {$MAIN.="$stmt\n";}
 $rowy=mysql_fetch_row($rslt);
 
 $stmt="select count(*) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a IN($group_SQL) and comment_b='START';";
@@ -531,7 +535,7 @@ if ($DID=='Y')
 	$stmt="select count(*) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and uniqueid IN($unid_SQL);";
 	}
 $rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
+if ($DB) {$MAIN.="$stmt\n";}
 $rowx=mysql_fetch_row($rslt);
 
 $TOTALcalls =	sprintf("%10s", $row[0]);
@@ -563,15 +567,22 @@ else
 	}
 
 
-echo "Total calls taken in to this In-Group:        $TOTALcalls\n";
-echo "Average Call Length for all Calls:            $average_call_seconds seconds\n";
-echo "Answered Calls:                               $ANSWEREDcalls  $ANSWEREDpercent%\n";
-echo "Average queue time for Answered Calls:        $average_answer_seconds seconds\n";
-echo "Calls taken into the IVR for this In-Group:   $IVRcalls\n";
+$MAIN.="Total calls taken in to this In-Group:        $TOTALcalls\n";
+$MAIN.="Average Call Length for all Calls:            $average_call_seconds seconds\n";
+$MAIN.="Answered Calls:                               $ANSWEREDcalls  $ANSWEREDpercent%\n";
+$MAIN.="Average queue time for Answered Calls:        $average_answer_seconds seconds\n";
+$MAIN.="Calls taken into the IVR for this In-Group:   $IVRcalls\n";
 
+$CSV_text1.="\"Total calls taken in to this In-Group:\",\"$TOTALcalls\"\n";
+$CSV_text1.="\"Average Call Length for all Calls:\",\"$average_call_seconds seconds\"\n";
+$CSV_text1.="\"Answered Calls:\",\"$ANSWEREDcalls\",\"$ANSWEREDpercent%\"\n";
+$CSV_text1.="\"Average queue time for Answered Calls:\",\"$average_answer_seconds seconds\"\n";
+$CSV_text1.="\"Calls taken into the IVR for this In-Group:\",\"$IVRcalls\"\n";
 
-echo "\n";
-echo "---------- DROPS\n";
+$MAIN.="\n";
+$MAIN.="---------- DROPS\n";
+
+$CSV_text1.="\n\"DROPS\"\n";
 
 $stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and status IN('DROP','XDROP') and (length_in_sec <= 49999 or length_in_sec is null);";
 if ($DID=='Y')
@@ -579,7 +590,7 @@ if ($DID=='Y')
 	$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and status IN('DROP','XDROP') and (length_in_sec <= 49999 or length_in_sec is null) and uniqueid IN($unid_SQL);";
 	}
 $rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
+if ($DB) {$MAIN.="$stmt\n";}
 $row=mysql_fetch_row($rslt);
 
 $DROPcalls =	sprintf("%10s", $row[0]);
@@ -609,10 +620,11 @@ else
 	$DROP_ANSWEREDpercent = round($DROP_ANSWEREDpercent, 0);
 	}
 
-echo "Total DROP Calls:                             $DROPcalls  $DROPpercent%               drop/answered: $DROP_ANSWEREDpercent%\n";
-echo "Average hold time for DROP Calls:             $average_hold_seconds seconds\n";
-
+$MAIN.="Total DROP Calls:                             $DROPcalls  $DROPpercent%               drop/answered: $DROP_ANSWEREDpercent%\n";
+$MAIN.="Average hold time for DROP Calls:             $average_hold_seconds seconds\n";
 
+$CSV_text1.="\"Total DROP Calls:\",\"$DROPcalls\",\"$DROPpercent%\",\"drop/answered:\",\"$DROP_ANSWEREDpercent%\"\n";
+$CSV_text1.="\"Average hold time for DROP Calls:\",\"$average_hold_seconds seconds\"\n";
 
 
 if (strlen($group_SQL)>3)
@@ -621,20 +633,20 @@ if (strlen($group_SQL)>3)
 		{
 		$stmt = "SELECT answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two from vicidial_inbound_groups where group_id IN($group_SQL) order by answer_sec_pct_rt_stat_one desc limit 1;";
 		$rslt=mysql_query($stmt, $link);
-		if ($DB) {echo "$stmt\n";}
+		if ($DB) {$MAIN.="$stmt\n";}
 		$row=mysql_fetch_row($rslt);
 		$Sanswer_sec_pct_rt_stat_one = $row[0];
 		$Sanswer_sec_pct_rt_stat_two = $row[1];
 
 		$stmt = "SELECT count(*) from vicidial_closer_log where campaign_id IN($group_SQL) and call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and queue_seconds <= $Sanswer_sec_pct_rt_stat_one and status NOT IN('DROP','XDROP','HXFER','QVMAIL','HOLDTO','LIVE','QUEUE','TIMEOT','AFTHRS','NANQUE','INBND');";
 		$rslt=mysql_query($stmt, $link);
-		if ($DB) {echo "$stmt\n";}
+		if ($DB) {$MAIN.="$stmt\n";}
 		$row=mysql_fetch_row($rslt);
 		$answer_sec_pct_rt_stat_one = $row[0];
 
 		$stmt = "SELECT count(*) from vicidial_closer_log where campaign_id IN($group_SQL) and call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and queue_seconds <= $Sanswer_sec_pct_rt_stat_two and status NOT IN('DROP','XDROP','HXFER','QVMAIL','HOLDTO','LIVE','QUEUE','TIMEOT','AFTHRS','NANQUE','INBND');";
 		$rslt=mysql_query($stmt, $link);
-		if ($DB) {echo "$stmt\n";}
+		if ($DB) {$MAIN.="$stmt\n";}
 		$row=mysql_fetch_row($rslt);
 		$answer_sec_pct_rt_stat_two = $row[0];
 
@@ -649,14 +661,21 @@ if (strlen($group_SQL)>3)
 			}
 		}
 	}
-echo "\n";
-echo "---------- CUSTOM INDICATORS\n";
-echo "GDE (Answered/Total calls taken in to this In-Group):  $ANSWEREDpercent%\n";
-echo "ACR (Dropped/Answered):                                $DROP_ANSWEREDpercent%\n";
+$MAIN.="\n";
+$MAIN.="---------- CUSTOM INDICATORS\n";
+$MAIN.="GDE (Answered/Total calls taken in to this In-Group):  $ANSWEREDpercent%\n";
+$MAIN.="ACR (Dropped/Answered):                                $DROP_ANSWEREDpercent%\n";
+
+$CSV_text1.="\n\"CUSTOM INDICATORS\"\n";
+$CSV_text1.="\"GDE (Answered/Total calls taken in to this In-Group):\",\"$ANSWEREDpercent%\"\n";
+$CSV_text1.="\"ACR (Dropped/Answered):\",\"$DROP_ANSWEREDpercent%\"\n";
+
 if ($DID!='Y')
 	{
-	echo "TMR1 (Answered within $Sanswer_sec_pct_rt_stat_one seconds/Answered):            $PCTanswer_sec_pct_rt_stat_one%\n";
-	echo "TMR2 (Answered within $Sanswer_sec_pct_rt_stat_two seconds/Answered):            $PCTanswer_sec_pct_rt_stat_two%\n";
+	$MAIN.="TMR1 (Answered within $Sanswer_sec_pct_rt_stat_one seconds/Answered):            $PCTanswer_sec_pct_rt_stat_one%\n";
+	$MAIN.="TMR2 (Answered within $Sanswer_sec_pct_rt_stat_two seconds/Answered):            $PCTanswer_sec_pct_rt_stat_two%\n";
+	$CSV_text1.="\"TMR1 (Answered within $Sanswer_sec_pct_rt_stat_one seconds/Answered):\",\"$PCTanswer_sec_pct_rt_stat_one%\"\n";
+	$CSV_text1.="\"TMR2 (Answered within $Sanswer_sec_pct_rt_stat_two seconds/Answered):\",\"$PCTanswer_sec_pct_rt_stat_two%\"\n";
 	}
 
 
@@ -664,7 +683,7 @@ if ($DID!='Y')
 $q=0;
 $stmt = "SELECT status,status_name,human_answered,category from vicidial_statuses;";
 $rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
+if ($DB) {$MAIN.="$stmt\n";}
 $statuses_to_print = mysql_num_rows($rslt);
 $p=0;
 while ($p < $statuses_to_print)
@@ -681,7 +700,7 @@ while ($p < $statuses_to_print)
 	}
 $stmt = "SELECT status,status_name,human_answered,category from vicidial_campaign_statuses;";
 $rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
+if ($DB) {$MAIN.="$stmt\n";}
 $statuses_to_print = mysql_num_rows($rslt);
 $p=0;
 while ($p < $statuses_to_print)
@@ -699,8 +718,10 @@ while ($p < $statuses_to_print)
 
 ##############################
 #########  CALL QUEUE STATS
-echo "\n";
-echo "---------- QUEUE STATS\n";
+$MAIN.="\n";
+$MAIN.="---------- QUEUE STATS\n";
+
+$CSV_text1.="\n\"QUEUE STATS\"\n";
 
 $stmt="select count(*),sum(queue_seconds) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and (queue_seconds > 0);";
 if ($DID=='Y')
@@ -708,7 +729,7 @@ if ($DID=='Y')
 	$stmt="select count(*),sum(queue_seconds) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and (queue_seconds > 0) and uniqueid IN($unid_SQL);";
 	}
 $rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
+if ($DB) {$MAIN.="$stmt\n";}
 $row=mysql_fetch_row($rslt);
 
 $QUEUEcalls =	sprintf("%10s", $row[0]);
@@ -738,9 +759,13 @@ else
 	$average_total_queue_seconds = sprintf("%10.2f", $average_total_queue_seconds);
 	}
 
-echo "Total Calls That entered Queue:               $QUEUEcalls  $QUEUEpercent%\n";
-echo "Average QUEUE Length for queue calls:         $average_queue_seconds seconds\n";
-echo "Average QUEUE Length across all calls:        $average_total_queue_seconds seconds\n";
+$MAIN.="Total Calls That entered Queue:               $QUEUEcalls  $QUEUEpercent%\n";
+$MAIN.="Average QUEUE Length for queue calls:         $average_queue_seconds seconds\n";
+$MAIN.="Average QUEUE Length across all calls:        $average_total_queue_seconds seconds\n";
+
+$CSV_text1.="\"Total Calls That entered Queue:\",\"$QUEUEcalls\",\"$QUEUEpercent%\"\n";
+$CSV_text1.="\"Average QUEUE Length for queue calls:\",\"$average_queue_seconds seconds\"\n";
+$CSV_text1.="\"Average QUEUE Length across all calls:\",\"$average_total_queue_seconds seconds\"\n";
 
 
 
@@ -749,11 +774,15 @@ echo "Average QUEUE Length across all calls:        $average_total_queue_seconds
 
 $TOTALcalls = 0;
 
-echo "\n";
-echo "---------- CALL HOLD TIME BREAKDOWN IN SECONDS\n";
-echo "+-------------------------------------------------------------------------------------------+------------+\n";
-echo "|     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
-echo "+-------------------------------------------------------------------------------------------+------------+\n";
+$MAIN.="\n";
+$MAIN.="---------- CALL HOLD TIME BREAKDOWN IN SECONDS       DOWNLOAD\n";
+$MAIN.="+-------------------------------------------------------------------------------------------+------------+\n";
+$MAIN.="|     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
+$MAIN.="+-------------------------------------------------------------------------------------------+------------+\n";
+
+$CSV_text2.="\n\"CALL HOLD TIME BREAKDOWN IN SECONDS\"\n";
+$CSV_text2.="\"\",\"0\",\"5\",\"10\",\"15\",\"20\",\"25\",\"30\",\"35\",\"40\",\"45\",\"50\",\"55\",\"60\",\"90\",\"+90\",\"TOTAL\"\n";
+
 
 $stmt="select count(*),queue_seconds from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) group by queue_seconds;";
 if ($DID=='Y')
@@ -761,9 +790,11 @@ if ($DID=='Y')
 	$stmt="select count(*),queue_seconds from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and uniqueid IN($unid_SQL) group by queue_seconds;";
 	}
 $rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
+if ($DB) {$MAIN.="$stmt\n";}
 $reasons_to_print = mysql_num_rows($rslt);
 $i=0;
+$hd_5=0; $hd10=0; $hd15=0; $hd20=0; $hd25=0; $hd30=0; $hd35=0; $hd40=0; $hd45=0; $hd50=0; $hd55=0; $hd60=0; $hd90=0; $hd99=0;
+
 while ($i < $reasons_to_print)
 	{
 	$row=mysql_fetch_row($rslt);
@@ -806,9 +837,10 @@ $hd99 =	sprintf("%5s", $hd99);
 
 $TOTALcalls =		sprintf("%10s", $TOTALcalls);
 
-echo "| $hd_0 $hd_5 $hd10 $hd15 $hd20 $hd25 $hd30 $hd35 $hd40 $hd45 $hd50 $hd55 $hd60 $hd90 $hd99 | $TOTALcalls |\n";
-echo "+-------------------------------------------------------------------------------------------+------------+\n";
+$MAIN.="| $hd_0 $hd_5 $hd10 $hd15 $hd20 $hd25 $hd30 $hd35 $hd40 $hd45 $hd50 $hd55 $hd60 $hd90 $hd99 | $TOTALcalls |\n";
+$MAIN.="+-------------------------------------------------------------------------------------------+------------+\n";
 
+$CSV_text2.="\"\",\"$hd_0\",\"$hd_5\",\"$hd10\",\"$hd15\",\"$hd20\",\"$hd25\",\"$hd30\",\"$hd35\",\"$hd40\",\"$hd45\",\"$hd50\",\"$hd55\",\"$hd60\",\"$hd90\",\"$hd99\",\"$TOTALcalls\"\n";
 
 
 ##############################
@@ -816,11 +848,14 @@ echo "+-------------------------------------------------------------------------
 
 $BDdropCALLS = 0;
 
-echo "\n";
-echo "---------- CALL DROP TIME BREAKDOWN IN SECONDS\n";
-echo "+-------------------------------------------------------------------------------------------+------------+\n";
-echo "|     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
-echo "+-------------------------------------------------------------------------------------------+------------+\n";
+$MAIN.="\n";
+$MAIN.="---------- CALL DROP TIME BREAKDOWN IN SECONDS\n";
+$MAIN.="+-------------------------------------------------------------------------------------------+------------+\n";
+$MAIN.="|     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
+$MAIN.="+-------------------------------------------------------------------------------------------+------------+\n";
+
+$CSV_text2.="\n\"CALL DROP TIME BREAKDOWN IN SECONDS\"\n";
+$CSV_text2.="\"\",\"0\",\"5\",\"10\",\"15\",\"20\",\"25\",\"30\",\"35\",\"40\",\"45\",\"50\",\"55\",\"60\",\"90\",\"+90\",\"TOTAL\"\n";
 
 $stmt="select count(*),queue_seconds from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) and status IN('DROP','XDROP') group by queue_seconds;";
 if ($DID=='Y')
@@ -828,9 +863,11 @@ if ($DID=='Y')
 	$stmt="select count(*),queue_seconds from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and uniqueid IN($unid_SQL) and status IN('DROP','XDROP') group by queue_seconds;";
 	}
 $rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
+if ($DB) {$MAIN.="$stmt\n";}
 $reasons_to_print = mysql_num_rows($rslt);
 $i=0;
+$dd_0=0; $dd_5=0; $dd10=0; $dd15=0; $dd20=0; $dd25=0; $dd30=0; $dd35=0; $dd40=0; $dd45=0; $dd50=0; $dd55=0; $dd60=0; $dd90=0; $dd99=0;
+
 while ($i < $reasons_to_print)
 	{
 	$row=mysql_fetch_row($rslt);
@@ -873,10 +910,11 @@ $dd99 =	sprintf("%5s", $dd99);
 
 $BDdropCALLS =		sprintf("%10s", $BDdropCALLS);
 
-echo "| $dd_0 $dd_5 $dd10 $dd15 $dd20 $dd25 $dd30 $dd35 $dd40 $dd45 $dd50 $dd55 $dd60 $dd90 $dd99 | $BDdropCALLS |\n";
-echo "+-------------------------------------------------------------------------------------------+------------+\n";
+$MAIN.="| $dd_0 $dd_5 $dd10 $dd15 $dd20 $dd25 $dd30 $dd35 $dd40 $dd45 $dd50 $dd55 $dd60 $dd90 $dd99 | $BDdropCALLS |\n";
+$MAIN.="+-------------------------------------------------------------------------------------------+------------+\n";
 
 
+$CSV_text2.="\"\",\"$dd_0\",\"$dd_5\",\"$dd10\",\"$dd15\",\"$dd20\",\"$dd25\",\"$dd30\",\"$dd35\",\"$dd40\",\"$dd45\",\"$dd50\",\"$dd55\",\"$dd60\",\"$dd90\",\"$dd99\",\"$BDdropCALLS\"\n";
 
 
 ##############################
@@ -884,11 +922,14 @@ echo "+-------------------------------------------------------------------------
 
 $BDansweredCALLS = 0;
 
-echo "\n";
-echo "           CALL ANSWERED TIME AND PERCENT BREAKDOWN IN SECONDS\n";
-echo "          +-------------------------------------------------------------------------------------------+------------+\n";
-echo "          |     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
-echo "----------+-------------------------------------------------------------------------------------------+------------+\n";
+$MAIN.="\n";
+$MAIN.="           CALL ANSWERED TIME AND PERCENT BREAKDOWN IN SECONDS\n";
+$MAIN.="          +-------------------------------------------------------------------------------------------+------------+\n";
+$MAIN.="          |     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
+$MAIN.="----------+-------------------------------------------------------------------------------------------+------------+\n";
+
+$CSV_text2.="\n\"CALL ANSWERED TIME AND PERCENT BREAKDOWN IN SECONDS\"\n";
+$CSV_text2.="\"\",\"0\",\"5\",\"10\",\"15\",\"20\",\"25\",\"30\",\"35\",\"40\",\"45\",\"50\",\"55\",\"60\",\"90\",\"+90\",\"TOTAL\"\n";
 
 $stmt="select count(*),queue_seconds from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) and status NOT IN('DROP','XDROP','HXFER','QVMAIL','HOLDTO','LIVE','QUEUE','TIMEOT','AFTHRS','NANQUE','INBND') group by queue_seconds;";
 if ($DID=='Y')
@@ -896,7 +937,7 @@ if ($DID=='Y')
 	$stmt="select count(*),queue_seconds from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and uniqueid IN($unid_SQL) and status NOT IN('DROP','XDROP','HXFER','QVMAIL','HOLDTO','LIVE','QUEUE','TIMEOT','AFTHRS','NANQUE','INBND') group by queue_seconds;";
 	}
 $rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
+if ($DB) {$MAIN.="$stmt\n";}
 $reasons_to_print = mysql_num_rows($rslt);
 $i=0;
 while ($i < $reasons_to_print)
@@ -1080,14 +1121,19 @@ $answeredCUMULATIVE = "$Cad_0 $Cad_5 $Cad10 $Cad15 $Cad20 $Cad25 $Cad30 $Cad35 $
 $answeredINT_PERCENT = "$pad_0 $pad_5 $pad10 $pad15 $pad20 $pad25 $pad30 $pad35 $pad40 $pad45 $pad50 $pad55 $pad60 $pad90 $pad99 |            |";
 $answeredCUM_PERCENT = "$pCad_0 $pCad_5 $pCad10 $pCad15 $pCad20 $pCad25 $pCad30 $pCad35 $pCad40 $pCad45 $pCad50 $pCad55 $pCad60 $pCad90 $pCad99 |            |";
 $answeredCUM_ANS_PERCENT = "$ApCad_0 $ApCad_5 $ApCad10 $ApCad15 $ApCad20 $ApCad25 $ApCad30 $ApCad35 $ApCad40 $ApCad45 $ApCad50 $ApCad55 $ApCad60 $ApCad90 $ApCad99 |            |";
-echo "INTERVAL  | $answeredTOTALs\n";
-echo "INT %     | $answeredINT_PERCENT\n";
-echo "CUMULATIVE| $answeredCUMULATIVE\n";
-echo "CUM %     | $answeredCUM_PERCENT\n";
-echo "CUM ANS % | $answeredCUM_ANS_PERCENT\n";
-echo "----------+-------------------------------------------------------------------------------------------+------------+\n";
+$MAIN.="INTERVAL  | $answeredTOTALs\n";
+$MAIN.="INT %     | $answeredINT_PERCENT\n";
+$MAIN.="CUMULATIVE| $answeredCUMULATIVE\n";
+$MAIN.="CUM %     | $answeredCUM_PERCENT\n";
+$MAIN.="CUM ANS % | $answeredCUM_ANS_PERCENT\n";
+$MAIN.="----------+-------------------------------------------------------------------------------------------+------------+\n";
 
 
+$CSV_text2.="\"INTERVAL\",\"$ad_0\",\"$ad_5\",\"$ad10\",\"$ad15\",\"$ad20\",\"$ad25\",\"$ad30\",\"$ad35\",\"$ad40\",\"$ad45\",\"$ad50\",\"$ad55\",\"$ad60\",\"$ad90\",\"$ad99\",\"$BDansweredCALLS\"\n";
+$CSV_text2.="\"INT %\",\"$pad_0\",\"$pad_5\",\"$pad10\",\"$pad15\",\"$pad20\",\"$pad25\",\"$pad30\",\"$pad35\",\"$pad40\",\"$pad45\",\"$pad50\",\"$pad55\",\"$pad60\",\"$pad90\",\"$pad99\"\n";
+$CSV_text2.="\"CUMULATIVE\",\"$Cad_0\",\"$Cad_5\",\"$Cad10\",\"$Cad15\",\"$Cad20\",\"$Cad25\",\"$Cad30\",\"$Cad35\",\"$Cad40\",\"$Cad45\",\"$Cad50\",\"$Cad55\",\"$Cad60\",\"$Cad90\",\"$Cad99\",\"$BDansweredCALLS\"\n";
+$CSV_text2.="\"CUM %\",\"$pCad_0\",\"$pCad_5\",\"$pCad10\",\"$pCad15\",\"$pCad20\",\"$pCad25\",\"$pCad30\",\"$pCad35\",\"$pCad40\",\"$pCad45\",\"$pCad50\",\"$pCad55\",\"$pCad60\",\"$pCad90\",\"$pCad99\"\n";
+$CSV_text2.="\"CUM ANS %\",\"$ApCad_0\",\"$ApCad_5\",\"$ApCad10\",\"$ApCad15\",\"$ApCad20\",\"$ApCad25\",\"$ApCad30\",\"$ApCad35\",\"$ApCad40\",\"$ApCad45\",\"$ApCad50\",\"$ApCad55\",\"$ApCad60\",\"$ApCad90\",\"$ApCad99\"\n";
 
 
 
@@ -1096,11 +1142,14 @@ echo "----------+---------------------------------------------------------------
 
 $TOTALcalls = 0;
 
-echo "\n";
-echo "---------- CALL HANGUP REASON STATS\n";
-echo "+----------------------+------------+\n";
-echo "| HANGUP REASON        | CALLS      |\n";
-echo "+----------------------+------------+\n";
+$MAIN.="\n";
+$MAIN.="---------- CALL HANGUP REASON STATS       DOWNLOAD\n";
+$MAIN.="+----------------------+------------+\n";
+$MAIN.="| HANGUP REASON        | CALLS      |\n";
+$MAIN.="+----------------------+------------+\n";
+
+$CSV_text3.="\n\"CALL HANGUP REASON STATS\"\n";
+$CSV_text3.="\"HANGUP REASON\",\"CALLS\"\n";
 
 $stmt="select count(*),term_reason from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) group by term_reason;";
 if ($DID=='Y')
@@ -1108,7 +1157,7 @@ if ($DID=='Y')
 	$stmt="select count(*),term_reason from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and uniqueid IN($unid_SQL) group by term_reason;";
 	}
 $rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
+if ($DB) {$MAIN.="$stmt\n";}
 $reasons_to_print = mysql_num_rows($rslt);
 $i=0;
 while ($i < $reasons_to_print)
@@ -1121,17 +1170,19 @@ while ($i < $reasons_to_print)
 	$reason =	sprintf("%-20s", $row[1]);while(strlen($reason)>20) {$reason = substr("$reason", 0, -1);}
 #	if (ereg("NONE",$reason)) {$reason = 'NO ANSWER           ';}
 
-	echo "| $reason | $REASONcount |\n";
+	$MAIN.="| $reason | $REASONcount |\n";
+	$CSV_text3.="\"$reason\",\"$REASONcount\"\n";
 
 	$i++;
 	}
 
 $TOTALcalls =		sprintf("%10s", $TOTALcalls);
 
-echo "+----------------------+------------+\n";
-echo "| TOTAL:               | $TOTALcalls |\n";
-echo "+----------------------+------------+\n";
+$MAIN.="+----------------------+------------+\n";
+$MAIN.="| TOTAL:               | $TOTALcalls |\n";
+$MAIN.="+----------------------+------------+\n";
 
+$CSV_text3.="\"TOTAL:\",\"$TOTALcalls\"\n";
 
 
 
@@ -1140,11 +1191,15 @@ echo "+----------------------+------------+\n";
 
 $TOTALcalls = 0;
 
-echo "\n";
-echo "---------- CALL STATUS STATS\n";
-echo "+--------+----------------------+----------------------+------------+------------+----------+----------+\n";
-echo "| STATUS | DESCRIPTION          | CATEGORY             | CALLS      | TOTAL TIME | AVG TIME |CALLS/HOUR|\n";
-echo "+--------+----------------------+----------------------+------------+------------+----------+----------+\n";
+$MAIN.="\n";
+$MAIN.="---------- CALL STATUS STATS       DOWNLOAD\n";
+$MAIN.="+--------+----------------------+----------------------+------------+------------+----------+----------+\n";
+$MAIN.="| STATUS | DESCRIPTION          | CATEGORY             | CALLS      | TOTAL TIME | AVG TIME |CALLS/HOUR|\n";
+$MAIN.="+--------+----------------------+----------------------+------------+------------+----------+----------+\n";
+
+$CSV_text4.="\n\"CALL STATUS STATS\"\n";
+$CSV_text4.="\"STATUS\",\"DESCRIPTION\",\"CATEGORY\",\"CALLS\",\"TOTAL TIME\",\"AVG TIME\",\"CALLS/HOUR\"\n";
+
 
 
 ## get counts and time totals for all statuses in this campaign
@@ -1154,7 +1209,7 @@ if ($DID=='Y')
 	$stmt="select count(*),status,sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and uniqueid IN($unid_SQL) group by status;";
 	}
 $rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
+if ($DB) {$MAIN.="$stmt\n";}
 $statuses_to_print = mysql_num_rows($rslt);
 $i=0;
 while ($i < $statuses_to_print)
@@ -1206,7 +1261,8 @@ while ($i < $statuses_to_print)
 		}
 
 
-	echo "| $status | $status_name | $statcat | $STATUScount | $STATUShours | $STATUSavg | $STATUSrate |\n";
+	$MAIN.="| $status | $status_name | $statcat | $STATUScount | $STATUShours | $STATUSavg | $STATUSrate |\n";
+	$CSV_text4.="\"$status\",\"$status_name\",\"$statcat\",\"$STATUScount\",\"$STATUShours\",\"$STATUSavg\",\"$STATUSrate\"\n";
 
 	$i++;
 	}
@@ -1234,19 +1290,24 @@ $TOTALhours =	sprintf("%10s", $TOTALhours);while(strlen($TOTALhours)>10) {$TOTAL
 $TOTALavg =	sprintf("%8s", $TOTALavg);while(strlen($TOTALavg)>8) {$TOTALavg = substr("$TOTALavg", 0, -1);}
 $TOTALrate =	sprintf("%8s", $TOTALrate);while(strlen($TOTALrate)>8) {$TOTALrate = substr("$TOTALrate", 0, -1);}
 
-echo "+--------+----------------------+----------------------+------------+------------+----------+----------+\n";
-echo "| TOTAL:                                               | $TOTALcalls | $TOTALhours | $TOTALavg | $TOTALrate |\n";
-echo "+------------------------------------------------------+------------+------------+----------+----------+\n";
+$MAIN.="+--------+----------------------+----------------------+------------+------------+----------+----------+\n";
+$MAIN.="| TOTAL:                                               | $TOTALcalls | $TOTALhours | $TOTALavg | $TOTALrate |\n";
+$MAIN.="+------------------------------------------------------+------------+------------+----------+----------+\n";
+
+$CSV_text4.="\"TOTAL:\",\"\",\"\",\"$TOTALcalls\",\"$TOTALhours\",\"$TOTALavg\",\"$TOTALrate\"\n";
 
 
 ##############################
 #########  STATUS CATEGORY STATS
 
-echo "\n";
-echo "---------- CUSTOM STATUS CATEGORY STATS\n";
-echo "+----------------------+------------+--------------------------------+\n";
-echo "| CATEGORY             | CALLS      | DESCRIPTION                    |\n";
-echo "+----------------------+------------+--------------------------------+\n";
+$MAIN.="\n";
+$MAIN.="---------- CUSTOM STATUS CATEGORY STATS       DOWNLOAD\n";
+$MAIN.="+----------------------+------------+--------------------------------+\n";
+$MAIN.="| CATEGORY             | CALLS      | DESCRIPTION                    |\n";
+$MAIN.="+----------------------+------------+--------------------------------+\n";
+
+$CSV_text5.="\n\"CUSTOM STATUS CATEGORY STATS\"\n";
+$CSV_text5.="\"CATEGORY\",\"CALLS\",\"DESCRIPTION\"\n";
 
 $TOTCATcalls=0;
 $r=0;
@@ -1259,7 +1320,8 @@ while ($r < $statcats_to_print)
 		$CATcount =	sprintf("%10s", $vsc_count[$r]); while(strlen($CATcount)>10) {$CATcount = substr("$CATcount", 0, -1);}
 		$CATname =	sprintf("%-30s", $vsc_name[$r]); while(strlen($CATname)>30) {$CATname = substr("$CATname", 0, -1);}
 
-		echo "| $category | $CATcount | $CATname |\n";
+		$MAIN.="| $category | $CATcount | $CATname |\n";
+		$CSV_text5.="\"$category\",\"$CATcount\",\"$CATname\"\n";
 		}
 
 	$r++;
@@ -1267,21 +1329,26 @@ while ($r < $statcats_to_print)
 
 $TOTCATcalls =	sprintf("%10s", $TOTCATcalls); while(strlen($TOTCATcalls)>10) {$TOTCATcalls = substr("$TOTCATcalls", 0, -1);}
 
-echo "+----------------------+------------+--------------------------------+\n";
-echo "| TOTAL                | $TOTCATcalls |\n";
-echo "+----------------------+------------+\n";
+$MAIN.="+----------------------+------------+--------------------------------+\n";
+$MAIN.="| TOTAL                | $TOTCATcalls |\n";
+$MAIN.="+----------------------+------------+\n";
 
+$CSV_text5.="\"TOTAL\",\"$TOTCATcalls\"\n";
 
 ##############################
 #########  CALL INITIAL QUEUE POSITION BREAKDOWN
 
 $TOTALcalls = 0;
 
-echo "\n";
-echo "---------- CALL INITIAL QUEUE POSITION BREAKDOWN\n";
-echo "+-------------------------------------------------------------------------------------+------------+\n";
-echo "|     1     2     3     4     5     6     7     8     9    10    15    20    25   +25 | TOTAL      |\n";
-echo "+-------------------------------------------------------------------------------------+------------+\n";
+$MAIN.="\n";
+$MAIN.="---------- CALL INITIAL QUEUE POSITION BREAKDOWN       DOWNLOAD\n";
+$MAIN.="+-------------------------------------------------------------------------------------+------------+\n";
+$MAIN.="|     1     2     3     4     5     6     7     8     9    10    15    20    25   +25 | TOTAL      |\n";
+$MAIN.="+-------------------------------------------------------------------------------------+------------+\n";
+
+$CSV_text6.="\n\"CALL INITIAL QUEUE POSITION BREAKDOWN\"\n";
+$CSV_text6.="\"\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\",\"15\",\"20\",\"25\",\"+25\",\"TOTAL\"\n";
+
 
 $stmt="select count(*),queue_position from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) group by queue_position;";
 if ($DID=='Y')
@@ -1289,7 +1356,7 @@ if ($DID=='Y')
 	$stmt="select count(*),queue_position from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and uniqueid IN($unid_SQL) group by queue_position;";
 	}
 $rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
+if ($DB) {$MAIN.="$stmt\n";}
 $positions_to_print = mysql_num_rows($rslt);
 $i=0;
 while ($i < $positions_to_print)
@@ -1332,9 +1399,10 @@ $qp99 =	sprintf("%5s", $qp99);
 
 $TOTALcalls =		sprintf("%10s", $TOTALcalls);
 
-echo "| $qp_1 $qp_2 $qp_3 $qp_4 $qp_5 $qp_6 $qp_7 $qp_8 $qp_9 $qp10 $qp15 $qp20 $qp25 $qp99 | $TOTALcalls |\n";
-echo "+-------------------------------------------------------------------------------------+------------+\n";
+$MAIN.="| $qp_1 $qp_2 $qp_3 $qp_4 $qp_5 $qp_6 $qp_7 $qp_8 $qp_9 $qp10 $qp15 $qp20 $qp25 $qp99 | $TOTALcalls |\n";
+$MAIN.="+-------------------------------------------------------------------------------------+------------+\n";
 
+$CSV_text6.="\"\",\"$qp_1\",\"$qp_2\",\"$qp_3\",\"$qp_4\",\"$qp_5\",\"$qp_6\",\"$qp_7\",\"$qp_8\",\"$qp_9\",\"$qp10\",\"$qp15\",\"$qp20\",\"$qp25\",\"$qp99\",\"$TOTALcalls\"\n";
 
 
 ##############################
@@ -1345,11 +1413,14 @@ $TOTcalls=0;
 $TOTtime=0;
 $TOTavg=0;
 
-echo "\n";
-echo "---------- AGENT STATS\n";
-echo "+--------------------------+------------+------------+--------+\n";
-echo "| AGENT                    | CALLS      | TIME H:M:S |AVERAGE |\n";
-echo "+--------------------------+------------+------------+--------+\n";
+$MAIN.="\n";
+$MAIN.="---------- AGENT STATS       DOWNLOAD\n";
+$MAIN.="+--------------------------+------------+------------+--------+\n";
+$MAIN.="| AGENT                    | CALLS      | TIME H:M:S |AVERAGE |\n";
+$MAIN.="+--------------------------+------------+------------+--------+\n";
+
+$CSV_text7.="\n\"AGENT STATS\"\n";
+$CSV_text7.="\"AGENT\",\"CALLS\",\"TIME H:M:S\",\"AVERAGE\"\n";
 
 $stmt="select vicidial_closer_log.user,full_name,count(*),sum(length_in_sec),avg(length_in_sec) from vicidial_closer_log,vicidial_users where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) and vicidial_closer_log.user is not null and length_in_sec is not null and length_in_sec > 0 and vicidial_closer_log.user=vicidial_users.user group by vicidial_closer_log.user;";
 if ($DID=='Y')
@@ -1357,7 +1428,7 @@ if ($DID=='Y')
 	$stmt="select vicidial_closer_log.user,full_name,count(*),sum(length_in_sec),avg(length_in_sec) from vicidial_closer_log,vicidial_users where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and uniqueid IN($unid_SQL) and vicidial_closer_log.user is not null and length_in_sec is not null and length_in_sec > 0 and vicidial_closer_log.user=vicidial_users.user group by vicidial_closer_log.user;";
 	}
 $rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
+if ($DB) {$MAIN.="$stmt\n";}
 $users_to_print = mysql_num_rows($rslt);
 $i=0;
 while ($i < $users_to_print)
@@ -1386,7 +1457,8 @@ while ($i < $users_to_print)
 	$USERtotTALK_MS =	sprintf("%9s", $USERtotTALK_MS);
 	$USERavgTALK_MS =	sprintf("%6s", $USERavgTALK_MS);
 
-	echo "| $user - $full_name | $USERcalls |  $USERtotTALK_MS | $USERavgTALK_MS |\n";
+	$MAIN.="| $user - $full_name | $USERcalls |  $USERtotTALK_MS | $USERavgTALK_MS |\n";
+	$CSV_text7.="\"$user - $full_name\",\"$USERcalls\",\"$USERtotTALK_MS\",\"$USERavgTALK_MS\"\n";
 
 	$i++;
 	}
@@ -1407,18 +1479,21 @@ $TOTcalls =			sprintf("%10s", $TOTcalls);
 $TOTtime =			sprintf("%8s", $TOTtime);
 $TOTavg =			sprintf("%6s", $TOTavg);
 
-echo "+--------------------------+------------+------------+--------+\n";
-echo "| TOTAL Agents: $TOTagents | $TOTcalls | $TOTtime | $TOTavg |\n";
-echo "+--------------------------+------------+------------+--------+\n";
+$MAIN.="+--------------------------+------------+------------+--------+\n";
+$MAIN.="| TOTAL Agents: $TOTagents | $TOTcalls | $TOTtime | $TOTavg |\n";
+$MAIN.="+--------------------------+------------+------------+--------+\n";
 
+$CSV_text7.="\"TOTAL Agents: $TOTagents\",\"$TOTcalls\",\"$TOTtime\",\"$TOTavg\"\n";
 
 ##############################
 #########  TIME STATS
 
-echo "\n";
-echo "---------- TIME STATS\n";
+$MAIN.="\n";
+$MAIN.="---------- TIME STATS       DOWNLOAD\n";
 
-echo "\n";
+$CSV_text9.="\"TIME STATS\"\n\n";
+
+$MAIN.="\n";
 
 
 ##############################
@@ -1430,7 +1505,7 @@ if ($DID=='Y')
 	$stmt="SELECT status,queue_seconds,UNIX_TIMESTAMP(call_date),call_date from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and uniqueid IN($unid_SQL);";
 	}
 $rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
+if ($DB) {$MAIN.="$stmt\n";}
 $calls_to_print = mysql_num_rows($rslt);
 $j=0;
 while ($j < $calls_to_print)
@@ -1441,7 +1516,7 @@ while ($j < $calls_to_print)
 	$Cepoch[$j] =	$row[2];
 	$Cdate[$j] =	$row[3];
 	$Crem[$j] = ( ($Cepoch[$j] + $epoch_offset) % 86400); # find the remainder(Modulus) of seconds since start of the day
-#	echo "|$Cepoch[$j]|$Crem[$j]|$Cdate[$j]|\n";
+#	$MAIN.="|$Cepoch[$j]|$Crem[$j]|$Cdate[$j]|\n";
 	$j++;
 	}
 
@@ -1514,8 +1589,8 @@ else
 	#$hour_multiplier = round($hour_multiplier, 0);
 	}
 
-echo "\n";
-echo "GRAPH IN 15 MINUTE INCREMENTS OF TOTAL CALLS TAKEN INTO THIS IN-GROUP\n";
+$MAIN.="\n";
+$MAIN.="GRAPH IN 15 MINUTE INCREMENTS OF TOTAL CALLS TAKEN INTO THIS IN-GROUP\n";
 
 $k=1;
 $Mk=0;
@@ -1544,10 +1619,13 @@ while ($k <= 102)
 	}
 
 
-echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
-#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | DROPS | TOTAL |\n";
-echo "| HOUR |$call_scale| DROPS | TOTAL |\n";
-echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
+$MAIN.="+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
+#$MAIN.="| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | DROPS | TOTAL |\n";
+$MAIN.="| HOUR |$call_scale| DROPS | TOTAL |\n";
+$MAIN.="+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
+
+$CSV_text9.="\"HOUR\",\"DROPS\",\"TOTAL\"\n";
+
 
 $ZZ = '00';
 $i=0;
@@ -1565,6 +1643,7 @@ while ($i <= 96)
 		$h=0;
 		if ($hour < 10) {$hour = "0$hour";}
 		$time = "+$hour$ZZ+";
+		#$CSV_text9.="$hour$ZZ,";
 		}
 	if ($h == 1) {$time = "   15 ";}
 	if ($h == 2) {$time = "   30 ";}
@@ -1579,9 +1658,11 @@ while ($i <= 96)
 		else
 			{
 			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
-			echo "|$time|";
-			$k=0;   while ($k <= 102) {echo " ";   $k++;}
-			echo "| $hour_count[$i] |\n";
+			$MAIN.="|$time|";
+			$CSV_text9.="\"$time\",";
+			$k=0;   while ($k <= 102) {$MAIN.=" ";   $k++;}
+			$MAIN.="| $hour_count[$i] |\n";
+			$CSV_text9.="\"0\",\"0\"\n";
 			}
 		}
 	else
@@ -1595,12 +1676,14 @@ while ($i <= 96)
 			{
 			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
 
-			echo "|$time|";
-			$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
-			echo "*X";   $char_counter++;
-			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
-				while ($char_counter <= 101) {echo " ";   $char_counter++;}
-			echo "| 0     | $hour_count[$i] |\n";
+			$MAIN.="|$time|";
+			$CSV_text9.="\"$time\",";
+			$k=0;   while ($k <= $Xhour_count) {$MAIN.="*";   $k++;   $char_counter++;}
+			$MAIN.="*X";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {$MAIN.=" ";   $k++;   $char_counter++;}
+				while ($char_counter <= 101) {$MAIN.=" ";   $char_counter++;}
+			$MAIN.="| 0     | $hour_count[$i] |\n";
+			$CSV_text9.="\"0\",\"$hour_count[$i]\"\n";
 
 			}
 		else
@@ -1611,17 +1694,22 @@ while ($i <= 96)
 
 			$XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 );
 
+			$hour_count[$i]+=0;
+			$drop_count[$i]+=0;
+
 			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
 			$drop_count[$i] =	sprintf("%-5s", $drop_count[$i]);
 
-			echo "|$time|";
-			$k=0;   while ($k <= $Xdrop_count) {echo ">";   $k++;   $char_counter++;}
-			echo "D";   $char_counter++;
-			$k=0;   while ($k <= $XXhour_count) {echo "*";   $k++;   $char_counter++;}
-			echo "X";   $char_counter++;
-			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
-				while ($char_counter <= 102) {echo " ";   $char_counter++;}
-			echo "| $drop_count[$i] | $hour_count[$i] |\n";
+			$MAIN.="|$time|";
+			$CSV_text9.="\"$time\",\"\"";
+			$k=0;   while ($k <= $Xdrop_count) {$MAIN.=">";   $k++;   $char_counter++;}
+			$MAIN.="D";   $char_counter++;
+			$k=0;   while ($k <= $XXhour_count) {$MAIN.="*";   $k++;   $char_counter++;}
+			$MAIN.="X";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {$MAIN.=" ";   $k++;   $char_counter++;}
+				while ($char_counter <= 102) {$MAIN.=" ";   $char_counter++;}
+			$MAIN.="| $drop_count[$i] | $hour_count[$i] |\n";
+			$CSV_text9.="\"$drop_count[$i]\",\"$hour_count[$i]\"\n";
 			}
 		}
 	
@@ -1630,7 +1718,7 @@ while ($i <= 96)
 	$h++;
 	}
 
-echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n\n";
+$MAIN.="+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n\n";
 
 
 
@@ -1638,11 +1726,14 @@ echo "+------+------------------------------------------------------------------
 
 
 ##### Answered wait time breakdown
-echo "\n";
-echo "---------- CALL ANSWERED TIME BREAKDOWN IN SECONDS\n";
-echo "+------+-------------------------------------------------------------------------------------------+------------+\n";
-echo "| HOUR |     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
-echo "+------+-------------------------------------------------------------------------------------------+------------+\n";
+$MAIN.="\n";
+$MAIN.="---------- CALL ANSWERED TIME BREAKDOWN IN SECONDS       DOWNLOAD\n";
+$MAIN.="+------+-------------------------------------------------------------------------------------------+------------+\n";
+$MAIN.="| HOUR |     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
+$MAIN.="+------+-------------------------------------------------------------------------------------------+------------+\n";
+
+$CSV_text8.="\n\"CALL ANSWERED TIME BREAKDOWN IN SECONDS\"\n";
+$CSV_text8.="\"HOUR\",\"0\",\"5\",\"10\",\"15\",\"20\",\"25\",\"30\",\"35\",\"40\",\"45\",\"50\",\"55\",\"60\",\"90\",\"+90\",\"TOTAL\"\n";
 
 $ZZ = '00';
 $i=0;
@@ -1709,7 +1800,8 @@ while ($i <= 96)
 	$adB99[$i] = sprintf("%5s", $adB99[$i]);
 	$Fanswer[$i] = sprintf("%10s", $Fanswer[$i]);
 
-	echo "|$time| $adB_0[$i] $adB_5[$i] $adB10[$i] $adB15[$i] $adB20[$i] $adB25[$i] $adB30[$i] $adB35[$i] $adB40[$i] $adB45[$i] $adB50[$i] $adB55[$i] $adB60[$i] $adB90[$i] $adB99[$i] | $Fanswer[$i] |\n";
+	$MAIN.="|$time| $adB_0[$i] $adB_5[$i] $adB10[$i] $adB15[$i] $adB20[$i] $adB25[$i] $adB30[$i] $adB35[$i] $adB40[$i] $adB45[$i] $adB50[$i] $adB55[$i] $adB60[$i] $adB90[$i] $adB99[$i] | $Fanswer[$i] |\n";
+	$CSV_text8.="\"$time\",\"$adB_0[$i]\",\"$adB_5[$i]\",\"$adB10[$i]\",\"$adB15[$i]\",\"$adB20[$i]\",\"$adB25[$i]\",\"$adB30[$i]\",\"$adB35[$i]\",\"$adB40[$i]\",\"$adB45[$i]\",\"$adB50[$i]\",\"$adB55[$i]\",\"$adB60[$i]\",\"$adB90[$i]\",\"$adB99[$i]\",\"$Fanswer[$i]\"\n";
 
 	$i++;
 	$h++;
@@ -1717,22 +1809,51 @@ while ($i <= 96)
 
 $BDansweredCALLS =		sprintf("%10s", $BDansweredCALLS);
 
-echo "+------+-------------------------------------------------------------------------------------------+------------+\n";
-echo "|TOTALS|                                                                                           | $BDansweredCALLS |\n";
-echo "+------+-------------------------------------------------------------------------------------------+------------+\n";
+$MAIN.="+------+-------------------------------------------------------------------------------------------+------------+\n";
+$MAIN.="|TOTALS|                                                                                           | $BDansweredCALLS |\n";
+$MAIN.="+------+-------------------------------------------------------------------------------------------+------------+\n";
 
+$CSV_text8.="\"TOTALS\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"$BDansweredCALLS\"\n";
 
 
 $ENDtime = date("U");
 $RUNtime = ($ENDtime - $STARTtime);
-echo "\nRun Time: $RUNtime seconds|$db_source\n";
+$MAIN.="\nRun Time: $RUNtime seconds|$db_source\n";
+$MAIN.="
"; +$MAIN.="
"; + +$MAIN.=""; + +if ($file_download>0) { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AST_CLOSERstats_$US$FILE_TIME.csv"; + $CSV_var="CSV_text".$file_download; + $CSV_text=preg_replace('/^\s+/', '', $$CSV_var); + $CSV_text=preg_replace('/ +\"/', '"', $CSV_text); + $CSV_text=preg_replace('/\" +/', '"', $CSV_text); + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$CSV_text"; + + exit; +} else { + echo $HEADER; + require("admin_header.php"); + echo $MAIN; +} + } ?> - -
- - diff --git a/agc_2-X/trunk/www/vicidial/AST_CLOSERsummary_hourly.php b/agc_2-X/trunk/www/vicidial/AST_CLOSERsummary_hourly.php index b2a1da18..8c09b55b 100644 --- a/agc_2-X/trunk/www/vicidial/AST_CLOSERsummary_hourly.php +++ b/agc_2-X/trunk/www/vicidial/AST_CLOSERsummary_hourly.php @@ -1,7 +1,7 @@ LICENSE: AGPLv2 +# Copyright (C) 2011 Matt Florell LICENSE: AGPLv2 # # CHANGES # @@ -12,6 +12,7 @@ # 100712-1324 - Added system setting slave server option # 100802-2347 - Added User Group Allowed Reports option validation # 100914-1326 - Added lookup for user_level 7 users to set to reports only which will remove other admin links +# 110703-1806 - Added download option # require("dbconnect.php"); @@ -47,6 +48,8 @@ if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} if (isset($_GET["DB"])) {$DB=$_GET["DB"];} elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); @@ -62,7 +65,7 @@ $db_source = 'M'; ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin,outbound_autodial_active,slave_db_server,reports_use_slave_db FROM system_settings;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); if ($qm_conf_ct > 0) { @@ -81,12 +84,12 @@ if ( (strlen($slave_db_server)>5) and (preg_match("/$report_name/",$reports_use_ $use_slave_server=1; $db_source = 'S'; require("dbconnect.php"); - echo "\n"; + $MAIN.="\n"; } $stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $gmt_conf_ct = mysql_num_rows($rslt); $dst = date("I"); if ($gmt_conf_ct > 0) @@ -97,14 +100,14 @@ if ($gmt_conf_ct > 0) } $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $auth=$row[0]; $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level='7' and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $reports_only_user=$row[0]; @@ -118,13 +121,13 @@ if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) } $stmt="SELECT user_group from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGuser_group = $row[0]; $stmt="SELECT allowed_campaigns,allowed_reports from vicidial_user_groups where user_group='$LOGuser_group';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGallowed_campaigns = $row[0]; @@ -150,7 +153,7 @@ if (eregi("YES",$exclude_rollover)) {$exclude_rolloverSQL = " where group_id NOT IN(SELECT drop_inbound_group from vicidial_campaigns)";} $stmt="select group_id,group_name from vicidial_inbound_groups $exclude_rolloverSQL order by group_id;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $groups_to_print = mysql_num_rows($rslt); $i=0; #$LISTgroups[$i]='---NONE---'; @@ -188,7 +191,7 @@ else $stmt="select vsc_id,vsc_name from vicidial_status_categories;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $statcats_to_print = mysql_num_rows($rslt); $i=0; while ($i < $statcats_to_print) @@ -202,7 +205,7 @@ while ($i < $statcats_to_print) $stmt="select call_time_id,call_time_name from vicidial_call_times order by call_time_id;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $times_to_print = mysql_num_rows($rslt); $i=0; while ($i < $times_to_print) @@ -213,134 +216,129 @@ while ($i < $times_to_print) $i++; } -?> - - - +$HEADER.="\n"; +$HEADER.="\n"; +$HEADER.="\n"; -\n"; -echo "\n"; +$HEADER.="\n"; +$HEADER.="\n"; -echo "\n"; -echo "$report_name\n"; +$HEADER.="\n"; +$HEADER.="$report_name\n"; if ($bareformat < 1) { $short_header=1; - require("admin_header.php"); + # require("admin_header.php"); - echo "
"; + $MAIN.="
"; if ($DB > 0) { - echo "
\n"; - echo "$group_ct|$group_string|$group_SQL\n"; - echo "
\n"; - echo "$shift|$query_date|$end_date\n"; - echo "
\n"; + $MAIN.="
\n"; + $MAIN.="$group_ct|$group_string|$group_SQL\n"; + $MAIN.="
\n"; + $MAIN.="$shift|$query_date|$end_date\n"; + $MAIN.="
\n"; } - echo "
\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "Date Range:
\n"; - echo ""; + $MAIN.="\n"; + $MAIN.="\n"; - echo "\n"; + $MAIN.="
\n"; + $MAIN.="\n"; + $MAIN.="\n"; + $MAIN.="\n"; + $MAIN.="\n"; + $MAIN.="\n"; + $MAIN.="Date Range:
\n"; + $MAIN.=""; - ?> - - \n"; + $MAIN.=" var o_cal = new tcal ({\n"; + $MAIN.=" // form name\n"; + $MAIN.=" 'formname': 'vicidial_report',\n"; + $MAIN.=" // input name\n"; + $MAIN.=" 'controlname': 'query_date'\n"; + $MAIN.=" });\n"; + $MAIN.=" o_cal.a_tpl.yearscroll = false;\n"; + $MAIN.=" // o_cal.a_tpl.weekstart = 1; // Monday week start\n"; + $MAIN.=" \n"; - echo " to "; + $MAIN.=" to "; - ?> - - \n"; + $MAIN.=" var o_cal = new tcal ({\n"; + $MAIN.=" // form name\n"; + $MAIN.=" 'formname': 'vicidial_report',\n"; + $MAIN.=" // input name\n"; + $MAIN.=" 'controlname': 'end_date'\n"; + $MAIN.=" });\n"; + $MAIN.=" o_cal.a_tpl.yearscroll = false;\n"; + $MAIN.=" // o_cal.a_tpl.weekstart = 1; // Monday week start\n"; + $MAIN.=" \n"; - echo "
  \n"; - echo "\n"; - echo "Inbound Groups:
\n"; - echo "
  \n"; + $MAIN.="\n"; + $MAIN.="Inbound Groups:
\n"; + $MAIN.="\n"; - echo "
\n"; - echo "           "; - echo "MODIFY | "; - echo "REPORTS"; - echo "

\n"; - echo "   Exclude Outbound Drop Groups:
"; - echo "   \n"; - echo "
                      "; - echo "\n"; + $MAIN.="\n"; + $MAIN.="
\n"; + $MAIN.="           "; + $MAIN.="DOWNLOAD | "; + $MAIN.="MODIFY | "; + $MAIN.="REPORTS"; + $MAIN.="

\n"; + $MAIN.="   Exclude Outbound Drop Groups:
"; + $MAIN.="   \n"; + $MAIN.="
                      "; + $MAIN.="\n"; - echo "
\n"; + $MAIN.="
\n"; - echo "Call Time:
\n"; - echo "\n"; $o=0; while ($times_to_print > $o) { - if ($call_times[$o] == $shift) {echo "\n";} - else {echo "\n";} + if ($call_times[$o] == $shift) {$MAIN.="\n";} + else {$MAIN.="\n";} $o++; } - echo "\n"; - echo "
\n"; - echo "
\n"; - echo "\n\n"; + $MAIN.="\n"; + $MAIN.="
\n"; + $MAIN.="
\n"; + $MAIN.="\n\n"; - echo "
\n\n";
+	$MAIN.="
\n\n";
 	}
 
 if ($groups_to_print < 1)
 	{
-	echo "\n\n";
-	echo "PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
+	$MAIN.="\n\n";
+	$MAIN.="PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
 	}
 
 else
@@ -354,7 +352,7 @@ else
 		{
 		$stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$shift';";
 		$rslt=mysql_query($stmt, $link);
-		if ($DB) {echo "$stmt\n";}
+		if ($DB) {$MAIN.="$stmt\n";}
 		$calltimes_to_print = mysql_num_rows($rslt);
 		if ($calltimes_to_print > 0)
 			{
@@ -398,6 +396,7 @@ else
 
 
 	$MAIN .= "Inbound Summary Hourly Report: $group_string          $NOW_TIME\n";
+	$CSV_main.="Inbound Summary Hourly Report:,$NOW_TIME\n";
 
 
 	if ($group_ct > 0)
@@ -410,6 +409,10 @@ else
 		$MAIN .= "| IN-GROUP                                 | CALLS  | ANSWER | TALK      | TALK    | TIME      | TIME    | TIME    | CALLS  |\n";
 		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
 
+		$CSV_main.="\"MULTI-GROUP BREAKDOWN:\"\n";
+		$CSV_main.="\"IN-GROUP\",\"TOTAL CALLS\",\"TOTAL ANSWER\",\" TOTAL TALK\",\" AVERAGE TALK\",\" TOTAL QUEUE TIME\",\" AVERAGE QUEUE TIME\",\" MAXIMUM QUEUE TIME\",\" TOTAL ABANDON CALLS\"\n";
+		$CSV_subreports="";
+
 		$i=0;
 		$TOTcalls_count=0;
 		$TOTanswer_count=0;
@@ -425,7 +428,7 @@ else
 			{
 			$stmt="select group_name,agent_alert_delay from vicidial_inbound_groups where group_id='$group[$i]';";
 			$rslt=mysql_query($stmt, $link);
-			if ($DB) {echo "$stmt\n";}
+			if ($DB) {$MAIN.="$stmt\n";}
 			$row=mysql_fetch_row($rslt);
 			$group_name[$i] =			$row[0];
 			$agent_alert_delay[$i] =	round($row[1] / 1000);
@@ -465,7 +468,7 @@ else
 
 			$stmt = "SELECT status,length_in_sec,queue_seconds,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
 			$rslt=mysql_query($stmt, $link);
-			if ($DB) {echo "$stmt\n";}
+			if ($DB) {$MAIN.="$stmt\n";}
 			$calls_to_parse = mysql_num_rows($rslt);
 			$p=0;
 			while ($p < $calls_to_parse)
@@ -524,7 +527,7 @@ else
 
 					if ($print_calls > 0)
 						{
-						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$MAIN.="$row[5]\t$row[6]\t$TEMPtalk\n";
 						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
 						}
 					$q++;
@@ -532,7 +535,7 @@ else
 				else
 					{$out_of_call_time++;}
 				if ($DB)
-					{echo "$call_time > $CTstart | $call_time < $CTstop | $Cwday | $Chour | $Hcalltime[$Chour] | $talk_sec[$i]\n";}
+					{$MAIN.="$call_time > $CTstart | $call_time < $CTstop | $Cwday | $Chour | $Hcalltime[$Chour] | $talk_sec[$i]\n";}
 				$p++;
 				}
 			if ( ($answer_count[$i] > 0) and ($talk_sec[$i] > 0) )
@@ -547,7 +550,7 @@ else
 			if ($print_calls > 0)
 				{
 				$PCtemptalkmin = ($PCtemptalk  / 60);
-				echo "$q\t$PCtemptalk\t$PCtemptalkmin\n";
+				$MAIN.="$q\t$PCtemptalk\t$PCtemptalkmin\n";
 				}
 
 			$TOTcalls_count =			($TOTcalls_count + $calls_count[$i]);
@@ -577,6 +580,7 @@ else
 			while(strlen($groupDISPLAY)>40) {$groupDISPLAY = substr("$groupDISPLAY", 0, -1);}
 
 			$MAIN .= "| $groupDISPLAY | $gTOTALcalls | $gANSWERcalls | $gSUMtalk | $gAVGtalk | $gSUMqueue | $gAVGqueue | $gMAXqueue | $gDROPcalls |";
+			$CSV_main.="\"$groupDISPLAY\",\"$gTOTALcalls\",\"$gANSWERcalls\",\"$gSUMtalk\",\"$gAVGtalk\",\"$gSUMqueue\",\"$gAVGqueue\",\"$gMAXqueue\",\"$gDROPcalls\"\n";
 			$MAIN .= "\n";
 
 			### hour by hour sumaries
@@ -587,6 +591,9 @@ else
 			$SUBoutput .= "| HOUR | CALLS  | ANSWER | TALK      | TALK    | TIME      | TIME    | TIME    | CALLS  |\n";
 			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
 
+			$CSV_subreports.="\n\n\"$group[$i] - $group_name[$i]\"\n\"HOURLY BREAKDOWN:\"\n";
+			$CSV_subreports.="\"HOUR\",\"TOTAL CALLS\",\"TOTAL ANSWER\",\" TOTAL TALK\",\" AVERAGE TALK\",\" TOTAL QUEUE TIME\",\" AVERAGE QUEUE TIME\",\" MAXIMUM QUEUE TIME\",\" TOTAL ABANDON CALLS\"\n";
+
 			$h=0;
 			while ($h < 24)
 				{
@@ -633,6 +640,7 @@ else
 					$hPRINT =		sprintf("%2s", $h);
 
 					$SUBoutput .= "| $hPRINT   | $hTOTALcalls | $hANSWERcalls | $hSUMtalk | $hAVGtalk | $hSUMqueue | $hAVGqueue | $hMAXqueue | $hDROPcalls |\n";
+					$CSV_subreports.="\"$hPRINT\",\"$hTOTALcalls\",\"$hANSWERcalls\",\"$hSUMtalk\",\"$hAVGtalk\",\"$hSUMqueue\",\"$hAVGqueue\",\"$hMAXqueue\",\"$hDROPcalls\"\n";
 					}
 
 				$h++;
@@ -666,6 +674,8 @@ else
 			$SUBoutput .= "|TOTALS| $hTOTcalls_count | $hTOTanswer_count | $hTOTtalk_sec | $hTOTtalk_avg | $hTOTqueue_seconds | $hTOTqueue_avg | $hTOTmax_queue_seconds | $hTOTdrop_count |\n";
 			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
 
+			$CSV_subreports.="\"TOTALS\",\"$hTOTcalls_count\",\"$hTOTanswer_count\",\"$hTOTtalk_sec\",\"$hTOTtalk_avg\",\"$hTOTqueue_seconds\",\"$hTOTqueue_avg\",\"$hTOTmax_queue_seconds\",\"$hTOTdrop_count\"\n";
+
 			$i++;
 			}
 
@@ -700,20 +710,48 @@ else
 		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
 		$MAIN .= "| TOTALS       In-Groups: $i             | $TOTcalls_count | $TOTanswer_count | $TOTtalk_sec | $TOTtalk_avg | $TOTqueue_seconds | $TOTqueue_avg | $TOTmax_queue_seconds | $TOTdrop_count |\n";
 		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		$CSV_main.="\"TOTALS       In-Groups: $i\",\"$TOTcalls_count\",\"$TOTanswer_count\",\"$TOTtalk_sec\",\"$TOTtalk_avg\",\"$TOTqueue_seconds\",\"$TOTqueue_avg\",\"$TOTmax_queue_seconds\",\"$TOTdrop_count\"\n";
 		}
 
 	if ($costformat > 0)
 		{
-		echo "
\n"; + $MAIN.="
\n"; $inbound_cost = ($rawTOTtalk_min * $inbound_rate); $inbound_cost = sprintf("%8.2f", $inbound_cost); - echo "INBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$inbound_rate = \$$inbound_cost\n"; + $MAIN.="INBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$inbound_rate = \$$inbound_cost\n"; exit; } +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AST_CLOSERsummary_hourly_$US$FILE_TIME.csv"; + $CSV_text=$CSV_main.$CSV_subreports; + $CSV_text=preg_replace('/ +\"/', '"', $CSV_text); + $CSV_text=preg_replace('/\" +/', '"', $CSV_text); + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$CSV_text"; + + exit; + } + else + { + + echo "$HEADER"; + require("admin_header.php"); echo "$MAIN"; echo "$SUBoutput"; @@ -722,13 +760,14 @@ else $ENDtime = date("U"); $RUNtime = ($ENDtime - $STARTtime); echo "\n\nRun Time: $RUNtime seconds|$db_source\n"; + echo ""; + echo "
"; + + echo ""; + + } + } - - ?> - -
- - diff --git a/agc_2-X/trunk/www/vicidial/AST_DIDstats.php b/agc_2-X/trunk/www/vicidial/AST_DIDstats.php index 8c53c57a..2c801e5f 100644 --- a/agc_2-X/trunk/www/vicidial/AST_DIDstats.php +++ b/agc_2-X/trunk/www/vicidial/AST_DIDstats.php @@ -1,7 +1,7 @@ LICENSE: AGPLv2 +# Copyright (C) 2011 Matt Florell LICENSE: AGPLv2 # # CHANGES # @@ -12,6 +12,7 @@ # 100712-1324 - Added system setting slave server option # 100802-2347 - Added User Group Allowed Reports option validation # 100914-1326 - Added lookup for user_level 7 users to set to reports only which will remove other admin links +# 110703-1809 - Added download option # require("dbconnect.php"); @@ -34,6 +35,8 @@ if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} if (isset($_GET["DB"])) {$DB=$_GET["DB"];} elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} $PHP_AUTH_USER = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_PW); @@ -47,7 +50,7 @@ $db_source = 'M'; ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin,outbound_autodial_active,slave_db_server,reports_use_slave_db FROM system_settings;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); if ($qm_conf_ct > 0) { @@ -66,18 +69,18 @@ if ( (strlen($slave_db_server)>5) and (preg_match("/$report_name/",$reports_use_ $use_slave_server=1; $db_source = 'S'; require("dbconnect.php"); - echo "\n"; + $MAIN.="\n"; } $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $auth=$row[0]; $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level='7' and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $reports_only_user=$row[0]; @@ -91,13 +94,13 @@ if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) } $stmt="SELECT user_group from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGuser_group = $row[0]; $stmt="SELECT allowed_campaigns,allowed_reports from vicidial_user_groups where user_group='$LOGuser_group';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGallowed_campaigns = $row[0]; @@ -120,7 +123,7 @@ if (!isset($end_date)) {$end_date = $NOW_DATE;} $stmt="select did_id,did_pattern,did_description from vicidial_inbound_dids order by did_pattern;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $groups_to_print = mysql_num_rows($rslt); $i=0; while ($i < $groups_to_print) @@ -153,112 +156,105 @@ else # $group_SQL = "group_id IN($group_SQL)"; } -?> - - - -\n"; +$HEADER.="\n"; +$HEADER.="\n"; -echo "\n"; -echo "\n"; +$HEADER.="\n"; +$HEADER.="\n"; -echo "\n"; -echo "$report_name\n"; +$HEADER.="\n"; +$HEADER.="$report_name\n"; $short_header=1; -require("admin_header.php"); - if ($DB > 0) { - echo "
\n"; - echo "$group_ct|$group_string|$group_SQL\n"; - echo "
\n"; - echo "$shift|$query_date|$end_date\n"; - echo "
\n"; + $MAIN.="
\n"; + $MAIN.="$group_ct|$group_string|$group_SQL\n"; + $MAIN.="
\n"; + $MAIN.="$shift|$query_date|$end_date\n"; + $MAIN.="
\n"; } -echo "
"; +$MAIN.="
"; -echo "
\n"; -echo "
\n"; -echo ""; +$MAIN.="\n"; +$MAIN.="
\n"; +$MAIN.=""; -?> - -\n"; +$MAIN.="var o_cal = new tcal ({\n"; +$MAIN.=" // form name\n"; +$MAIN.=" 'formname': 'vicidial_report',\n"; +$MAIN.=" // input name\n"; +$MAIN.=" 'controlname': 'query_date'\n"; +$MAIN.="});\n"; +$MAIN.="o_cal.a_tpl.yearscroll = false;\n"; +$MAIN.="// o_cal.a_tpl.weekstart = 1; // Monday week start\n"; +$MAIN.="\n"; -echo "
to
"; -?> - - to
"; -echo "
\n"; -echo "\n"; +$MAIN.="\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "           MODIFY | REPORTS \n"; -echo "
\n"; -echo "\n"; +$MAIN.="\n"; +$MAIN.="
\n"; +$MAIN.="\n"; +$MAIN.="\n"; +$MAIN.="\n"; +$MAIN.="\n"; +$MAIN.="           DOWNLOAD | MODIFY | REPORTS \n"; +$MAIN.="
\n"; +$MAIN.="\n"; -echo "
";
+$MAIN.="
";
 
 
 if (!$group)
 	{
-	echo "\n\n";
-	echo "PLEASE SELECT A DID AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
+	$MAIN.="\n\n";
+	$MAIN.="PLEASE SELECT A DID AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
 	}
 
 else
@@ -343,10 +339,13 @@ else
 		$DURATIONday++;
 		}
 
-	echo "Inbound DID Report                      $NOW_TIME\n";
-	echo "\n";
-	echo "Time range $DURATIONday days: $query_date_BEGIN to $query_date_END\n\n";
-	#echo "Time range day sec: $SQsec - $EQsec   Day range in epoch: $SQepoch - $EQepoch   Start: $SQepochDAY\n";
+	$MAIN.="Inbound DID Report                      $NOW_TIME\n";
+	$MAIN.="\n";
+	$MAIN.="Time range $DURATIONday days: $query_date_BEGIN to $query_date_END\n\n";
+	#$MAIN.="Time range day sec: $SQsec - $EQsec   Day range in epoch: $SQepoch - $EQepoch   Start: $SQepochDAY\n";
+
+	$CSV_text1.="\"Inbound DID Report\",\"$NOW_TIME\"\n\n";
+	$CSV_text1.="\"Time range $DURATIONday days:\",\"$query_date_BEGIN to $query_date_END\"\n\n";
 
 	$d=0;
 	while ($d < $DURATIONday)
@@ -452,7 +451,7 @@ else
 	### GRAB ALL RECORDS WITHIN RANGE FROM THE DATABASE ###
 	$stmt="select UNIX_TIMESTAMP(call_date),extension from vicidial_did_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  did_id IN($group_SQL);";
 	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
+	if ($DB) {$MAIN.="$stmt\n";}
 	$records_to_grab = mysql_num_rows($rslt);
 	$i=0;
 	$extension[0]='';
@@ -479,7 +478,7 @@ else
 	$default_route='';
 	$stmt="select did_route from vicidial_inbound_dids where did_pattern='default';";
 	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
+	if ($DB) {$MAIN.="$stmt\n";}
 	$Drecords_to_grab = mysql_num_rows($rslt);
 	if ($Drecords_to_grab > 0)
 		{
@@ -491,11 +490,13 @@ else
 	### TOTALS DID SUMMARY SECTION ###
 	if (strlen($extension[0]) > 0)
 		{
-		echo "DID Summary:\n";
-		echo "+--------------------+--------------------------------+------------+------------+\n";
-		echo "| DID                | DESCRIPTION                    | ROUTE      | CALLS      |\n";
-		echo "+--------------------+--------------------------------+------------+------------+\n";
+		$MAIN.="DID Summary:\n";
+		$MAIN.="+--------------------+--------------------------------+------------+------------+\n";
+		$MAIN.="| DID                | DESCRIPTION                    | ROUTE      | CALLS      |\n";
+		$MAIN.="+--------------------+--------------------------------+------------+------------+\n";
 
+		$CSV_text1.="\"DID Summary:\"\n";
+		$CSV_text1.="\"DID\",\"DESCRIPTION\",\"ROUTE\",\"CALLS\"\n";
 
 		$stats_array = array_group_count($extension, 'desc');
 		$stats_array_ct = count($stats_array);
@@ -527,17 +528,20 @@ else
 			$stat_route =		sprintf("%-10s", $stat_route);
 			$stat_count =		sprintf("%10s", $stat_count);
 
+			$CSV_text1.="\"$stat_pattern\",\"$stat_description\",\"$stat_route\",\"$stat_count\"\n";
+
 			$stat_pattern = "$stat_pattern";
 
-			echo "| $stat_pattern | $stat_description | $stat_route | $stat_count |\n";
+			$MAIN.="| $stat_pattern | $stat_description | $stat_route | $stat_count |\n";
 			$d++;
 			}
 
 			$FtotCALLS =	sprintf("%10s", $totCALLS);
 
-		echo "+--------------------+--------------------------------+------------+------------+\n";
-		echo "|                                                           TOTALS | $FtotCALLS |\n";
-		echo "+------------------------------------------------------------------+------------+\n";
+		$MAIN.="+--------------------+--------------------------------+------------+------------+\n";
+		$MAIN.="|                                                           TOTALS | $FtotCALLS |\n";
+		$MAIN.="+------------------------------------------------------------------+------------+\n";
+		$CSV_text1.="\"\",\"\",\"TOTALS\",\"$FtotCALLS\"\n";
 		}
 
 
@@ -589,11 +593,14 @@ else
 
 	###################################################
 	### TOTALS DATE SUMMARY SECTION ###
-	echo "\nDate Summary:\n";
-	echo "+-------------------------------------------+--------+\n";
-	echo "| SHIFT                                     |        |\n";
-	echo "| DATE-TIME RANGE                           | CALLS  |\n";
-	echo "+-------------------------------------------+--------+\n";
+	$MAIN.="\nDate Summary:\n";
+	$MAIN.="+-------------------------------------------+--------+\n";
+	$MAIN.="| SHIFT                                     |        |\n";
+	$MAIN.="| DATE-TIME RANGE                           | CALLS  |\n";
+	$MAIN.="+-------------------------------------------+--------+\n";
+
+	$CSV_text1.="\n\"Date Summary:\"\n";
+	$CSV_text1.="\"SHIFT DATE-TIME RANGE\",\"CALLS\"\n";
 
 	$d=0;
 	while ($d < $DURATIONday)
@@ -624,15 +631,17 @@ else
 			{$totCALLSdate[$d]='';}
 		$totCALLSdate[$d] =	sprintf("%6s", $totCALLSdate[$d]);
 
-		echo "| $daySTART[$d] - $dayEND[$d] | $totCALLSdate[$d] |\n";
+		$MAIN.="| $daySTART[$d] - $dayEND[$d] | $totCALLSdate[$d] |\n";
+		$CSV_text1.="\"$daySTART[$d]\",\"$dayEND[$d]\",\"$totCALLSdate[$d]\"\n";
 		$d++;
 		}
 
 	$FtotCALLS =	sprintf("%6s", $totCALLS);
 
-	echo "+-------------------------------------------+--------+\n";
-	echo "|                                    TOTALS | $FtotCALLS |\n";
-	echo "+-------------------------------------------+--------+\n";
+	$MAIN.="+-------------------------------------------+--------+\n";
+	$MAIN.="|                                    TOTALS | $FtotCALLS |\n";
+	$MAIN.="+-------------------------------------------+--------+\n";
+	$CSV_text1.="\"TOTALS\",\"$FtotCALLS\"\n";
 
 
 	## FORMAT OUTPUT ##
@@ -666,14 +675,16 @@ else
 	###################################################################
 	#########  HOLD TIME, CALL AND DROP STATS 15-MINUTE INCREMENTS ####
 
-	echo "\n";
-	echo "---------- HOLD TIME, CALL AND DROP STATS\n";
+	$MAIN.="\n";
+	$MAIN.="---------- HOLD TIME, CALL AND DROP STATS\n";
 
-	echo "";
+	$CSV_text1.="\n\"HOLD TIME, CALL AND DROP STATS\"\n";
 
-	echo "";
-	echo "\n";
-	echo "GRAPH IN 15 MINUTE INCREMENTS OF AVERAGE HOLD TIME FOR CALLS TAKEN INTO THIS IN-GROUP\n";
+	$MAIN.="";
+
+	$MAIN.="";
+	$MAIN.="\n";
+	$MAIN.="GRAPH IN 15 MINUTE INCREMENTS OF AVERAGE HOLD TIME FOR CALLS TAKEN INTO THIS IN-GROUP\n";
 
 
 	$k=1;
@@ -736,10 +747,12 @@ else
 		}
 
 
-	echo "+-------------+-------------------------------------------------------------------------+-------+\n";
-	echo "|    TIME     |    CALLS HANDLED                                                        |       |\n";
-	echo "| 15 MIN INT  |$call_scale| TOTAL |\n";
-	echo "+-------------+-------------------------------------------------------------------------+-------+\n";
+	$MAIN.="+-------------+-------------------------------------------------------------------------+-------+\n";
+	$MAIN.="|    TIME     |    CALLS HANDLED                                                        |       |\n";
+	$MAIN.="| 15 MIN INT  |$call_scale| TOTAL |\n";
+	$MAIN.="+-------------+-------------------------------------------------------------------------+-------+\n";
+
+	$CSV_text1.="\"TIME 15-MIN INT\",\"TOTAL\"\n";
 
 	$i=0;
 	while ($i < $TOTintervals)
@@ -761,9 +774,10 @@ else
 				$TOT_lines++;
 				$qrtQUEUEavg[$i] =	sprintf("%5s", $qrtQUEUEavg[$i]);
 				$qrtQUEUEmax[$i] =	sprintf("%5s", $qrtQUEUEmax[$i]);
-				echo "|$HMdisplay[$i]|";
-			#	$k=0;   while ($k <= 22) {echo " ";   $k++;}
-			#	echo "| $qrtQUEUEavg[$i] | $qrtQUEUEmax[$i] |";
+				$MAIN.="|$HMdisplay[$i]|";
+				$CSV_text1.="\"$HMdisplay[$i]\",";
+			#	$k=0;   while ($k <= 22) {$MAIN.=" ";   $k++;}
+			#	$MAIN.="| $qrtQUEUEavg[$i] | $qrtQUEUEmax[$i] |";
 				}
 			}
 		else
@@ -776,14 +790,15 @@ else
 			$qrtQUEUEavg[$i] =	sprintf("%5s", $qrtQUEUEavg[$i]);
 			$qrtQUEUEmax[$i] =	sprintf("%5s", $qrtQUEUEmax[$i]);
 
-		#	echo "|$HMdisplay[$i]|";
-			echo "|$HMdisplay[$i]|";
-		#	$k=0;   while ($k <= $Xavg_hold) {echo "*";   $k++;   $char_counter++;}
-		#	if ($char_counter >= 22) {echo "H";   $char_counter++;}
-		#	else {echo "*H";   $char_counter++;   $char_counter++;}
-		#	$k=0;   while ($k <= $Yavg_hold) {echo " ";   $k++;   $char_counter++;}
-		#		while ($char_counter <= 22) {echo " ";   $char_counter++;}
-		#	echo "| $qrtQUEUEavg[$i] | $qrtQUEUEmax[$i] |";
+		#	$MAIN.="|$HMdisplay[$i]|";
+			$MAIN.="|$HMdisplay[$i]|";
+			$CSV_text1.="\"$HMdisplay[$i]\",\"\"";
+		#	$k=0;   while ($k <= $Xavg_hold) {$MAIN.="*";   $k++;   $char_counter++;}
+		#	if ($char_counter >= 22) {$MAIN.="H";   $char_counter++;}
+		#	else {$MAIN.="*H";   $char_counter++;   $char_counter++;}
+		#	$k=0;   while ($k <= $Yavg_hold) {$MAIN.=" ";   $k++;   $char_counter++;}
+		#		while ($char_counter <= 22) {$MAIN.=" ";   $char_counter++;}
+		#	$MAIN.="| $qrtQUEUEavg[$i] | $qrtQUEUEmax[$i] |";
 			}
 		### END HOLD TIME TOTALS GRAPH ###
 
@@ -800,9 +815,10 @@ else
 				{
 				if ($qrtCALLS[$i] < 1) {$qrtCALLS[$i]='';}
 				$qrtCALLS[$i] =	sprintf("%5s", $qrtCALLS[$i]);
-			#	echo "  |";
-				$k=0;   while ($k <= 72) {echo " ";   $k++;}
-				echo "| $qrtCALLS[$i] |\n";
+			#	$MAIN.="  |";
+				$k=0;   while ($k <= 72) {$MAIN.=" ";   $k++;}
+				$MAIN.="| $qrtCALLS[$i] |\n";
+				$CSV_text1.="\"0\"\n";
 				}
 			}
 		else
@@ -817,13 +833,14 @@ else
 				if ($qrtCALLS[$i] < 1) {$qrtCALLS[$i]='';}
 				$qrtCALLS[$i] =	sprintf("%5s", $qrtCALLS[$i]);
 
-				echo "";
-				$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
-				if ($char_counter > 71) {echo "C";   $char_counter++;}
-				else {echo "*C";   $char_counter++;   $char_counter++;}
-				$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
-					while ($char_counter <= 72) {echo " ";   $char_counter++;}
-				echo "| $qrtCALLS[$i] |\n";
+				$MAIN.="";
+				$k=0;   while ($k <= $Xhour_count) {$MAIN.="*";   $k++;   $char_counter++;}
+				if ($char_counter > 71) {$MAIN.="C";   $char_counter++;}
+				else {$MAIN.="*C";   $char_counter++;   $char_counter++;}
+				$k=0;   while ($k <= $Yhour_count) {$MAIN.=" ";   $k++;   $char_counter++;}
+					while ($char_counter <= 72) {$MAIN.=" ";   $char_counter++;}
+				$MAIN.="| $qrtCALLS[$i] |\n";
+				$CSV_text1.="\"$qrtCALLS[$i]\"\n";
 				}
 			else
 				{
@@ -837,15 +854,16 @@ else
 				$qrtCALLS[$i] =	sprintf("%5s", $qrtCALLS[$i]);
 				$qrtDROPS[$i] =	sprintf("%5s", $qrtDROPS[$i]);
 
-				echo "";
-				$k=0;   while ($k <= $Xdrop_count) {echo ">";   $k++;   $char_counter++;}
-				echo "D";   $char_counter++;
-				$k=0;   while ($k <= $XXhour_count) {echo "*";   $k++;   $char_counter++;}
-				echo "C";   $char_counter++;
-				$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
-				while ($char_counter <= 72) {echo " ";   $char_counter++;}
+				$MAIN.="";
+				$k=0;   while ($k <= $Xdrop_count) {$MAIN.=">";   $k++;   $char_counter++;}
+				$MAIN.="D";   $char_counter++;
+				$k=0;   while ($k <= $XXhour_count) {$MAIN.="*";   $k++;   $char_counter++;}
+				$MAIN.="C";   $char_counter++;
+				$k=0;   while ($k <= $Yhour_count) {$MAIN.=" ";   $k++;   $char_counter++;}
+				while ($char_counter <= 72) {$MAIN.=" ";   $char_counter++;}
 
-				echo "| $qrtCALLS[$i] |\n";
+				$MAIN.="| $qrtCALLS[$i] |\n";
+				$CSV_text1.="\"$qrtCALLS[$i]\"\n";
 				}
 			}
 		### END CALLS TOTALS GRAPH ###
@@ -866,20 +884,48 @@ else
 	$totCALLS =	sprintf("%5s", $totCALLS);
 
 
-	echo "+-------------+-------------------------------------------------------------------------+-------+\n";
-	echo "| TOTAL       |                                                                         | $totCALLS |\n";
-	echo "+-------------+-------------------------------------------------------------------------+-------+\n";
+	$MAIN.="+-------------+-------------------------------------------------------------------------+-------+\n";
+	$MAIN.="| TOTAL       |                                                                         | $totCALLS |\n";
+	$MAIN.="+-------------+-------------------------------------------------------------------------+-------+\n";
 
+	$CSV_text1.="\"TOTAL\",\"$totCALLS\"\n";
 
 	$ENDtime = date("U");
 	$RUNtime = ($ENDtime - $STARTtime);
-	echo "\nRun Time: $RUNtime seconds|$db_source\n";
+	$MAIN.="\nRun Time: $RUNtime seconds|$db_source\n";
+	$MAIN.="
\n"; + $MAIN.="
\n"; + + $MAIN.="\n"; } + if ($file_download>0) { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AST_DIDstats_$US$FILE_TIME.csv"; + $CSV_var="CSV_text".$file_download; + $CSV_text=preg_replace('/^ +/', '', $$CSV_var); + $CSV_text=preg_replace('/\n +,/', ',', $CSV_text); + $CSV_text=preg_replace('/ +\"/', '"', $CSV_text); + $CSV_text=preg_replace('/\" +/', '"', $CSV_text); + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$CSV_text"; + + exit; + } else { + echo $HEADER; + require("admin_header.php"); + echo $MAIN; + } ?> - -
- diff --git a/agc_2-X/trunk/www/vicidial/AST_IVRstats.php b/agc_2-X/trunk/www/vicidial/AST_IVRstats.php index 3c8ceeda..7c4242c4 100644 --- a/agc_2-X/trunk/www/vicidial/AST_IVRstats.php +++ b/agc_2-X/trunk/www/vicidial/AST_IVRstats.php @@ -17,6 +17,7 @@ # 100802-2347 - Added User Group Allowed Reports option validation # 100914-1326 - Added lookup for user_level 7 users to set to reports only which will remove other admin links # 110525-1907 - Added support for outbound log analysis +# 110703-1850 - Added download option # require("dbconnect.php"); @@ -40,6 +41,8 @@ if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} if (isset($_GET["DB"])) {$DB=$_GET["DB"];} elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); @@ -57,7 +60,7 @@ $db_source = 'M'; ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin,outbound_autodial_active,slave_db_server,reports_use_slave_db FROM system_settings;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); if ($qm_conf_ct > 0) { @@ -76,18 +79,18 @@ if ( (strlen($slave_db_server)>5) and (preg_match("/$report_name/",$reports_use_ $use_slave_server=1; $db_source = 'S'; require("dbconnect.php"); - echo "\n"; + $MAIN.="\n"; } $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $auth=$row[0]; $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level='7' and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $reports_only_user=$row[0]; @@ -101,13 +104,13 @@ if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) } $stmt="SELECT user_group from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGuser_group = $row[0]; $stmt="SELECT allowed_campaigns,allowed_reports from vicidial_user_groups where user_group='$LOGuser_group';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGallowed_campaigns = $row[0]; @@ -143,7 +146,7 @@ if ($type == 'inbound') else {$stmt="select campaign_id,campaign_name from vicidial_campaigns order by campaign_id $whereLOGallowed_campaignsSQL;";} $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $groups_to_print = mysql_num_rows($rslt); $i=0; if ($type == 'inbound') @@ -189,7 +192,7 @@ else $stmt="select vsc_id,vsc_name from vicidial_status_categories;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $statcats_to_print = mysql_num_rows($rslt); $i=0; while ($i < $statcats_to_print) @@ -200,20 +203,18 @@ while ($i < $statcats_to_print) $vsc_count[$i] = 0; $i++; } -?> - - - +$HEADER.="\n"; +$HEADER.="\n"; +$HEADER.="\n"; - - - +$HEADER.="\n"; +$HEADER.="\n"; -\n"; -echo "$report_name\n"; +$HEADER.="\n"; +$HEADER.="$report_name\n"; $short_header=1; - require("admin_header.php"); +# require("admin_header.php"); -echo "
"; +$MAIN.="
"; if ($DB > 0) { - echo "
\n"; - echo "$group_ct|$group_string|$group_SQL\n"; - echo "
\n"; - echo "$shift|$query_date|$end_date\n"; - echo "
\n"; + $MAIN.="
\n"; + $MAIN.="$group_ct|$group_string|$group_SQL\n"; + $MAIN.="
\n"; + $MAIN.="$shift|$query_date|$end_date\n"; + $MAIN.="
\n"; } -echo "
\n"; -echo "
\n"; -echo "\n"; -echo "\n"; -echo "Date Range:
\n"; +$MAIN.="\n"; +$MAIN.="\n"; -echo "\n"; +$MAIN.="
\n"; +$MAIN.="\n"; +$MAIN.="\n"; +$MAIN.="Date Range:
\n"; -echo "\n"; -echo "\n"; -echo ""; +$MAIN.="\n"; +$MAIN.="\n"; +$MAIN.=""; -?> - -\n"; +$MAIN.="var o_cal = new tcal ({\n"; +$MAIN.=" // form name\n"; +$MAIN.=" 'formname': 'vicidial_report',\n"; +$MAIN.=" // input name\n"; +$MAIN.=" 'controlname': 'query_date_D'\n"; +$MAIN.="});\n"; +$MAIN.="o_cal.a_tpl.yearscroll = false;\n"; +$MAIN.="// o_cal.a_tpl.weekstart = 1; // Monday week start\n"; +$MAIN.="\n"; -echo "   "; +$MAIN.="   "; -echo "
to
"; +$MAIN.="
to
"; -?> - -\n"; +$MAIN.="var o_cal = new tcal ({\n"; +$MAIN.=" // form name\n"; +$MAIN.=" 'formname': 'vicidial_report',\n"; +$MAIN.=" // input name\n"; +$MAIN.=" 'controlname': 'end_date_D'\n"; +$MAIN.="});\n"; +$MAIN.="o_cal.a_tpl.yearscroll = false;\n"; +$MAIN.="// o_cal.a_tpl.weekstart = 1; // Monday week start\n"; +$MAIN.="\n"; -echo "   "; +$MAIN.="   "; -echo "
\n"; +$MAIN.="\n"; if ($type == 'inbound') { - echo "Inbound Groups: \n"; - echo "\n"; - echo "\n"; + $MAIN.="\n"; - echo "\n"; - echo "           "; - echo "MODIFY | "; - echo "REPORTS | "; - echo "CLOSER REPORT \n"; - echo "\n"; + $MAIN.="\n"; + $MAIN.="\n"; + $MAIN.="           "; + $MAIN.="DOWNLOAD | "; + $MAIN.="MODIFY | "; + $MAIN.="REPORTS | "; + $MAIN.="CLOSER REPORT \n"; + $MAIN.="\n"; } else { - echo "Campaigns: \n"; - echo "\n"; - echo "\n"; + $MAIN.="\n"; - echo "\n"; - echo "           "; - echo "MODIFY | "; - echo "REPORTS | "; - echo "OUTBOUND REPORT \n"; - echo "\n"; + $MAIN.="\n"; + $MAIN.="\n"; + $MAIN.="           "; + $MAIN.="DOWNLOAD | "; + $MAIN.="MODIFY | "; + $MAIN.="REPORTS | "; + $MAIN.="OUTBOUND REPORT \n"; + $MAIN.="\n"; } -echo "
\n"; +$MAIN.="
\n"; -#echo "\n"; # $o=0; # while ($groups_to_print > $o) # { -# if ($groups[$o] == $group) {echo "\n";} -# else {echo "\n";} +# if ($groups[$o] == $group) {$MAIN.="\n";} +# else {$MAIN.="\n";} # $o++; # } -#echo "\n"; -echo "Shift: \n"; +#$MAIN.="\n"; +$MAIN.="Shift: \n"; -?> -\n"; - +$MAIN.="  \n"; -   -
\n"; +$MAIN.="\n\n"; -echo "
\n"; -echo "\n\n"; - -echo "
\n\n";
+$MAIN.="
\n\n";
 
 
 if ($groups_to_print < 1)
 	{
-	echo "\n\n";
-	echo "PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
+	$MAIN.="\n\n";
+	$MAIN.="PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
 	}
 
 else
 	{
-	echo "IVR Stats Report: $query_date_BEGIN to $query_date_END               $NOW_TIME\n";
-	echo "                  $group_string\n";
+	$MAIN.="IVR Stats Report: $query_date_BEGIN to $query_date_END               $NOW_TIME\n";
+	$MAIN.="                  $group_string\n";
+
+	$CSV_text.="\"IVR Stats Report: $query_date_BEGIN to $query_date_END\",\"$NOW_TIME\"\n";
 
 	$TOTALcalls=0;
 	$NOCALLERIDcalls=0;
@@ -442,7 +438,7 @@ else
 		$stmt="select uniqueid,caller_code,event_date,campaign_id,menu_id,menu_action,UNIX_TIMESTAMP(event_date),caller_code from vicidial_outbound_ivr_log where event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END' and campaign_id IN($group_SQL) order by uniqueid,event_date,menu_action desc;";
 		}
 	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
+	if ($DB) {$MAIN.="$stmt\n";}
 	$logs_to_print = mysql_num_rows($rslt);
 	$p=0;
 	while ($p < $logs_to_print)
@@ -467,11 +463,11 @@ else
 	$r=-1;
 	while ($p < $logs_to_print)
 		{
-		if ($DB > 0) {echo "$p|$uniqueid[$p]|$comment_b[$p]";}
+		if ($DB > 0) {$MAIN.="$p|$uniqueid[$p]|$comment_b[$p]";}
 		if ($last_uniqueid === "$uniqueid[$p]")
 			{
 			$unique_calls[$r] .= "----------$comment_b[$p]";
-			if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
+			if ($DB > 0) {$MAIN.="   $r|$unique_calls[$r]\n";}
 			$last_epoch[$r]=$epoch[$p];
 			}
 		else
@@ -493,7 +489,7 @@ else
 			$unique_calls[$r] = $comment_b[$p];
 			$FLOWuniqueid[$r] = "$uniqueid[$p]";
 			$last_uniqueid = "$uniqueid[$p]";
-			if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
+			if ($DB > 0) {$MAIN.="   $r|$unique_calls[$r]\n";}
 			}
 		$p++;
 		}
@@ -510,7 +506,7 @@ else
 	$s=0;
 	while ($s <= $r)
 		{
-		if ($DB > 0) {echo "$s|$unique_calls[$s]\n";}
+		if ($DB > 0) {$MAIN.="$s|$unique_calls[$s]\n";}
 		if ($last_Suniqueid === "$unique_calls[$s]")
 			{
 			$STunique_calls_count[$p]++;
@@ -538,11 +534,15 @@ else
 		}
 
 	#### PRINT TOTAL CALLS INTO THIS IVR
-	echo "\n";
-	echo "Calls taken into this IVR:   $TOTALcalls\n";
-	echo "Calls with no CallerID:      $NOCALLERIDcalls\n";
-	echo "Unique Callers:              $UNIQUEcallers\n";
-	echo "\n";
+	$MAIN.="\n";
+	$MAIN.="Calls taken into this IVR:   $TOTALcalls\n";
+	$MAIN.="Calls with no CallerID:      $NOCALLERIDcalls\n";
+	$MAIN.="Unique Callers:              $UNIQUEcallers\n";
+	$MAIN.="\n";
+
+	$CSV_text.="\"Calls taken into this IVR: $TOTALcalls\"\n";
+	$CSV_text.="\"Calls with no CallerID: $NOCALLERIDcalls\"\n";
+	$CSV_text.="\"Unique Callers: $UNIQUEcallers\"\n\n";
 
 	### sort call flows for counting
 	if ($p > 0)
@@ -577,11 +577,13 @@ else
 	### put call flows and counts together for sorting again
 	$s=0;
 
-	echo "+--------+--------+--------+--------+------+------+\n";
-	echo "|        |        | QUEUE  | QUEUE  | IVR  | TOTAL|\n";
-	echo "| IVR    | QUEUE  | DROP   | DROP   | AVG  | AVG  |\n";
-	echo "| CALLS  | CALLS  | CALLS  | PERCENT| TIME | TIME | CALL PATH\n";
-	echo "+--------+--------+--------+--------+------+------+------------\n";
+	$MAIN.="+--------+--------+--------+--------+------+------+\n";
+	$MAIN.="|        |        | QUEUE  | QUEUE  | IVR  | TOTAL|\n";
+	$MAIN.="| IVR    | QUEUE  | DROP   | DROP   | AVG  | AVG  |\n";
+	$MAIN.="| CALLS  | CALLS  | CALLS  | PERCENT| TIME | TIME | CALL PATH\n";
+	$MAIN.="+--------+--------+--------+--------+------+------+------------\n";
+
+	$CSV_text.="\"\",\"IVR CALLS\",\"QUEUE CALLS\",\"QUEUE DROP CALLS\",\"QUEUE DROP PERCENT\",\"IVR AVG TIME\",\"TOTAL AVG TIME\",\"CALL PATH\"\n";
 
 	while ($s <= $p)
 		{
@@ -600,7 +602,7 @@ else
 			##### Grab all records for the IVR for the specified time period
 			$stmt="select status,length_in_sec from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and uniqueid IN($FLOWunique_calls_list[$s]);";
 			$rslt=mysql_query($stmt, $link);
-			if ($DB) {echo "$stmt\n";}
+			if ($DB) {$MAIN.="$stmt\n";}
 			$vcl_statuses_to_print = mysql_num_rows($rslt);
 			$w=0;
 			while ($w < $vcl_statuses_to_print)
@@ -638,7 +640,8 @@ else
 		$totFLOWtotal = ($totFLOWtotal + $FLOWtotal[$s]);
 		$totFLOWdrop = ($totFLOWdrop + $FLOWdrop[$s]);
 
-		echo "| $FLOWsummary[0] | $FLOWtotal[$s] | $FLOWdrop[$s] | $FLOWdropPCT[$s]%| $avgFLOWivr_time[$s] | $avgFLOWtotal_time[$s] | $FLOWsummary[1]\n";
+		$MAIN.="| $FLOWsummary[0] | $FLOWtotal[$s] | $FLOWdrop[$s] | $FLOWdropPCT[$s]%| $avgFLOWivr_time[$s] | $avgFLOWtotal_time[$s] | $FLOWsummary[1]\n";
+		$CSV_text.="\"\",\"$FLOWsummary[0]\",\"$FLOWtotal[$s]\",\"$FLOWdrop[$s]\",\"$FLOWdropPCT[$s]%\",\"$avgFLOWivr_time[$s]\",\"$avgFLOWtotal_time[$s]\",\"$FLOWsummary[1]\"\n";
 
 		$s++;
 		}
@@ -662,18 +665,19 @@ else
 		}
 	$totFLOWdropPCT = sprintf("%5s", $totFLOWdropPCT);
 
-	echo "+--------+--------+--------+--------+------+------+------------\n";
-	echo "| $TOTALcalls | $totFLOWtotal | $totFLOWdrop | $totFLOWdropPCT% | $TavgFLOWivr_time | $TavgFLOWtotal_time |\n";
-	echo "+--------+--------+--------+--------+------+------+\n";
+	$MAIN.="+--------+--------+--------+--------+------+------+------------\n";
+	$MAIN.="| $TOTALcalls | $totFLOWtotal | $totFLOWdrop | $totFLOWdropPCT% | $TavgFLOWivr_time | $TavgFLOWtotal_time |\n";
+	$MAIN.="+--------+--------+--------+--------+------+------+\n";
 
+	$CSV_text.="\"\",\"$TOTALcalls\",\"$totFLOWtotal\",\"$totFLOWdrop\",\"$totFLOWdropPCT%\",\"$TavgFLOWivr_time\",\"$TavgFLOWtotal_time\"\n";
 
 	##############################
 	#########  TIME STATS
 
-	echo "\n";
-	echo "---------- TIME STATS\n";
+	$MAIN.="\n";
+	$MAIN.="---------- TIME STATS\n";
 
-	echo "\n";
+	$MAIN.="\n";
 
 	$hi_hour_count=0;
 	$last_full_record=0;
@@ -690,7 +694,7 @@ else
 			$stmt="select count(*) from vicidial_outbound_ivr_log where event_date >= '$query_date $h:00:00' and event_date <= '$query_date $h:14:59' and campaign_id IN($group_SQL) and menu_action='';";
 			}
 		$rslt=mysql_query($stmt, $link);
-		if ($DB) {echo "$stmt\n";}
+		if ($DB) {$MAIN.="$stmt\n";}
 		$row=mysql_fetch_row($rslt);
 		$hour_count[$i] = $row[0];
 		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
@@ -707,7 +711,7 @@ else
 			$stmt="select count(*) from vicidial_outbound_ivr_log where event_date >= '$query_date $h:15:00' and event_date <= '$query_date $h:29:59' and campaign_id IN($group_SQL) and menu_action='';";
 			}
 		$rslt=mysql_query($stmt, $link);
-		if ($DB) {echo "$stmt\n";}
+		if ($DB) {$MAIN.="$stmt\n";}
 		$row=mysql_fetch_row($rslt);
 		$hour_count[$i] = $row[0];
 		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
@@ -723,7 +727,7 @@ else
 			$stmt="select count(*) from vicidial_outbound_ivr_log where event_date >= '$query_date $h:30:00' and event_date <= '$query_date $h:44:59' and campaign_id IN($group_SQL) and menu_action='';";
 			}
 		$rslt=mysql_query($stmt, $link);
-		if ($DB) {echo "$stmt\n";}
+		if ($DB) {$MAIN.="$stmt\n";}
 		$row=mysql_fetch_row($rslt);
 		$hour_count[$i] = $row[0];
 		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
@@ -739,7 +743,7 @@ else
 			$stmt="select count(*) from vicidial_outbound_ivr_log where event_date >= '$query_date $h:45:00' and event_date <= '$query_date $h:59:59' and campaign_id IN($group_SQL) and menu_action='';";
 			}
 		$rslt=mysql_query($stmt, $link);
-		if ($DB) {echo "$stmt\n";}
+		if ($DB) {$MAIN.="$stmt\n";}
 		$row=mysql_fetch_row($rslt);
 		$hour_count[$i] = $row[0];
 		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
@@ -756,8 +760,9 @@ else
 		#$hour_multiplier = round($hour_multiplier, 0);
 		}
 
-	echo "\n";
-	echo "GRAPH IN 15 MINUTE INCREMENTS OF TOTAL CALLS TAKEN INTO THIS IVR\n";
+	$MAIN.="\n";
+	$MAIN.="GRAPH IN 15 MINUTE INCREMENTS OF TOTAL CALLS TAKEN INTO THIS IVR\n";
+	$CSV_text.="\n\"GRAPH IN 15 MINUTE INCREMENTS OF TOTAL CALLS TAKEN INTO THIS IVR\"\n";
 
 	$k=1;
 	$Mk=0;
@@ -786,10 +791,11 @@ else
 		}
 
 
-	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
-	#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | TOTAL |\n";
-	echo "| HOUR |$call_scale| TOTAL |\n";
-	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
+	$MAIN.="+------+-------------------------------------------------------------------------------------------------------+-------+\n";
+	#$MAIN.="| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | TOTAL |\n";
+	$MAIN.="| HOUR |$call_scale| TOTAL |\n";
+	$MAIN.="+------+-------------------------------------------------------------------------------------------------------+-------+\n";
+	$CSV_text.="\"HOUR\",\"TOTAL\"\n";
 
 	$ZZ = '00';
 	$i=0;
@@ -821,9 +827,10 @@ else
 			else
 				{
 				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
-				echo "|$time|";
-				$k=0;   while ($k <= 102) {echo " ";   $k++;}
-				echo "| $hour_count[$i] |\n";
+				$MAIN.="|$time|";
+				$k=0;   while ($k <= 102) {$MAIN.=" ";   $k++;}
+				$MAIN.="| $hour_count[$i] |\n";
+				$CSV_text.="\"\",\"$time\",\"0\"\n";
 				}
 			}
 		else
@@ -834,12 +841,14 @@ else
 
 			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
 
-			echo "|$time|";
-			$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
-			echo "*X";   $char_counter++;
-			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
-				while ($char_counter <= 101) {echo " ";   $char_counter++;}
-			echo "| $hour_count[$i] |\n";
+			$MAIN.="|$time|";
+			$k=0;   while ($k <= $Xhour_count) {$MAIN.="*";   $k++;   $char_counter++;}
+			$MAIN.="*X";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {$MAIN.=" ";   $k++;   $char_counter++;}
+				while ($char_counter <= 101) {$MAIN.=" ";   $char_counter++;}
+			$MAIN.="| $hour_count[$i] |\n";
+			$CSV_text.="\"\",\"$time\",\"$hour_count[$i]\"\n";
+
 			}
 		
 		
@@ -848,18 +857,43 @@ else
 		}
 
 
-	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n\n";
+	$MAIN.="+------+-------------------------------------------------------------------------------------------------------+-------+\n\n";
 
 
 	$ENDtime = date("U");
 	$RUNtime = ($ENDtime - $STARTtime);
-	echo "\nRun Time: $RUNtime seconds|$db_source\n";
+	$MAIN.="\nRun Time: $RUNtime seconds|$db_source\n";
+	$MAIN.="
\n"; + $MAIN.="
\n"; + + $MAIN.="\n"; + } + + if ($file_download>0) { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AST_IVRstats_$US$FILE_TIME.csv"; + $CSV_text=preg_replace('/ +\"/', '"', $CSV_text); + $CSV_text=preg_replace('/\" +/', '"', $CSV_text); + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$CSV_text"; + + exit; + } else { + echo $HEADER; + require("admin_header.php"); + echo $MAIN; } ?> - -
- - diff --git a/agc_2-X/trunk/www/vicidial/AST_LISTS_campaign_stats.php b/agc_2-X/trunk/www/vicidial/AST_LISTS_campaign_stats.php index 16a5c83b..c42b9e8a 100644 --- a/agc_2-X/trunk/www/vicidial/AST_LISTS_campaign_stats.php +++ b/agc_2-X/trunk/www/vicidial/AST_LISTS_campaign_stats.php @@ -1,13 +1,14 @@ LICENSE: AGPLv2 +# Copyright (C) 2011 Matt Florell LICENSE: AGPLv2 # # This is a list inventory report, not a calling report. This report will show # statistics for all of the lists in the selected campaigns # # CHANGES # 100916-0928 - First build +# 110703-1815 - Added download option # header ("Content-type: text/html; charset=utf-8"); @@ -26,6 +27,8 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];} elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); @@ -37,7 +40,7 @@ $db_source = 'M'; ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin,outbound_autodial_active,slave_db_server,reports_use_slave_db FROM system_settings;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); if ($qm_conf_ct > 0) { @@ -56,18 +59,18 @@ if ( (strlen($slave_db_server)>5) and (preg_match("/$report_name/",$reports_use_ $use_slave_server=1; $db_source = 'S'; require("dbconnect.php"); - echo "\n"; + $MAIN.="\n"; } $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $auth=$row[0]; $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level='7' and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $reports_only_user=$row[0]; @@ -81,13 +84,13 @@ if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) } $stmt="SELECT user_group from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGuser_group = $row[0]; $stmt="SELECT allowed_campaigns,allowed_reports from vicidial_user_groups where user_group='$LOGuser_group';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGallowed_campaigns = $row[0]; @@ -128,7 +131,7 @@ $regexLOGallowed_campaigns = " $LOGallowed_campaigns "; $stmt="select campaign_id,campaign_name from vicidial_campaigns $whereLOGallowed_campaignsSQL order by campaign_id;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $campaigns_to_print = mysql_num_rows($rslt); $i=0; while ($i < $campaigns_to_print) @@ -172,7 +175,7 @@ else $stmt="select vsc_id,vsc_name from vicidial_status_categories;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $statcats_to_print = mysql_num_rows($rslt); $i=0; while ($i < $statcats_to_print) @@ -196,7 +199,7 @@ $not_interested_statuses=''; $unworkable_statuses=''; $stmt="select status,human_answered,sale,dnc,customer_contact,not_interested,unworkable,status_name from vicidial_statuses;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $statha_to_print = mysql_num_rows($rslt); $i=0; while ($i < $statha_to_print) @@ -214,7 +217,7 @@ while ($i < $statha_to_print) } $stmt="select status,human_answered,sale,dnc,customer_contact,not_interested,unworkable,status_name from vicidial_campaign_statuses where selectable IN('Y','N') $group_SQLand;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $statha_to_print = mysql_num_rows($rslt); $i=0; while ($i < $statha_to_print) @@ -243,73 +246,67 @@ else {$not_interested_statuses="''";} if (strlen($unworkable_statuses)>2) {$unworkable_statuses = substr("$unworkable_statuses", 0, -1);} else {$unworkable_statuses="''";} -?> +$HEADER.="\n"; +$HEADER.="\n"; +$HEADER.="\n"; - - - - -\n"; -echo "$report_name\n"; +$HEADER.="\n"; +$HEADER.="$report_name\n"; $short_header=1; -require("admin_header.php"); +$MAIN.="
"; -echo "
"; +$MAIN.="
\n"; +$MAIN.="
"; +$MAIN.="\n"; -echo "\n"; -echo "
"; -echo "\n"; - -echo " Campaigns:
"; -echo "
Campaigns:
"; +$MAIN.="\n"; -echo "

"; -echo "

\n"; -echo "\n"; -echo "
        "; -echo ""; +$MAIN.="\n"; +$MAIN.="
"; +$MAIN.="

\n"; +$MAIN.="\n"; +$MAIN.="
        "; +$MAIN.=""; if (strlen($group[0]) > 1) { - echo " MODIFY | \n"; - echo " REPORTS \n"; + $MAIN.=" MODIFY | \n"; + $MAIN.=" REPORTS \n"; } else { - echo " CAMPAIGNS | \n"; - echo " REPORTS \n"; + $MAIN.=" CAMPAIGNS | \n"; + $MAIN.=" REPORTS \n"; } -echo "
"; -echo "\n\n"; +$MAIN.="
"; +$MAIN.="\n\n"; -echo "
\n\n";
+$MAIN.="
\n\n";
 
 
 if (strlen($group[0]) < 1)
 	{
-	echo "\n\n";
-	echo "PLEASE SELECT A CAMPAIGN AND DATE ABOVE AND CLICK SUBMIT\n";
+	$MAIN.="\n\n";
+	$MAIN.="PLEASE SELECT A CAMPAIGN AND DATE ABOVE AND CLICK SUBMIT\n";
 	}
 
 else
@@ -325,14 +322,17 @@ else
 	$TOTALleads = 0;
 
 	$OUToutput .= "\n";
-	$OUToutput .= "---------- LIST ID SUMMARY\n";
+	$OUToutput .= "---------- LIST ID SUMMARY     DOWNLOAD\n";
 	$OUToutput .= "+------------------------------------------+------------+----------+\n";
 	$OUToutput .= "| LIST                                     | LEADS      | ACTIVE   |\n";
 	$OUToutput .= "+------------------------------------------+------------+----------+\n";
 
+	$CSV_text1.="\"LIST ID SUMMARY\"\n";
+	$CSV_text1.="\"LIST\",\"LEADS\",\"ACTIVE\"\n";
+
 	$stmt="select count(*),list_id from vicidial_list where list_id IN( SELECT list_id from vicidial_lists where active IN('Y','N') $group_SQLand) group by list_id;";
 	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
+	if ($DB) {$MAIN.="$stmt\n";}
 	$listids_to_print = mysql_num_rows($rslt);
 	$i=0;
 	while ($i < $listids_to_print)
@@ -351,7 +351,7 @@ else
 		{
 		$stmt="select list_name,active from vicidial_lists where list_id='$LISTIDlists[$i]';";
 		$rslt=mysql_query($stmt, $link);
-		if ($DB) {echo "$stmt\n";}
+		if ($DB) {$MAIN.="$stmt\n";}
 		$list_name_to_print = mysql_num_rows($rslt);
 		if ($list_name_to_print > 0)
 			{
@@ -369,6 +369,7 @@ else
 		$LISTIDname =	sprintf("%-40s", "$LISTIDlists[$i] - $LISTIDlist_names[$i]");while(strlen($LISTIDname)>40) {$LISTIDname = substr("$LISTIDname", 0, -1);}
 
 		$OUToutput .= "| $LISTIDname | $LISTIDcount | $LISTIDlist_active[$i] |\n";
+		$CSV_text1.="\"$LISTIDname\",\"$LISTIDcount\",\"$LISTIDlist_active[$i]\"\n";
 
 		$i++;
 		}
@@ -378,6 +379,7 @@ else
 	$OUToutput .= "+------------------------------------------+------------+----------+\n";
 	$OUToutput .= "| TOTAL:                                   | $TOTALleads |\n";
 	$OUToutput .= "+------------------------------------------+------------+\n";
+	$CSV_text1.="\"TOTAL\",\"$TOTALleads\"\n";
 
 
 	##############################
@@ -398,7 +400,7 @@ else
 
 	$stmt="select count(*) from vicidial_list where status IN($human_answered_statuses) and list_id IN($list_id_SQL);";
 	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
+	if ($DB) {$MAIN.="$stmt\n";}
 	$HA_results = mysql_num_rows($rslt);
 	if ($HA_results > 0)
 		{
@@ -411,7 +413,7 @@ else
 		}
 	$stmt="select count(*) from vicidial_list where status IN($sale_statuses) and list_id IN($list_id_SQL);";
 	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
+	if ($DB) {$MAIN.="$stmt\n";}
 	$SALE_results = mysql_num_rows($rslt);
 	if ($SALE_results > 0)
 		{
@@ -424,7 +426,7 @@ else
 		}
 	$stmt="select count(*) from vicidial_list where status IN($dnc_statuses) and list_id IN($list_id_SQL);";
 	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
+	if ($DB) {$MAIN.="$stmt\n";}
 	$DNC_results = mysql_num_rows($rslt);
 	if ($DNC_results > 0)
 		{
@@ -437,7 +439,7 @@ else
 		}
 	$stmt="select count(*) from vicidial_list where status IN($customer_contact_statuses) and list_id IN($list_id_SQL);";
 	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
+	if ($DB) {$MAIN.="$stmt\n";}
 	$CC_results = mysql_num_rows($rslt);
 	if ($CC_results > 0)
 		{
@@ -450,7 +452,7 @@ else
 		}
 	$stmt="select count(*) from vicidial_list where status IN($not_interested_statuses) and list_id IN($list_id_SQL);";
 	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
+	if ($DB) {$MAIN.="$stmt\n";}
 	$NI_results = mysql_num_rows($rslt);
 	if ($NI_results > 0)
 		{
@@ -463,7 +465,7 @@ else
 		}
 	$stmt="select count(*) from vicidial_list where status IN($unworkable_statuses) and list_id IN($list_id_SQL);";
 	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
+	if ($DB) {$MAIN.="$stmt\n";}
 	$UW_results = mysql_num_rows($rslt);
 	if ($UW_results > 0)
 		{
@@ -491,7 +493,7 @@ else
 
 	$OUToutput .= "\n";
 	$OUToutput .= "\n";
-	$OUToutput .= "---------- STATUS FLAGS SUMMARY:    (and % of leads in selected lists)\n";
+	$OUToutput .= "---------- STATUS FLAGS SUMMARY:    (and % of leads in selected lists)     DOWNLOAD\n";
 	$OUToutput .= "+------------------+------------+----------+\n";
 	$OUToutput .= "| Human Answer     | $HA_count |  $HA_percent% |\n";
 	$OUToutput .= "| Sale             | $SALE_count |  $SALE_percent% |\n";
@@ -502,16 +504,26 @@ else
 	$OUToutput .= "+------------------+------------+----------+\n";
 	$OUToutput .= "\n";
 
+	$CSV_text2.="\"STATUS FLAGS SUMMARY:\"\n";
+	$CSV_text2 .= "\"Human Answer\",\"$HA_count\",\"$HA_percent%\"\n";
+	$CSV_text2 .= "\"Sale\",\"$SALE_count\",\"$SALE_percent%\"\n";
+	$CSV_text2 .= "\"DNC\",\"$DNC_count\",\"$DNC_percent%\"\n";
+	$CSV_text2 .= "\"Customer Contact\",\"$CC_count\",\"$CC_percent%\"\n";
+	$CSV_text2 .= "\"Not Interested\",\"$NI_count\",\"$NI_percent%\"\n";
+	$CSV_text2 .= "\"Unworkable\",\"$UW_count\",\"$UW_percent%\"\n";
+
 
 	##############################
 	#########  STATUS CATEGORY STATS
 
 	$OUToutput .= "\n";
-	$OUToutput .= "---------- CUSTOM STATUS CATEGORY STATS\n";
+	$OUToutput .= "---------- CUSTOM STATUS CATEGORY STATS     DOWNLOAD\n";
 	$OUToutput .= "+----------------------+------------+--------------------------------+\n";
 	$OUToutput .= "| CATEGORY             | CALLS      | DESCRIPTION                    |\n";
 	$OUToutput .= "+----------------------+------------+--------------------------------+\n";
 
+	$CSV_text3.="\"CUSTOM STATUS CATEGORY STATS\"\n";
+	$CSV_text3.="\"CATEGORY\",\"CALLS\",\"DESCRIPTION\"\n";
 
 	$TOTCATcalls=0;
 	$r=0;
@@ -525,6 +537,7 @@ else
 			$CATname =	sprintf("%-30s", $vsc_name[$r]); while(strlen($CATname)>30) {$CATname = substr("$CATname", 0, -1);}
 
 			$OUToutput .= "| $category | $CATcount | $CATname |\n";
+			$CSV_text3.="\"$category\",\"$CATcount\",\"$CATname\"\n";
 			}
 		$r++;
 		}
@@ -534,6 +547,7 @@ else
 	$OUToutput .= "+----------------------+------------+--------------------------------+\n";
 	$OUToutput .= "| TOTAL                | $TOTCATcalls |\n";
 	$OUToutput .= "+----------------------+------------+\n";
+	$CSV_text3.="\"TOTAL\",\"$TOTCATcalls\"\n";
 
 
 
@@ -543,9 +557,11 @@ else
 
 	$TOTALleads = 0;
 	$OUToutput .= "\n";
-	$OUToutput .= "---------- PER LIST DETAIL STATS\n";
+	$OUToutput .= "---------- PER LIST DETAIL STATS     DOWNLOAD\n";
 	$OUToutput .= "\n";
 
+	$CSV_text4.="\"PER LIST DETAIL STATS\"\n\n";
+
 	$i=0;
 	while ($i < $listids_to_print)
 		{
@@ -560,6 +576,9 @@ else
 		$OUToutput .= "|    TOTAL LEADS: $header_list_count                                   |\n";
 		$OUToutput .= "+--------------------------------------------------------------+\n";
 
+		$CSV_text4.="\"LIST ID: $LISTIDlists[$i]\",\"$LISTIDlist_names[$i]\",\"$LISTIDlist_active[$i]\"\n";
+		$CSV_text4.="\"TOTAL LEADS:\",\"$header_list_count\"\n\n";
+
 		$HA_count=0;
 		$HA_percent=0;
 		$SALE_count=0;
@@ -575,7 +594,7 @@ else
 
 		$stmt="select count(*) from vicidial_list where list_id='$LISTIDlists[$i]' and status IN($human_answered_statuses);";
 		$rslt=mysql_query($stmt, $link);
-		if ($DB) {echo "$stmt\n";}
+		if ($DB) {$MAIN.="$stmt\n";}
 		$HA_results = mysql_num_rows($rslt);
 		if ($HA_results > 0)
 			{
@@ -588,7 +607,7 @@ else
 			}
 		$stmt="select count(*) from vicidial_list where list_id='$LISTIDlists[$i]' and status IN($sale_statuses);";
 		$rslt=mysql_query($stmt, $link);
-		if ($DB) {echo "$stmt\n";}
+		if ($DB) {$MAIN.="$stmt\n";}
 		$SALE_results = mysql_num_rows($rslt);
 		if ($SALE_results > 0)
 			{
@@ -601,7 +620,7 @@ else
 			}
 		$stmt="select count(*) from vicidial_list where list_id='$LISTIDlists[$i]' and status IN($dnc_statuses);";
 		$rslt=mysql_query($stmt, $link);
-		if ($DB) {echo "$stmt\n";}
+		if ($DB) {$MAIN.="$stmt\n";}
 		$DNC_results = mysql_num_rows($rslt);
 		if ($DNC_results > 0)
 			{
@@ -614,7 +633,7 @@ else
 			}
 		$stmt="select count(*) from vicidial_list where list_id='$LISTIDlists[$i]' and status IN($customer_contact_statuses);";
 		$rslt=mysql_query($stmt, $link);
-		if ($DB) {echo "$stmt\n";}
+		if ($DB) {$MAIN.="$stmt\n";}
 		$CC_results = mysql_num_rows($rslt);
 		if ($CC_results > 0)
 			{
@@ -627,7 +646,7 @@ else
 			}
 		$stmt="select count(*) from vicidial_list where list_id='$LISTIDlists[$i]' and status IN($not_interested_statuses);";
 		$rslt=mysql_query($stmt, $link);
-		if ($DB) {echo "$stmt\n";}
+		if ($DB) {$MAIN.="$stmt\n";}
 		$NI_results = mysql_num_rows($rslt);
 		if ($NI_results > 0)
 			{
@@ -640,7 +659,7 @@ else
 			}
 		$stmt="select count(*) from vicidial_list where list_id='$LISTIDlists[$i]' and status IN($unworkable_statuses);";
 		$rslt=mysql_query($stmt, $link);
-		if ($DB) {echo "$stmt\n";}
+		if ($DB) {$MAIN.="$stmt\n";}
 		$UW_results = mysql_num_rows($rslt);
 		if ($UW_results > 0)
 			{
@@ -678,11 +697,18 @@ else
 		$OUToutput .= "     +--------+-----------------------------------+------------+\n";
 
 
-
+		$CSV_text4.="\"STATUS FLAGS BREAKDOWN:\",\"(and % of total leads in the list)\"\n";
+		$CSV_text4.="\"Human Answer:\",\"$HA_count\",\"$HA_percent%\"\n";
+		$CSV_text4.="\"Sale:\",\"$SALE_count\",\"$SALE_percent%\"\n";
+		$CSV_text4.="\"DNC:\",\"$DNC_count\",\"$DNC_percent%\"\n";
+		$CSV_text4.="\"Customer Contact:\",\"$CC_count\",\"$CC_percent%\"\n";
+		$CSV_text4.="\"Not Interested:\",\"$NI_count\",\"$NI_percent%\"\n";
+		$CSV_text4.="\"Unworkable:\",\"$UW_count\",\"$UW_percent%\"\n\n";
+		$CSV_text4.="\"STATUS BREAKDOWN:\",\"\",\"COUNT\"\n";
 
 		$stmt="select status,count(*) from vicidial_list where list_id='$LISTIDlists[$i]' group by status order by status;";
 		$rslt=mysql_query($stmt, $link);
-		if ($DB) {echo "$stmt\n";}
+		if ($DB) {$MAIN.="$stmt\n";}
 		$liststatussum_to_print = mysql_num_rows($rslt);
 		$r=0;
 		while ($r < $liststatussum_to_print)
@@ -690,7 +716,7 @@ else
 			$row=mysql_fetch_row($rslt);
 			$LISTIDstatus[$r] =	$row[0];
 			$LISTIDcounts[$r] =	$row[1];
-				if ($DB) {echo "$r|$LISTIDstatus[$r]|$LISTIDcounts[$r]|    |$row[0]|$row[1]|
\n";} + if ($DB) {$MAIN.="$r|$LISTIDstatus[$r]|$LISTIDcounts[$r]| |$row[0]|$row[1]|
\n";} $r++; } @@ -705,7 +731,7 @@ else $LISTIDname = sprintf("%-42s", "$LIDstatus_format | $statname_list[$LIDstatus]"); while(strlen($LISTIDname)>42) {$LISTIDname = substr("$LISTIDname", 0, -1);} $OUToutput .= " | $LISTIDname | $LISTID_status_count |\n"; - + $CSV_text4.="\"".trim($LIDstatus_format)."\",\"$statname_list[$LIDstatus]\",\"$LISTID_status_count\"\n"; $r++; } $TOTALleads = sprintf("%10s", $TOTALleads); @@ -714,6 +740,8 @@ else $OUToutput .= " | TOTAL: | $TOTALleads |\n"; $OUToutput .= " +--------------------------------------------+------------+\n"; + $CSV_text4.="\"TOTAL:\",\"\",\"$TOTALleads\"\n\n\n"; + $i++; } @@ -723,17 +751,45 @@ else - echo "$OUToutput"; + $MAIN.="$OUToutput"; $ENDtime = date("U"); $RUNtime = ($ENDtime - $STARTtime); - echo "\nRun Time: $RUNtime seconds|$db_source\n"; + $MAIN.="\nRun Time: $RUNtime seconds|$db_source\n"; + $MAIN.="
\n"; + $MAIN.="
\n"; + $MAIN.="\n"; + + } + + if ($file_download>0) { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AST_LISTS_campaign_stats_$US$FILE_TIME.csv"; + $CSV_var="CSV_text".$file_download; + $CSV_text=preg_replace('/^ +/', '', $$CSV_var); + $CSV_text=preg_replace('/\n +,/', ',', $CSV_text); + $CSV_text=preg_replace('/ +\"/', '"', $CSV_text); + $CSV_text=preg_replace('/\" +/', '"', $CSV_text); + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$CSV_text"; + + exit; + } else { + echo $HEADER; + require("admin_header.php"); + echo $MAIN; } ?> - -
- - diff --git a/agc_2-X/trunk/www/vicidial/AST_OUTBOUNDsummary_interval.php b/agc_2-X/trunk/www/vicidial/AST_OUTBOUNDsummary_interval.php index bfe26cb6..ab301107 100644 --- a/agc_2-X/trunk/www/vicidial/AST_OUTBOUNDsummary_interval.php +++ b/agc_2-X/trunk/www/vicidial/AST_OUTBOUNDsummary_interval.php @@ -1,7 +1,7 @@ LICENSE: AGPLv2 +# Copyright (C) 2011 Matt Florell LICENSE: AGPLv2 # # CHANGES # @@ -12,6 +12,7 @@ # 100712-1324 - Added system setting slave server option # 100802-2347 - Added User Group Allowed Reports option validation # 100914-1326 - Added lookup for user_level 7 users to set to reports only which will remove other admin links +# 110703-1825 - Added download option # require("dbconnect.php"); @@ -45,6 +46,8 @@ if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} if (isset($_GET["DB"])) {$DB=$_GET["DB"];} elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); @@ -60,7 +63,7 @@ $db_source = 'M'; ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin,outbound_autodial_active,slave_db_server,reports_use_slave_db FROM system_settings;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); if ($qm_conf_ct > 0) { @@ -79,12 +82,12 @@ if ( (strlen($slave_db_server)>5) and (preg_match("/$report_name/",$reports_use_ $use_slave_server=1; $db_source = 'S'; require("dbconnect.php"); - echo "\n"; + $MAIN.="\n"; } $stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $gmt_conf_ct = mysql_num_rows($rslt); $dst = date("I"); if ($gmt_conf_ct > 0) @@ -96,7 +99,7 @@ if ($gmt_conf_ct > 0) $auth=0; $stmt="SELECT full_name,user_level,user_group from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); $records_to_print = mysql_num_rows($rslt); @@ -110,7 +113,7 @@ if ($records_to_print > 0) } $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level='7' and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $reports_only_user=$row[0]; @@ -169,7 +172,7 @@ while($i < $group_ct) $stmt="select campaign_id,campaign_name from vicidial_campaigns $whereLOGallowed_campaignsSQL order by campaign_id;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $campaigns_to_print = mysql_num_rows($rslt); $i=0; while ($i < $campaigns_to_print) @@ -182,7 +185,7 @@ while ($i < $campaigns_to_print) $i++; } -if ($DB) {echo "$group_string|$i\n";} +if ($DB) {$MAIN.="$group_string|$i\n";} $rollover_groups_count=0; $i=0; @@ -206,7 +209,7 @@ while($i < $group_ct) { $stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';"; $rslt=mysql_query($stmt, $link); - if ($DB) {echo "$stmt\n";} + if ($DB) {$MAIN.="$stmt\n";} $in_groups_to_print = mysql_num_rows($rslt); if ($in_groups_to_print > 0) { @@ -238,7 +241,7 @@ else $stmt="select vsc_id,vsc_name from vicidial_status_categories;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $statcats_to_print = mysql_num_rows($rslt); $i=0; while ($i < $statcats_to_print) @@ -252,7 +255,7 @@ while ($i < $statcats_to_print) $stmt="select call_time_id,call_time_name from vicidial_call_times order by call_time_id;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $times_to_print = mysql_num_rows($rslt); $i=0; while ($i < $times_to_print) @@ -266,7 +269,7 @@ while ($i < $times_to_print) $customer_interactive_statuses=''; $stmt="select status from vicidial_statuses where human_answered='Y';"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $statha_to_print = mysql_num_rows($rslt); $i=0; while ($i < $statha_to_print) @@ -277,7 +280,7 @@ while ($i < $statha_to_print) } $stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $statha_to_print = mysql_num_rows($rslt); $i=0; while ($i < $statha_to_print) @@ -293,7 +296,7 @@ else $stmt="select status from vicidial_statuses where sale='Y';"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $statsale_to_print = mysql_num_rows($rslt); $i=0; $sale_ct=0; @@ -306,7 +309,7 @@ while ($i < $statsale_to_print) } $stmt="select status from vicidial_campaign_statuses where sale='Y';"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $statsale_to_print = mysql_num_rows($rslt); $i=0; while ($i < $statsale_to_print) @@ -319,7 +322,7 @@ while ($i < $statsale_to_print) $stmt="select status from vicidial_statuses where dnc='Y';"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $statdnc_to_print = mysql_num_rows($rslt); $i=0; $dnc_ct=0; @@ -332,7 +335,7 @@ while ($i < $statdnc_to_print) } $stmt="select status from vicidial_campaign_statuses where dnc='Y';"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $statdnc_to_print = mysql_num_rows($rslt); $i=0; while ($i < $statdnc_to_print) @@ -343,159 +346,152 @@ while ($i < $statdnc_to_print) $i++; } -?> +$HEADER.="\n"; +$HEADER.="\n"; +$HEADER.="\n"; - - - +$HEADER.="\n"; +$HEADER.="\n"; -\n"; -echo "\n"; - -echo "\n"; -echo "$report_name\n"; +$HEADER.="\n"; +$HEADER.="$report_name\n"; if ($bareformat < 1) { $short_header=1; - require("admin_header.php"); - echo "
"; + $MAIN.="
"; if ($DB > 0) { - echo "
\n"; - echo "$group_ct|$group_string|$group_SQL\n"; - echo "
\n"; - echo "$shift|$query_date|$end_date\n"; - echo "
\n"; + $MAIN.="
\n"; + $MAIN.="$group_ct|$group_string|$group_SQL\n"; + $MAIN.="
\n"; + $MAIN.="$shift|$query_date|$end_date\n"; + $MAIN.="
\n"; } - echo "
\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "Date Range:
\n"; - echo ""; + $MAIN.=" \n"; + $MAIN.=" \n"; - ?> - - \n"; + $MAIN.="\n"; - echo "\n"; + $MAIN.="
\n"; + $MAIN.="\n"; + $MAIN.="\n"; + $MAIN.="\n"; + $MAIN.="Date Range:
\n"; + $MAIN.=""; - echo " to "; + $MAIN.=" to "; - ?> - -
Campaigns:
"; - echo "
Campaigns:
"; + $MAIN.="\n"; - echo "
"; - echo "Include Drop  
Rollover:
"; - echo "
\n"; - echo "Time Interval:
"; - echo "\n"; + $MAIN.="
"; + $MAIN.="Include Drop  
Rollover:
"; + $MAIN.="
\n"; + $MAIN.="Time Interval:
"; + $MAIN.="\n"; - echo "
\n"; - echo "         "; - echo "MODIFY | "; - echo "REPORTS"; - echo "

\n"; - echo "
        "; - echo "\n"; + {$MAIN.="\n";} - echo "
\n"; - echo "Call Time:
\n"; - echo "\n"; + $MAIN.="
\n"; + $MAIN.="         "; + $MAIN.="DOWNLOAD | "; + $MAIN.="MODIFY | "; + $MAIN.="REPORTS"; + $MAIN.="

\n"; + $MAIN.="
        "; + $MAIN.="\n"; + + $MAIN.="
\n"; + + $MAIN.="Call Time:
\n"; + $MAIN.="\n"; - echo "
\n"; - echo "
\n"; - echo "\n\n"; + $MAIN.="\n"; + $MAIN.="
\n"; + $MAIN.="
\n"; + $MAIN.="\n\n"; - echo "
\n\n";
+	$MAIN.="
\n\n";
 	}
 
 if ($group_ct < 1)
 	{
-	echo "\n\n";
-	echo "PLEASE SELECT A CAMPAIGN AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
+	$MAIN.="\n\n";
+	$MAIN.="PLEASE SELECT A CAMPAIGN AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
 	}
 
 else
@@ -509,7 +505,7 @@ else
 		{
 		$stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$shift';";
 		$rslt=mysql_query($stmt, $link);
-		if ($DB) {echo "$stmt\n";}
+		if ($DB) {$MAIN.="$stmt\n";}
 		$calltimes_to_print = mysql_num_rows($rslt);
 		if ($calltimes_to_print > 0)
 			{
@@ -579,7 +575,7 @@ else
 			$Hcalltime_HHMM[$h] = "$H_test";
 			}
 		if ($DB)
-			{echo "( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) ) $hh $hf\n";}
+			{$MAIN.="( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) ) $hh $hf\n";}
 		$h++;
 		}
 
@@ -589,7 +585,7 @@ else
 
 	$MAIN .= "Outbound Summary Interval Report: $group_string          $NOW_TIME\n";
 
-
+	$CSV_main.="\"Outbound Summary Interval Report:\"\n\"$group_string\"\n\"$NOW_TIME\"\n\n";
 
 
 	##### Loop through each campaign and gether stats
@@ -603,6 +599,11 @@ else
 		$MAIN .= "| CAMPAIGN                                 | CALLS  | CALLS  | CALLS  | CALLS  | CALLS  | PERCENT| PERCENT| TIME(H:M:S)| TIME(H:M:S)|\n";
 		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
 
+		$CSV_main.="\"MULTI-CAMPAIGN BREAKDOWN:\"\n";
+		$CSV_main.="\"CAMPAIGN\",\"TOTAL CALLS\",\"SYSTEM RELEASE CALLS\",\"AGENT RELEASE CALLS\",\"SALE CALLS\",\"DNC CALLS\",\"NO ANSWER PERCENT\",\"DROP PERCENT\",\"AGENT LOGIN TIME(H:M:S)\",\"AGENT PAUSE TIME(H:M:S)\"\n";
+		$CSV_subreports="";
+		
+
 		$i=0;
 		$TOTcalls_count=0;
 		$TOTsystem_count=0;
@@ -622,7 +623,7 @@ else
 			##### Gather Agent time records
 			$stmt="select event_time,UNIX_TIMESTAMP(event_time),campaign_id,pause_sec,wait_sec,talk_sec,dispo_sec from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' and campaign_id IN('$group_drop[$i]','$group[$i]');";
 			$rslt=mysql_query($stmt, $link);
-			if ($DB) {echo "$stmt\n";}
+			if ($DB) {$MAIN.="$stmt\n";}
 			$AGENTtime_to_print = mysql_num_rows($rslt);
 			$s=0;
 			while ($s < $AGENTtime_to_print)
@@ -640,7 +641,7 @@ else
 			##### Gather outbound calls
 			$stmt = "SELECT status,length_in_sec,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id,uniqueid,lead_id from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
 			$rslt=mysql_query($stmt, $link);
-			if ($DB) {echo "$stmt\n";}
+			if ($DB) {$MAIN.="$stmt\n";}
 			$calls_to_parse = mysql_num_rows($rslt);
 			$p=0;
 			while ($p < $calls_to_parse)
@@ -667,7 +668,7 @@ else
 				##### Gather inbound calls from drop inbound group if selected
 				$stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';";
 				$rslt=mysql_query($stmt, $link);
-				if ($DB) {echo "$stmt\n";}
+				if ($DB) {$MAIN.="$stmt\n";}
 				$in_groups_to_print = mysql_num_rows($rslt);
 				if ($in_groups_to_print > 0)
 					{
@@ -681,7 +682,7 @@ else
 				$agent_alert_delayZ=0;
 				$stmt="select status,length_in_sec,queue_seconds,agent_alert_delay,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id,closecallid,lead_id,uniqueid from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id and campaign_id='$group_drop[$i]';";
 				$rslt=mysql_query($stmt, $link);
-				if ($DB) {echo "$stmt\n";}
+				if ($DB) {$MAIN.="$stmt\n";}
 				$INallcalls_to_printZ = mysql_num_rows($rslt);
 				$y=0;
 				while ($y < $INallcalls_to_printZ)
@@ -841,7 +842,7 @@ else
 
 					if ($print_calls > 0)
 						{
-						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$MAIN.="$row[5]\t$row[6]\t$TEMPtalk\n";
 						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
 						}
 					$q++;
@@ -849,7 +850,7 @@ else
 				else
 					{$out_of_call_time++;}
 				if ($DB)
-					{echo "$Hcalltime[$Chour] | AGENT: $agent_sec[$i] PAUSE: $pause_sec[$i]\n";}
+					{$MAIN.="$Hcalltime[$Chour] | AGENT: $agent_sec[$i] PAUSE: $pause_sec[$i]\n";}
 				$p++;
 				}
 
@@ -979,7 +980,7 @@ else
 
 					if ($print_calls > 0)
 						{
-						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$MAIN.="$row[5]\t$row[6]\t$TEMPtalk\n";
 						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
 						}
 					$q++;
@@ -987,7 +988,7 @@ else
 				else
 					{$out_of_call_time++;}
 				if ($DB)
-					{echo "$call_time > $CTstart | $call_time < $CTstop | $Cwday | $Chour | $Hcalltime[$Chour] | $talk_sec[$i]\n";}
+					{$MAIN.="$call_time > $CTstart | $call_time < $CTstop | $Cwday | $Chour | $Hcalltime[$Chour] | $talk_sec[$i]\n";}
 				$p++;
 				}
 
@@ -1004,7 +1005,7 @@ else
 			if ($print_calls > 0)
 				{
 				$PCtemptalkmin = ($PCtemptalk  / 60);
-				echo "$q\t$PCtemptalk\t$PCtemptalkmin\n";
+				$MAIN.="$q\t$PCtemptalk\t$PCtemptalkmin\n";
 				}
 
 			if ( ($calls_count_IN[$i] > 0) and ($drop_count_OUT[$i] > 0) )
@@ -1069,17 +1070,21 @@ else
 			while(strlen($groupDISPLAY)>40) {$groupDISPLAY = substr("$groupDISPLAY", 0, -1);}
 
 			$MAIN .= "| $groupDISPLAY | $gTOTALcalls | $gSYSTEMcalls | $gAGENTcalls | $gPTPcalls | $gRTPcalls | $gNApercent%| $gDROPpercent%| $gSUMagent | $gSUMpause |";
+			$CSV_main.="\"$groupDISPLAY\",\"$gTOTALcalls\",\"$gSYSTEMcalls\",\"$gAGENTcalls\",\"$gPTPcalls\",\"$gRTPcalls\",\"$gNApercent%\",\"$gDROPpercent%\",\"$gSUMagent\",\"$gSUMpause\"\n";
 			if ($DB) {$MAIN .= " $gDROPcalls($calls_count_IN[$i]/$drop_count_OUT[$i]) |";}
 			$MAIN .= "\n";
 
 			### hour by hour sumaries
-			$SUBoutput .= "\n---------- $group[$i] - $group_cname[$i]     INTERVAL BREAKDOWN:\n";
+			$SUBoutput .= "\n---------- $group[$i] - $group_cname[$i]\nINTERVAL BREAKDOWN:\n";
 			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
 			$SUBoutput .= "|                     |        | SYSTEM | AGENT  |        |        | NO     |        | AGENT      | AGENT      |\n";
 			$SUBoutput .= "|                     | TOTAL  | RELEASE| RELEASE| SALE   | DNC    | ANSWER | DROP   | LOGIN      | PAUSE      |\n";
 			$SUBoutput .= "| INTERVAL            | CALLS  | CALLS  | CALLS  | CALLS  | CALLS  | PERCENT| PERCENT| TIME(H:M:S)| TIME(H:M:S)|\n";
 			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
 
+			$CSV_subreports.="\n\n\"$group[$i] - $group_cname[$i]\"\n\"INTERVAL BREAKDOWN:\"\n";
+			$CSV_subreports.="\"INTERVAL\",\"TOTAL CALLS\",\"SYSTEM RELEASE CALLS\",\"AGENT RELEASE CALLS\",\"SALE CALLS\",\"DNC CALLS\",\"NO ANSWER PERCENT\",\"DROP PERCENT\",\"AGENT LOGIN TIME (H:M:S)\",\"AGENT PAUSE TIME(H:M:S)\"\n";
+
 			$h=0;
 			while ($h < $interval_count)
 				{
@@ -1167,6 +1172,7 @@ else
 					$hPRINT =		sprintf("%19s", $Hcalltime_HHMM[$h]);
 
 					$SUBoutput .= "| $hPRINT | $hTOTALcalls | $hSYSTEMcalls | $hAGENTcalls | $hPTPcalls | $hRTPcalls | $hNApercent%| $hDROPpercent%| $hSUMagent | $hSUMpause |\n";
+					$CSV_subreports.="\"$hPRINT\",\"$hTOTALcalls\",\"$hSYSTEMcalls\",\"$hAGENTcalls\",\"$hPTPcalls\",\"$hRTPcalls\",\"$hNApercent%\",\"$hDROPpercent%\",\"$hSUMagent\",\"$hSUMpause\"\n";
 					if ($DB) {$SUBoutput .= " $hDROPcalls($Hcalls_count_IN[$h]/$Hdrop_count_OUT[$h]) |\n";}
 					}
 
@@ -1219,7 +1225,7 @@ else
 			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
 			$SUBoutput .= "| TOTALS              | $hTOTcalls_count | $hTOTsystem_count | $hTOTagent_count | $hTOTptp_count | $hTOTrtp_count | $hTOTna_percent%| $hTOTdrop_percent%| $hTOTagent_sec | $hTOTpause_sec |\n";
 			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
-
+			$CSV_subreports.="\"TOTALS\",\"$hTOTcalls_count\",\"$hTOTsystem_count\",\"$hTOTagent_count\",\"$hTOTptp_count\",\"$hTOTrtp_count\",\"$hTOTna_percent%\",\"$hTOTdrop_percent%\",\"$hTOTagent_sec\",\"$hTOTpause_sec\"\n";
 			$i++;
 			}
 
@@ -1273,35 +1279,62 @@ else
 		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
 		$MAIN .= "| TOTALS       Campaigns: $i             | $TOTcalls_count | $TOTsystem_count | $TOTagent_count | $TOTptp_count | $TOTrtp_count | $TOTna_percent%| $TOTdrop_percent%| $TOTagent_sec | $TOTpause_sec |\n";
 		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		$CSV_main.="\"TOTALS       Campaigns: $i\",\"$TOTcalls_count\",\"$TOTsystem_count\",\"$TOTagent_count\",\"$TOTptp_count\",\"$TOTrtp_count\",\"$TOTna_percent%\",\"$TOTdrop_percent%\",\"$TOTagent_sec\",\"$TOTpause_sec\"\n";
 		}
 
 	if ($costformat > 0)
 		{
-		echo "
\n"; + $MAIN.="
\n"; $inbound_cost = ($rawTOTtalk_min * $inbound_rate); $inbound_cost = sprintf("%8.2f", $inbound_cost); - echo "INBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$inbound_rate = \$$inbound_cost\n"; + $MAIN.="INBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$inbound_rate = \$$inbound_cost\n"; exit; } - echo "$MAIN"; - echo "$SUBoutput"; + if ($file_download>0) { +# $CSV_report=fopen("AST_OUTBOUNDsummary_interval.csv", "w"); +# $CSV_text=preg_replace('/\s+,/', ',', $CSV_main.$CSV_subreports); +# fwrite($CSV_report, $CSV_text); +# fclose($CSV_report); + $CSVfilename = "AST_OUTBOUNDsummary_interval$US$FILE_TIME.csv"; + $CSV_text=$CSV_main.$CSV_subreports; + $CSV_text=preg_replace('/ +\"/', '"', $CSV_text); + $CSV_text=preg_replace('/\" +/', '"', $CSV_text); + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$CSV_text"; + + exit; + } else { + echo "$HEADER"; + require("admin_header.php"); + echo "$MAIN"; + echo "$SUBoutput"; + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\n\nRun Time: $RUNtime seconds|$db_source\n"; + echo ""; + echo "
"; + + echo ""; + } - - $ENDtime = date("U"); - $RUNtime = ($ENDtime - $STARTtime); - echo "\n\nRun Time: $RUNtime seconds|$db_source\n"; } ?> - -
- - 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 c1dad0bb..081d34a2 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 @@ -1,7 +1,7 @@ LICENSE: AGPLv2 +# Copyright (C) 2011 Matt Florell LICENSE: AGPLv2 # # CHANGES # @@ -26,6 +26,7 @@ # 100712-1324 - Added system setting slave server option # 100802-2347 - Added User Group Allowed Reports option validation and allowed campaigns restrictions # 100914-1326 - Added lookup for user_level 7 users to set to reports only which will remove other admin links +# 110703-1739 - Added file download option # require("dbconnect.php"); @@ -52,12 +53,12 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];} elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} if (strlen($shift)<2) {$shift='ALL';} -$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date&group=$group&user_group=$user_group&shift=$shift&DB=$DB"; - $report_name = 'Agent Performance Detail'; $db_source = 'M'; @@ -65,7 +66,7 @@ $db_source = 'M'; ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin,outbound_autodial_active,slave_db_server,reports_use_slave_db FROM system_settings;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$HTML_text.="$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); if ($qm_conf_ct > 0) { @@ -84,21 +85,21 @@ if ( (strlen($slave_db_server)>5) and (preg_match("/$report_name/",$reports_use_ $use_slave_server=1; $db_source = 'S'; require("dbconnect.php"); - echo "\n"; + $HTML_text.="\n"; } $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$HTML_text.="|$stmt|\n";} if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $auth=$row[0]; $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level='7' and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$HTML_text.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $reports_only_user=$row[0]; @@ -112,13 +113,13 @@ if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) } $stmt="SELECT user_group from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$HTML_text.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGuser_group = $row[0]; $stmt="SELECT allowed_campaigns,allowed_reports from vicidial_user_groups where user_group='$LOGuser_group';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$HTML_text.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGallowed_campaigns = $row[0]; @@ -163,7 +164,7 @@ while($i < $group_ct) $stmt="select campaign_id from vicidial_campaigns $whereLOGallowed_campaignsSQL order by campaign_id;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$HTML_text.="$stmt\n";} $campaigns_to_print = mysql_num_rows($rslt); $i=0; while ($i < $campaigns_to_print) @@ -176,7 +177,7 @@ while ($i < $campaigns_to_print) } $stmt="select user_group from vicidial_user_groups order by user_group;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$HTML_text.="$stmt\n";} $user_groups_to_print = mysql_num_rows($rslt); $i=0; while ($i < $user_groups_to_print) @@ -225,123 +226,120 @@ else $user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)"; } -if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i
";} -?> +if ($DB) {$HTML_text.="$user_group_string|$user_group_ct|$user_groupQS|$i
";} - - - +$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date$groupQS$user_groupQS&shift=$shift&DB=$DB"; -\n"; -echo "\n"; +$HTML_head.="\n"; +$HTML_head.="\n"; +$HTML_head.="\n"; -echo "\n"; -echo "$report_name\n"; + +$HTML_head.="\n"; +$HTML_head.="\n"; + +$HTML_head.="\n"; +$HTML_head.="$report_name\n"; $short_header=1; - require("admin_header.php"); +# require("admin_header.php"); -echo "
"; +$HTML_text.="
"; -echo "
\n"; -echo "
Dates:
"; -echo "\n"; -echo ""; +$HTML_text.="\n"; +$HTML_text.="
Dates:
"; +$HTML_text.="\n"; +$HTML_text.=""; -?> - -\n"; +$HTML_text.="var o_cal = new tcal ({\n"; +$HTML_text.=" // form name\n"; +$HTML_text.=" 'formname': 'vicidial_report',\n"; +$HTML_text.=" // input name\n"; +$HTML_text.=" 'controlname': 'query_date'\n"; +$HTML_text.="});\n"; +$HTML_text.="o_cal.a_tpl.yearscroll = false;\n"; +$HTML_text.="// o_cal.a_tpl.weekstart = 1; // Monday week start\n"; +$HTML_text.="\n"; -echo "
to
"; +$HTML_text.="
to
"; -?> - -\n"; +$HTML_text.="var o_cal = new tcal ({\n"; +$HTML_text.=" // form name\n"; +$HTML_text.=" 'formname': 'vicidial_report',\n"; +$HTML_text.=" // input name\n"; +$HTML_text.=" 'controlname': 'end_date'\n"; +$HTML_text.="});\n"; +$HTML_text.="o_cal.a_tpl.yearscroll = false;\n"; +$HTML_text.="// o_cal.a_tpl.weekstart = 1; // Monday week start\n"; +$HTML_text.="\n"; -echo "
Campaigns:
"; -echo "
Campaigns:
"; +$HTML_text.="\n"; -echo "
User Groups:
"; -echo "\n"; +$HTML_text.="
User Groups:
"; +$HTML_text.="\n"; -echo "
Shift:
"; -echo "

\n"; -echo "\n"; -echo "
        "; +$HTML_text.="\n"; +$HTML_text.="Shift:
"; +$HTML_text.="

\n"; +$HTML_text.="\n"; +$HTML_text.="
        "; -echo "          \n"; -echo " REPORTS \n"; -echo "\n"; -echo "
"; +$HTML_text.="          \n"; +$HTML_text.=" REPORTS \n"; +$HTML_text.="\n"; +$HTML_text.="
"; -echo "
\n\n"; +$HTML_text.="\n\n"; -echo "
\n";
+$HTML_text.="
\n";
 
 
 if (!$group)
 {
-echo "\n";
-echo "PLEASE SELECT A CAMPAIGN AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
-echo " NOTE: stats taken from shift specified\n";
+$HTML_text.="\n";
+$HTML_text.="PLEASE SELECT A CAMPAIGN AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
+$HTML_text.=" NOTE: stats taken from shift specified\n";
 }
 
 else
@@ -371,10 +369,10 @@ $query_date_END = "$end_date $time_END";
 if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
 else {$ugSQL='';}
 
-echo "Agent Performance Detail                        $NOW_TIME\n";
+$HTML_text.="Agent Performance Detail                        $NOW_TIME\n";
 
-echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
-echo "---------- AGENTS Details -------------\n\n";
+$HTML_text.="Time range: $query_date_BEGIN to $query_date_END\n\n";
+$HTML_text.="---------- AGENTS Details -------------\n\n";
 
 
 
@@ -383,6 +381,12 @@ echo "---------- AGENTS Details -------------\n\n";
 $statuses='-';
 $statusesTXT='';
 $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","CALLS","TIME","PAUSE","PAUSAVG","WAIT","WAITAVG","TALK","TALKAVG","DISPO","DISPAVG","DEAD","DEADAVG","CUSTOMER","CUSTAVG"';
+
 $statusesHTML='';
 $statusesARY[0]='';
 $j=0;
@@ -393,7 +397,7 @@ $k=0;
 
 $stmt="select count(*) as calls,sum(talk_sec) as talk,full_name,vicidial_users.user,sum(pause_sec),sum(wait_sec),sum(dispo_sec),status,sum(dead_sec) from vicidial_users,vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and vicidial_users.user=vicidial_agent_log.user and pause_sec<65000 and wait_sec<65000 and talk_sec<65000 and dispo_sec<65000 $group_SQL $user_group_SQL group by user,full_name,status order by full_name,user,status desc limit 500000;";
 $rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
+if ($DB) {$HTML_text.="$stmt\n";}
 $rows_to_print = mysql_num_rows($rslt);
 $i=0;
 while ($i < $rows_to_print)
@@ -418,6 +422,9 @@ while ($i < $rows_to_print)
 		$statusesTXT = sprintf("%8s", $status[$i]);
 		$statusesHEAD .= "----------+";
 		$statusesHTML .= " $statusesTXT |";
+
+		$CSV_header.=",\"$status[$i]\"";
+
 		$statuses .= "$status[$i]-";
 		$statusesARY[$j] = $status[$i];
 		$j++;
@@ -433,10 +440,13 @@ while ($i < $rows_to_print)
 	$i++;
 	}
 
-echo "CALL STATS BREAKDOWN: (Statistics related to handling of calls only)\n";
-echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
-echo "| USER NAME       | ID       | CALLS  | TIME      | PAUSE    |PAUSAVG | WAIT     |WAITAVG | TALK     |TALKAVG | DISPO    |DISPAVG | DEAD     |DEADAVG | CUSTOMER |CUSTAVG |$statusesHTML\n";
-echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+$CSV_header.="\n";
+$CSV_lines='';
+
+$HTML_text.="CALL STATS BREAKDOWN: (Statistics related to handling of calls only)     [DOWNLOAD]\n";
+$HTML_text.="+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+$HTML_text.="| USER NAME       | ID       | CALLS  | TIME      | PAUSE    |PAUSAVG | WAIT     |WAITAVG | TALK     |TALKAVG | DISPO    |DISPAVG | DEAD     |DEADAVG | CUSTOMER |CUSTAVG |$statusesHTML\n";
+$HTML_text.="+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
 
 
 ### BEGIN loop through each user ###
@@ -454,6 +464,7 @@ while ($m < $k)
 	$Sdead_sec=0;
 	$Scustomer_sec=0;
 	$SstatusesHTML='';
+	$CSVstatuses='';
 
 	### BEGIN loop through each status ###
 	$n=0;
@@ -476,6 +487,9 @@ while ($m < $k)
 				$Scustomer_sec =	($Scustomer_sec + $customer_sec[$i]);
 				$SstatusTXT = sprintf("%8s", $calls[$i]);
 				$SstatusesHTML .= " $SstatusTXT |";
+
+				$CSVstatuses.=",\"$calls[$i]\"";
+
 				$status_found++;
 				}
 			$i++;
@@ -483,6 +497,7 @@ while ($m < $k)
 		if ($status_found < 1)
 			{
 			$SstatusesHTML .= "        0 |";
+			$CSVstatuses.=",\"0\"";
 			}
 		### END loop through each stat line ###
 		$n++;
@@ -561,6 +576,10 @@ while ($m < $k)
 
 	$Toutput = "| $Sfull_name | $Suser | $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_name\",";
+	$CSV_lines.=eregi_replace(" ", "", "\"$Suser\",\"$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\n");
+
 	$TOPsorted_output[$m] = $Toutput;
 
 	if ($stage == 'ID')
@@ -570,7 +589,7 @@ while ($m < $k)
 	if ($stage == 'TIME')
 		{$TOPsort[$m] =	'' . sprintf("%08s", $Stime) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);}
 	if (!ereg("ID|TIME|LEADS",$stage))
-		{echo "$Toutput";}
+		{$HTML_text.="$Toutput";}
 
 	$m++;
 	}
@@ -592,7 +611,7 @@ if (ereg("ID|TIME|LEADS",$stage))
 		$sort_split = explode("-----",$TOPsort[$m]);
 		$i = $sort_split[1];
 		$sort_order[$m] = "$i";
-		echo "$TOPsorted_output[$i]";
+		$HTML_text.="$TOPsorted_output[$i]";
 		$m++;
 		}
 	}
@@ -603,6 +622,7 @@ if (ereg("ID|TIME|LEADS",$stage))
 ###### LAST LINE FORMATTING ##########
 ### BEGIN loop through each status ###
 $SUMstatusesHTML='';
+$CSVSUMstatuses='';
 $n=0;
 while ($n < $j)
 	{
@@ -629,6 +649,7 @@ while ($n < $j)
 		{
 		$SUMstatusTXT = sprintf("%8s", $Scalls);
 		$SUMstatusesHTML .= " $SUMstatusTXT |";
+		$CSVSUMstatuses.=",\"$Scalls\"";
 		}
 	$n++;
 	}
@@ -693,11 +714,40 @@ while(strlen($TOTavgWAIT_MS)>6) {$TOTavgWAIT_MS = substr("$TOTavgWAIT_MS", 0, -1
 while(strlen($TOTavgCUSTOMER_MS)>6) {$TOTavgCUSTOMER_MS = substr("$TOTavgCUSTOMER_MS", 0, -1);}
 
 
-echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
-echo "|  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";
-echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+$HTML_text.="+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+$HTML_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";
+$HTML_text.="+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
 
-echo "\n\n";
+$CSV_total=eregi_replace(" ", "", "\"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 ($file_download == 1)
+	{
+	$FILE_TIME = date("Ymd-His");
+	$CSVfilename = "AGENT_PERFORMACE_DETAIL$US$FILE_TIME.csv";
+
+	// We'll be outputting a TXT file
+	header('Content-type: application/octet-stream');
+
+	// It will be called LIST_101_20090209-121212.txt
+	header("Content-Disposition: attachment; filename=\"$CSVfilename\"");
+	header('Expires: 0');
+	header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
+	header('Pragma: public');
+	ob_clean();
+	flush();
+
+	echo "$CSV_header$CSV_lines$CSV_total";
+
+	exit;
+	}
+
+$CSV_report=fopen("AST_agent_performance_detail.csv", "w");
+fwrite($CSV_report, $CSV_header);
+fwrite($CSV_report, $CSV_lines);
+fwrite($CSV_report, $CSV_total);
+
+
+$HTML_text.="\n\n";
 
 
 
@@ -717,6 +767,7 @@ $sub_statuses='-';
 $sub_statusesTXT='';
 $sub_statusesHEAD='';
 $sub_statusesHTML='';
+$CSV_statuses='';
 $sub_statusesARY=$MT;
 $j=0;
 $PCusers='-';
@@ -725,7 +776,7 @@ $PCuser_namesARY=$MT;
 $k=0;
 $stmt="select full_name,vicidial_users.user,sum(pause_sec),sub_status,sum(wait_sec + talk_sec + dispo_sec) from vicidial_users,vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and vicidial_users.user=vicidial_agent_log.user and pause_sec<65000 $group_SQL $user_group_SQL group by user,full_name,sub_status order by user,full_name,sub_status desc limit 100000;";
 $rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
+if ($DB) {$HTML_text.="$stmt\n";}
 $subs_to_print = mysql_num_rows($rslt);
 $i=0;
 while ($i < $subs_to_print)
@@ -746,6 +797,7 @@ while ($i < $subs_to_print)
 		$sub_statusesHTML .= " $sub_statusesTXT |";
 		$sub_statuses .= "$sub_status[$i]-";
 		$sub_statusesARY[$j] = $sub_status[$i];
+		$CSV_statuses.=",\"$sub_status[$i]\"";
 		$j++;
 		}
 	if (!eregi("-$PCuser[$i]-", $PCusers))
@@ -759,17 +811,22 @@ while ($i < $subs_to_print)
 	$i++;
 	}
 
-echo "PAUSE CODE BREAKDOWN:\n";
-echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
-echo "| USER NAME       | ID       | TOTAL    | NONPAUSE | PAUSE    |  |$sub_statusesHTML\n";
-echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
+$HTML_text.="PAUSE CODE BREAKDOWN:     [DOWNLOAD]\n\n";
+$HTML_text.="+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
+$HTML_text.="| USER NAME       | ID       | TOTAL    | NONPAUSE | PAUSE    |  |$sub_statusesHTML\n";
+$HTML_text.="+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
 
+$CSV_header="\"Agent Performance Detail                        $NOW_TIME\"\n";
+$CSV_header.="\"Time range: $query_date_BEGIN to $query_date_END\"\n\n";
+$CSV_header.="\"PAUSE CODE BREAKDOWN:\"\n";
+$CSV_header.="\"USER NAME\",\"ID\",\"TOTAL\",\"NONPAUSE\",\"PAUSE\",$CSV_statuses\n";
 
 ### BEGIN loop through each user ###
 $m=0;
 $Suser_ct = count($usersARY);
 $TOTtotNONPAUSE = 0;
 $TOTtotTOTAL = 0;
+$CSV_lines="";
 
 while ($m < $k)
 	{
@@ -786,6 +843,7 @@ while ($m < $k)
 	$Snon_pause_sec=0;
 	$Stotal_sec=0;
 	$SstatusesHTML='';
+	$CSV_statuses="";
 
 	### BEGIN loop through each status ###
 	$n=0;
@@ -808,6 +866,7 @@ while ($m < $k)
 
 				$SstatusTXT = sprintf("%8s", $pfUSERcodePAUSE_MS);
 				$SstatusesHTML .= " $SstatusTXT |";
+				$CSV_statuses.=",\"$USERcodePAUSE_MS\"";
 				$status_found++;
 				}
 			$i++;
@@ -815,6 +874,7 @@ while ($m < $k)
 		if ($status_found < 1)
 			{
 			$SstatusesHTML .= "        0 |";
+			$CSV_statuses.=",\"0\"";
 			}
 		### END loop through each stat line ###
 		$n++;
@@ -852,8 +912,8 @@ while ($m < $k)
 
 	$BOTTOMsorted_output[$m] = $BOTTOMoutput;
 
-	echo "$BOTTOMoutput";
-
+	$HTML_text.="$BOTTOMoutput";
+	$CSV_lines.="\"$Sfull_name\"".eregi_replace(" ", "", ",\"$Suser\",\"$pfUSERtotTOTAL_MS\",\"$pfUSERtotNONPAUSE_MS\",\"$pfUSERtotPAUSE_MS\",$CSV_statuses\n");
 	$m++;
 	}
 ### END loop through each user ###
@@ -878,6 +938,7 @@ while ($m < $k)
 ###### LAST LINE FORMATTING ##########
 ### BEGIN loop through each status ###
 $SUMstatusesHTML='';
+$CSVSUMstatuses='';
 $TOTtotPAUSE=0;
 $n=0;
 while ($n < $j)
@@ -910,6 +971,7 @@ while ($n < $j)
 
 		$SUMstatusTXT = sprintf("%8s", $pfUSERsumstatPAUSE_MS);
 		$SUMstatusesHTML .= " $SUMstatusTXT |";
+		$CSVSUMstatuses.=",\"$USERsumstatPAUSE_MS\"";
 		}
 	$n++;
 	}
@@ -930,17 +992,51 @@ while ($n < $j)
 	while(strlen($TOTtotTOTAL_MS)>10) {$TOTtotTOTAL_MS = substr("$TOTtotTOTAL_MS", 0, -1);}
 
 
-echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
-echo "|  TOTALS        AGENTS:$TOT_AGENTS |$TOTtotTOTAL_MS|$TOTtotNONPAUSE_MS|$TOTtotPAUSE_MS|  |$SUMstatusesHTML\n";
-echo "+----------------------------+----------+----------+----------+  +$sub_statusesHEAD\n";
+$HTML_text.="+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
+$HTML_text.="|  TOTALS        AGENTS:$TOT_AGENTS |$TOTtotTOTAL_MS|$TOTtotNONPAUSE_MS|$TOTtotPAUSE_MS|  |$SUMstatusesHTML\n";
+$HTML_text.="+----------------------------+----------+----------+----------+  +$sub_statusesHEAD\n";
 
-echo "\n\n
$db_source"; +$CSV_total=eregi_replace(" ", "", "\"TOTALS\",\"AGENTS:$TOT_AGENTS\",\"$TOTtotTOTAL_MS\",\"$TOTtotNONPAUSE_MS\",\"$TOTtotPAUSE_MS\",$CSVSUMstatuses"); +if ($file_download == 2) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AST_PAUSE_CODE_BREAKDOWN$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$CSV_header$CSV_lines$CSV_total"; + + exit; + } +$CSV_report=fopen("AST_pause_code_breakdown.csv", "w"); +fwrite($CSV_report, $CSV_header); +fwrite($CSV_report, $CSV_lines); +fwrite($CSV_report, $CSV_total); + + +$HTML_text.="\n\n
$db_source"; +$HTML_text.="
"; + +$HTML_text.=""; + + +} +if ($file_download == 0 || !$file_download) { + echo $HTML_head; + require("admin_header.php"); + echo $HTML_text; } ?> -
- - diff --git a/agc_2-X/trunk/www/vicidial/AST_agent_time_sheet.php b/agc_2-X/trunk/www/vicidial/AST_agent_time_sheet.php index 92cb76a5..b34a8644 100644 --- a/agc_2-X/trunk/www/vicidial/AST_agent_time_sheet.php +++ b/agc_2-X/trunk/www/vicidial/AST_agent_time_sheet.php @@ -1,7 +1,7 @@ LICENSE: AGPLv2 +# Copyright (C) 2011 Matt Florell LICENSE: AGPLv2 # # CHANGES # @@ -14,6 +14,7 @@ # 100712-1324 - Added system setting slave server option # 100802-2347 - Added User Group Allowed Reports option validation # 100914-1326 - Added lookup for user_level 7 users to set to reports only which will remove other admin links +# 110703-1848 - Added download option # require("dbconnect.php"); @@ -26,7 +27,7 @@ $db_source = 'M'; ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin,outbound_autodial_active,slave_db_server,reports_use_slave_db,user_territories_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); if ($qm_conf_ct > 0) { @@ -46,7 +47,7 @@ if ( (strlen($slave_db_server)>5) and (preg_match("/$report_name/",$reports_use_ $use_slave_server=1; $db_source = 'S'; require("dbconnect.php"); - echo "\n"; + $MAIN.="\n"; } $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; @@ -62,6 +63,8 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];} elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} $user=$agent; @@ -69,14 +72,14 @@ $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $auth=$row[0]; $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level='7' and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $reports_only_user=$row[0]; @@ -90,13 +93,13 @@ if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) } $stmt="SELECT user_group from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGuser_group = $row[0]; $stmt="SELECT allowed_campaigns,allowed_reports from vicidial_user_groups where user_group='$LOGuser_group';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGallowed_campaigns = $row[0]; @@ -115,22 +118,20 @@ $NOW_TIME = date("Y-m-d H:i:s"); $STARTtime = date("U"); if (!isset($query_date)) {$query_date = $NOW_DATE;} -?> - - - +$HEADER.="\n"; +$HEADER.="\n"; +$HEADER.="\n"; -\n"; -echo "$report_name"; +$HEADER.="<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"; +$HEADER.="<TITLE>$report_name"; ##### BEGIN Set variables to make header show properly ##### @@ -151,26 +152,26 @@ $users_color = '#E6E6E6'; $subcamp_color = '#C6C6C6'; ##### END Set variables to make header show properly ##### -require("admin_header.php"); +#require("admin_header.php"); -echo "<TABLE WIDTH=$page_width BGCOLOR=\"#F0F5FE\" cellpadding=2 cellspacing=0><TR BGCOLOR=\"#F0F5FE\"><TD>\n"; +$MAIN.="<TABLE WIDTH=$page_width BGCOLOR=\"#F0F5FE\" cellpadding=2 cellspacing=0><TR BGCOLOR=\"#F0F5FE\"><TD>\n"; -echo "Agent Time Sheet for: $user\n"; -echo "<BR>\n"; -echo "<FORM ACTION=\"$PHP_SELF\" METHOD=GET>   \n"; -echo "Date: <INPUT TYPE=TEXT NAME=query_date SIZE=19 MAXLENGTH=19 VALUE=\"$query_date\">\n"; -echo "User ID: <INPUT TYPE=TEXT NAME=agent SIZE=10 MAXLENGTH=20 VALUE=\"$agent\">\n"; -echo "<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT>\n"; -echo "</FORM>\n\n"; +$MAIN.="Agent Time Sheet for: $user\n"; +$MAIN.="<BR>\n"; +$MAIN.="<FORM ACTION=\"$PHP_SELF\" METHOD=GET>   \n"; +$MAIN.="Date: <INPUT TYPE=TEXT NAME=query_date SIZE=19 MAXLENGTH=19 VALUE=\"$query_date\">\n"; +$MAIN.="User ID: <INPUT TYPE=TEXT NAME=agent SIZE=10 MAXLENGTH=20 VALUE=\"$agent\">\n"; +$MAIN.="<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT>\n"; +$MAIN.="</FORM>\n\n"; -echo "<PRE><FONT SIZE=3>\n"; +$MAIN.="<PRE><FONT SIZE=3>\n"; if (!$agent) { -echo "\n"; -echo "PLEASE SELECT AN AGENT ID AND DATE-TIME ABOVE AND CLICK SUBMIT\n"; -echo " NOTE: stats taken from available agent log data\n"; +$MAIN.="\n"; +$MAIN.="PLEASE SELECT AN AGENT ID AND DATE-TIME ABOVE AND CLICK SUBMIT\n"; +$MAIN.=" NOTE: stats taken from available agent log data\n"; } else @@ -182,20 +183,25 @@ $time_END = "23:59:59"; $stmt="select full_name from vicidial_users where user='$agent';"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $row=mysql_fetch_row($rslt); $full_name = $row[0]; -echo "Agent Time Sheet $NOW_TIME\n"; +$MAIN.="Agent Time Sheet $NOW_TIME\n"; + +$MAIN.="Time range: $query_date_BEGIN to $query_date_END\n\n"; +$MAIN.="---------- AGENT TIME SHEET: $agent - $full_name -------------\n\n"; + +$CSV_text_header.="\"Agent Time Sheet - $NOW_TIME\"\n"; +$CSV_text_header.="\"Time range: $query_date_BEGIN to $query_date_END\"\n"; +$CSV_text_header.="\"AGENT TIME SHEET: $agent - $full_name\"\n\n"; -echo "Time range: $query_date_BEGIN to $query_date_END\n\n"; -echo "---------- AGENT TIME SHEET: $agent - $full_name -------------\n\n"; if ($calls_summary) { $stmt="select count(*) as calls,sum(talk_sec) as talk,avg(talk_sec),sum(pause_sec),avg(pause_sec),sum(wait_sec),avg(wait_sec),sum(dispo_sec),avg(dispo_sec) from vicidial_agent_log where event_time <= '" . mysql_real_escape_string($query_date_END) . "' and event_time >= '" . mysql_real_escape_string($query_date_BEGIN) . "' and user='" . mysql_real_escape_string($agent) . "' and pause_sec<48800 and wait_sec<48800 and talk_sec<48800 and dispo_sec<48800 limit 1;"; $rslt=mysql_query($stmt, $link); - if ($DB) {echo "$stmt\n";} + if ($DB) {$MAIN.="$stmt\n";} $row=mysql_fetch_row($rslt); $TOTAL_TIME = ($row[1] + $row[3] + $row[5] + $row[7]); @@ -220,45 +226,56 @@ if ($calls_summary) $pfWAIT_AVG_MS = sprintf("%6s", $WAIT_AVG_MS); $pfWRAPUP_AVG_MS = sprintf("%6s", $WRAPUP_AVG_MS); - echo "TOTAL CALLS TAKEN: $row[0]\n"; - echo "TALK TIME: $pfTALK_TIME_HMS AVERAGE: $pfTALK_AVG_MS\n"; - echo "PAUSE TIME: $pfPAUSE_TIME_HMS AVERAGE: $pfPAUSE_AVG_MS\n"; - echo "WAIT TIME: $pfWAIT_TIME_HMS AVERAGE: $pfWAIT_AVG_MS\n"; - echo "WRAPUP TIME: $pfWRAPUP_TIME_HMS AVERAGE: $pfWRAPUP_AVG_MS\n"; - echo "----------------------------------------------------------------\n"; - echo "TOTAL ACTIVE AGENT TIME: $pfTOTAL_TIME_HMS\n"; - - echo "\n"; + $MAIN.="TOTAL CALLS TAKEN: $row[0] <a href='$PHP_SELF?calls_summary=$calls_summary&agent=$agent&query_date=$query_date&file_download=1'>[DOWNLOAD]</a>\n"; + $MAIN.="TALK TIME: $pfTALK_TIME_HMS AVERAGE: $pfTALK_AVG_MS\n"; + $MAIN.="PAUSE TIME: $pfPAUSE_TIME_HMS AVERAGE: $pfPAUSE_AVG_MS\n"; + $MAIN.="WAIT TIME: $pfWAIT_TIME_HMS AVERAGE: $pfWAIT_AVG_MS\n"; + $MAIN.="WRAPUP TIME: $pfWRAPUP_TIME_HMS AVERAGE: $pfWRAPUP_AVG_MS\n"; + $MAIN.="----------------------------------------------------------------\n"; + $MAIN.="TOTAL ACTIVE AGENT TIME: $pfTOTAL_TIME_HMS\n\n"; + $CSV_text1.=$CSV_text_header; + $CSV_text1.="\"\",\"TOTAL CALLS TAKEN: $row[0]\"\n"; + $CSV_text1.="\"\",\"TALK TIME:\",\"$pfTALK_TIME_HMS\",\"AVERAGE:\",\"$pfTALK_AVG_MS\"\n"; + $CSV_text1.="\"\",\"PAUSE TIME:\",\"$pfPAUSE_TIME_HMS\",\"AVERAGE:\",\"$pfPAUSE_AVG_MS\"\n"; + $CSV_text1.="\"\",\"WAIT TIME:\",\"$pfWAIT_TIME_HMS\",\"AVERAGE:\",\"$pfWAIT_AVG_MS\"\n"; + $CSV_text1.="\"\",\"WRAPUP TIME:\",\"$pfWRAPUP_TIME_HMS\",\"AVERAGE:\",\"$pfWRAPUP_AVG_MS\"\n"; + $CSV_text1.="\"\",\"TOTAL ACTIVE AGENT TIME:\",\"$pfTOTAL_TIME_HMS\"\n\n"; } else { - echo "<a href=\"$PHP_SELF?calls_summary=1&agent=$agent&query_date=$query_date\">Call Activity Summary</a>\n\n"; + $MAIN.="<a href=\"$PHP_SELF?calls_summary=1&agent=$agent&query_date=$query_date\">Call Activity Summary</a>\n\n"; } $stmt="select event_time,UNIX_TIMESTAMP(event_time) from vicidial_agent_log where event_time <= '" . mysql_real_escape_string($query_date_END) . "' and event_time >= '" . mysql_real_escape_string($query_date_BEGIN) . "' and user='" . mysql_real_escape_string($agent) . "' order by event_time limit 1;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $row=mysql_fetch_row($rslt); -echo "FIRST LOGIN: $row[0]\n"; +$MAIN.="FIRST LOGIN: $row[0]\n"; $start = $row[1]; +$CSV_login.="\"\",\"FIRST LOGIN:\",\"$row[0]\"\n"; + $stmt="select event_time,UNIX_TIMESTAMP(event_time) from vicidial_agent_log where event_time <= '" . mysql_real_escape_string($query_date_END) . "' and event_time >= '" . mysql_real_escape_string($query_date_BEGIN) . "' and user='" . mysql_real_escape_string($agent) . "' order by event_time desc limit 1;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $row=mysql_fetch_row($rslt); -echo "LAST LOG ACTIVITY: $row[0]\n"; +$MAIN.="LAST LOG ACTIVITY: $row[0]\n"; $end = $row[1]; +$CSV_login.="\"\",\"LAST LOG ACTIVITY:\",\"$row[0]\"\n"; + $login_time = ($end - $start); $LOGIN_TIME_HMS = sec_convert($login_time,'H'); $pfLOGIN_TIME_HMS = sprintf("%8s", $LOGIN_TIME_HMS); -echo "-----------------------------------------\n"; -echo "TOTAL LOGGED-IN TIME: $pfLOGIN_TIME_HMS\n"; +$MAIN.="-----------------------------------------\n"; +$MAIN.="TOTAL LOGGED-IN TIME: $pfLOGIN_TIME_HMS\n"; +$CSV_login.="\"\",\"TOTAL LOGGED-IN TIME:\",\"$pfLOGIN_TIME_HMS\"\n\n"; +$CSV_text1.=$CSV_login; ### timeclock records @@ -271,14 +288,19 @@ $EQday_ARY = explode('-',$query_date_END); $SQepoch = mktime(0, 0, 0, $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]); $EQepoch = mktime(23, 59, 59, $EQday_ARY[1], $EQday_ARY[2], $EQday_ARY[0]); -echo "\n"; +$MAIN.="\n"; -echo "<B>TIMECLOCK LOGIN/LOGOUT TIME:</B>\n"; -echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n"; -echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>EVENT </td><td align=right><font size=2> DATE</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MINUTES</td></tr>\n"; +$MAIN.="<B>TIMECLOCK LOGIN/LOGOUT TIME: <a href='$PHP_SELF?calls_summary=$calls_summary&agent=$agent&query_date=$query_date&file_download=2'>[DOWNLOAD]</a></B>\n"; +$MAIN.="<TABLE width=550 cellspacing=0 cellpadding=1>\n"; +$MAIN.="<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>EVENT </td><td align=right><font size=2> DATE</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MINUTES</td></tr>\n"; + +$CSV_text2.=$CSV_text_header; +$CSV_text2.=$CSV_login; +$CSV_text2.="\"TIMECLOCK LOGIN/LOGOUT TIME:\"\n"; +$CSV_text2.="\"\",\"ID\",\"EDIT\",\"EVENT\",\"DATE\",\"IP ADDRESS\",\"GROUP\",\"HOURS:MINUTES\"\n"; $stmt="SELECT event,event_epoch,user_group,login_sec,ip_address,timeclock_id,manager_user from vicidial_timeclock_log where user='$agent' and event_epoch >= '$SQepoch' and event_epoch <= '$EQepoch';"; - if ($DB>0) {echo "|$stmt|";} + if ($DB>0) {$MAIN.="|$stmt|";} $rslt=mysql_query($stmt, $link); $events_to_print = mysql_num_rows($rslt); @@ -299,13 +321,14 @@ echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><f if (ereg("LOGIN", $row[0])) { $login_sec=''; - echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>"; - echo "<td align=right><font size=2>$manager_edit</td>"; - echo "<td align=right><font size=2>$row[0]</td>"; - echo "<td align=right><font size=2> $TC_log_date</td>\n"; - echo "<td align=right><font size=2> $row[4]</td>\n"; - echo "<td align=right><font size=2> $row[2]</td>\n"; - echo "<td align=right><font size=2> </td></tr>\n"; + $MAIN.="<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>"; + $MAIN.="<td align=right><font size=2>$manager_edit</td>"; + $MAIN.="<td align=right><font size=2>$row[0]</td>"; + $MAIN.="<td align=right><font size=2> $TC_log_date</td>\n"; + $MAIN.="<td align=right><font size=2> $row[4]</td>\n"; + $MAIN.="<td align=right><font size=2> $row[2]</td>\n"; + $MAIN.="<td align=right><font size=2> </td></tr>\n"; + $CSV_text2.="\"\",\"$row[5]\",\"$manager_edit\",\"$row[0]\",\"$TC_log_date\",\"$row[4]\",\"$row[2]\",\"\"\n"; } if (ereg("LOGOUT", $row[0])) { @@ -313,15 +336,16 @@ echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><f $total_login_time = ($total_login_time + $login_sec); $event_hours_minutes = sec_convert($login_sec,'H'); - echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>"; - echo "<td align=right><font size=2>$manager_edit</td>"; - echo "<td align=right><font size=2>$row[0]</td>"; - echo "<td align=right><font size=2> $TC_log_date</td>\n"; - echo "<td align=right><font size=2> $row[4]</td>\n"; - echo "<td align=right><font size=2> $row[2]</td>\n"; - echo "<td align=right><font size=2> $event_hours_minutes"; - if ($DB) {echo " - $total_login_time - $login_sec";} - echo "</td></tr>\n"; + $MAIN.="<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>"; + $MAIN.="<td align=right><font size=2>$manager_edit</td>"; + $MAIN.="<td align=right><font size=2>$row[0]</td>"; + $MAIN.="<td align=right><font size=2> $TC_log_date</td>\n"; + $MAIN.="<td align=right><font size=2> $row[4]</td>\n"; + $MAIN.="<td align=right><font size=2> $row[2]</td>\n"; + $MAIN.="<td align=right><font size=2> $event_hours_minutes"; + if ($DB) {$MAIN.=" - $total_login_time - $login_sec";} + $MAIN.="</td></tr>\n"; + $CSV_text2.="\"\",\"$row[5]\",\"$manager_edit\",\"$row[0]\",\"$TC_log_date\",\"$row[4]\",\"$row[2]\",\"$event_hours_minutes\"\n"; } $o++; } @@ -329,27 +353,55 @@ if (strlen($login_sec)<1) { $login_sec = ($STARTtime - $row[1]); $total_login_time = ($total_login_time + $login_sec); - if ($DB) {echo "LOGIN ONLY - $total_login_time - $login_sec";} + if ($DB) {$MAIN.="LOGIN ONLY - $total_login_time - $login_sec";} } $total_login_hours_minutes = sec_convert($total_login_time,'H'); - if ($DB) {echo " - $total_login_time - $login_sec";} - -echo "<tr><td align=right><font size=2> </td>"; -echo "<td align=right><font size=2> </td>\n"; -echo "<td align=right><font size=2> </td>\n"; -echo "<td align=right><font size=2> </td>\n"; -echo "<td align=right colspan=2><font size=2><font size=2>TOTAL </td>\n"; -echo "<td align=right><font size=2> $total_login_hours_minutes </td></tr>\n"; - -echo "</TABLE><BR>$db_source\n"; - + if ($DB) {$MAIN.=" - $total_login_time - $login_sec";} +$MAIN.="<tr><td align=right><font size=2> </td>"; +$MAIN.="<td align=right><font size=2> </td>\n"; +$MAIN.="<td align=right><font size=2> </td>\n"; +$MAIN.="<td align=right><font size=2> </td>\n"; +$MAIN.="<td align=right colspan=2><font size=2><font size=2>TOTAL </td>\n"; +$MAIN.="<td align=right><font size=2> $total_login_hours_minutes </td></tr>\n"; +$CSV_text2.="\"\",\"\",\"\",\"\",\"\",\"\",\"TOTAL\",\"$total_login_hours_minutes\"\n"; +$MAIN.="</TABLE><BR>$db_source\n"; +$MAIN.="</BODY></HTML>\n"; } + if ($file_download>0) { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AST_agent_time_sheet_$US$FILE_TIME.csv"; + $CSV_var="CSV_text".$file_download; + $CSV_text=preg_replace('/^ +/', '', $$CSV_var); + $CSV_text=preg_replace('/\n +,/', ',', $CSV_text); + $CSV_text=preg_replace('/ +\"/', '"', $CSV_text); + $CSV_text=preg_replace('/\" +/', '"', $CSV_text); + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$CSV_text"; + + exit; + } else { + header ("Content-type: text/html; charset=utf-8"); + echo $HEADER; + require("admin_header.php"); + echo $MAIN; + exit; + } + ?> -</BODY></HTML> diff --git a/agc_2-X/trunk/www/vicidial/AST_timeonVDADallSUMMARY.php b/agc_2-X/trunk/www/vicidial/AST_timeonVDADallSUMMARY.php index 051d94d3..066fcfd8 100644 --- a/agc_2-X/trunk/www/vicidial/AST_timeonVDADallSUMMARY.php +++ b/agc_2-X/trunk/www/vicidial/AST_timeonVDADallSUMMARY.php @@ -22,10 +22,9 @@ # 101214-1142 - Added Agent time stats # 110110-1327 - Changed campaign real-time link to the new realtime_report.php # 110517-0059 - Added campaign type display option +# 110703-1854 - Added doanload option # -header ("Content-type: text/html; charset=utf-8"); - require("dbconnect.php"); $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; @@ -43,6 +42,8 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];} elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} if (!isset($RR)) {$gRRroup=4;} if (!isset($types)) {$types='SHOW ALL CAMPAIGNS';} @@ -54,7 +55,7 @@ $db_source = 'M'; ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin,outbound_autodial_active,slave_db_server,reports_use_slave_db FROM system_settings;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); if ($qm_conf_ct > 0) { @@ -73,7 +74,7 @@ if ( (strlen($slave_db_server)>5) and (preg_match("/$report_name/",$reports_use_ $use_slave_server=1; $db_source = 'S'; require("dbconnect.php"); - echo "<!-- Using slave server $slave_db_server $db_source -->\n"; + $MAIN.="<!-- Using slave server $slave_db_server $db_source -->\n"; } @@ -81,13 +82,13 @@ $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $auth=$row[0]; $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level='7' and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $reports_only_user=$row[0]; @@ -101,13 +102,13 @@ if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) } $stmt="SELECT user_group from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGuser_group = $row[0]; $stmt="SELECT allowed_campaigns,allowed_reports from vicidial_user_groups where user_group='$LOGuser_group';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGallowed_campaigns = $row[0]; @@ -142,7 +143,7 @@ if ($types == 'INBOUND ONLY') {$campaign_typeSQL="and campaign_allow_inbound=' $stmt="select campaign_id from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL $campaign_typeSQL order by campaign_id;"; $rslt=mysql_query($stmt, $link); if (!isset($DB)) {$DB=0;} -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $groups_to_print = mysql_num_rows($rslt); $i=0; while ($i < $groups_to_print) @@ -154,82 +155,78 @@ while ($i < $groups_to_print) if (!isset($RR)) {$RR=4;} -?> +$HEADER.="<HTML>\n"; +$HEADER.="<HEAD>\n"; +$HEADER.="<STYLE type=\"text/css\">\n"; +$HEADER.="<!--\n"; +$HEADER.=" .green {color: white; background-color: green}\n"; +$HEADER.=" .red {color: white; background-color: red}\n"; +$HEADER.=" .lightblue {color: black; background-color: #ADD8E6}\n"; +$HEADER.=" .blue {color: white; background-color: blue}\n"; +$HEADER.=" .midnightblue {color: white; background-color: #191970}\n"; +$HEADER.=" .purple {color: white; background-color: purple}\n"; +$HEADER.=" .violet {color: black; background-color: #EE82EE} \n"; +$HEADER.=" .thistle {color: black; background-color: #D8BFD8} \n"; +$HEADER.=" .olive {color: white; background-color: #808000}\n"; +$HEADER.=" .yellow {color: black; background-color: yellow}\n"; +$HEADER.=" .khaki {color: black; background-color: #F0E68C}\n"; +$HEADER.=" .orange {color: black; background-color: orange}\n"; -<HTML> -<HEAD> -<STYLE type="text/css"> -<!-- - .green {color: white; background-color: green} - .red {color: white; background-color: red} - .lightblue {color: black; background-color: #ADD8E6} - .blue {color: white; background-color: blue} - .midnightblue {color: white; background-color: #191970} - .purple {color: white; background-color: purple} - .violet {color: black; background-color: #EE82EE} - .thistle {color: black; background-color: #D8BFD8} - .olive {color: white; background-color: #808000} - .yellow {color: black; background-color: yellow} - .khaki {color: black; background-color: #F0E68C} - .orange {color: black; background-color: orange} +$HEADER.=" .r1 {color: black; background-color: #FFCCCC}\n"; +$HEADER.=" .r2 {color: black; background-color: #FF9999}\n"; +$HEADER.=" .r3 {color: black; background-color: #FF6666}\n"; +$HEADER.=" .r4 {color: white; background-color: #FF0000}\n"; +$HEADER.=" .b1 {color: black; background-color: #CCCCFF}\n"; +$HEADER.=" .b2 {color: black; background-color: #9999FF}\n"; +$HEADER.=" .b3 {color: black; background-color: #6666FF}\n"; +$HEADER.=" .b4 {color: white; background-color: #0000FF}\n"; +$HEADER.="-->\n"; +$HEADER.=" </STYLE>\n"; - .r1 {color: black; background-color: #FFCCCC} - .r2 {color: black; background-color: #FF9999} - .r3 {color: black; background-color: #FF6666} - .r4 {color: white; background-color: #FF0000} - .b1 {color: black; background-color: #CCCCFF} - .b2 {color: black; background-color: #9999FF} - .b3 {color: black; background-color: #6666FF} - .b4 {color: white; background-color: #0000FF} ---> - </STYLE> -<?php - -echo"<META HTTP-EQUIV=Refresh CONTENT=\"$RR; URL=$PHP_SELF?RR=$RR&DB=$DB&adastats=$adastats&types=$types\">\n"; -echo "<TITLE>$report_name\n"; +$HEADER.="\n"; +$HEADER.="$report_name\n"; $short_header=1; - require("admin_header.php"); +# require("admin_header.php"); -echo "
"; +$MAIN.=""; +$MAIN.=""; +$MAIN.="
"; -echo "Real-Time All Campaigns Summary       \n"; -echo "STOP | "; -echo "SLOW | "; -echo "GO "; -echo "     \n"; +$MAIN.="Real-Time All Campaigns Summary       \n"; +$MAIN.="STOP | "; +$MAIN.="SLOW | "; +$MAIN.="GO "; +$MAIN.="     \n"; if ($adastats<2) { - echo "+ VIEW MORE SETTINGS"; + $MAIN.="+ VIEW MORE SETTINGS"; } else { - echo "- VIEW LESS SETTINGS"; + $MAIN.="- VIEW LESS SETTINGS"; } -echo "    "; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo " \n"; -echo "\n"; - -echo "

\n\n"; +$MAIN.="      DOWNLOAD | REPORTS"; +$MAIN.="\n"; +$MAIN.="\n"; +$MAIN.="\n"; +$MAIN.="\n"; +$MAIN.=""; -echo ""; -echo ""; -echo ""; -echo ""; -echo ""; -echo ""; +$MAIN.="
DIAL LEVEL:  $DIALlev    TRUNK SHORT/FILL:  $balanceSHORT / $balanceFILL     FILTER:  $DIALfilter   TIME:   $NOW_TIME
"; +$MAIN.=""; +$MAIN.=""; +$MAIN.=""; +$MAIN.=""; +$MAIN.=""; +$MAIN.=""; + +$CSV_text.="\"DIAL LEVEL:\",\"$DIALlev\",\"TRUNK SHORT/FILL:\",\"$balanceSHORT / $balanceFILL\",\"FILTER:\",\"$DIALfilter\",\"TIME:\",\"$NOW_TIME\"\n"; if ($adastats>1) { - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; + $MAIN.=""; + $MAIN.=""; + $MAIN.=""; + $MAIN.=""; + $MAIN.=""; + $MAIN.=""; + $CSV_text.="\"MAX LEVEL:\",\"$maxDIALlev\",\"DROPPED MAX:\",\"$DROPmax\",\"TARGET DIFF:\",\"$targetDIFF\",\"INTENSITY:\",\"$ADAintense\"\n"; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; + $MAIN.=""; + $MAIN.=""; + $MAIN.=""; + $MAIN.=""; + $MAIN.=""; + $MAIN.=""; + $CSV_text.="\"DIAL TIMEOUT:\",\"$DIALtimeout\",\"TAPER TIME:\",\"$TAPERtime\",\"LOCAL TIME:\",\"$CALLtime\",\"AVAIL ONLY:\",\"$ADAavailonly\"\n"; } -echo ""; -echo ""; -echo ""; -echo ""; -echo ""; -echo ""; +$MAIN.=""; +$MAIN.=""; +$MAIN.=""; +$MAIN.=""; +$MAIN.=""; +$MAIN.=""; +$CSV_text.="\"DIALABLE LEADS:\",\"$DAleads\",\"CALLS TODAY:\",\"$callsTODAY\",\"AVG AGENTS:\",\"$agentsONEMIN\",\"DIAL METHOD:\",\"$DIALmethod\"\n"; -echo ""; -echo ""; -echo ""; -echo ""; -echo ""; -echo ""; +$MAIN.=""; +$MAIN.=""; +$MAIN.=""; +$MAIN.=""; +$MAIN.=""; +$MAIN.=""; +$CSV_text.="\"HOPPER LEVEL:\",\"$HOPlev\",\"DROPPED / ANSWERED:\",\"$dropsTODAY / $answersTODAY\",\"DL DIFF:\",\"$diffONEMIN\",\"STATUSES:\",\"$DIALstatuses\"\n"; -echo ""; -echo ""; -echo ""; +$MAIN.=""; +$MAIN.=""; -echo ""; -echo ""; -echo ""; + {$MAIN.="$drpctTODAY%";} +$MAIN.="    "; +$MAIN.=""; +$MAIN.=""; +$MAIN.=""; +$CSV_text.="\"LEADS IN HOPPER:\",\"$VDhop\",\"DROPPED PERCENT:\",\"$drpctTODAY%\",\"DIFF:\",\"$diffpctONEMIN%\",\"ORDER:\",\"$DIALorder\"\n"; -echo ""; -echo ""; +$MAIN.=""; + {$MAIN.="$VSCcat4:   $VSCcat4tally       \n";} +$MAIN.=""; +$CSV_text.="\"$VSCcat1:\",\"$VSCcat1tally\",\"$VSCcat2:\",\"$VSCcat2tally\",\"$VSCcat3:\",\"$VSCcat3tally\",\"$VSCcat4:\",\"$VSCcat4tally\"\n"; if ($VSCagentcalls > 0) { @@ -416,16 +421,17 @@ if ($VSCagentcalls > 0) else {$avgacwTODAY=0;} - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; + $MAIN.=""; + $MAIN.=""; + $MAIN.=""; + $MAIN.=""; + $MAIN.=""; + $MAIN.=""; + $CSV_text.="\"AGENT AVG WAIT:\",\"$avgwaitTODAY\",\"AVG CUSTTIME:\",\"$avgcustTODAY\",\"AVG ACW:\",\"$avgacwTODAY\",\"AVG PAUSE:\",\"$avgpauseTODAY\"\n"; } -echo ""; -echo ""; +$MAIN.=""; -echo ""; -echo "
DIAL LEVEL:  $DIALlev    TRUNK SHORT/FILL:  $balanceSHORT / $balanceFILL     FILTER:  $DIALfilter   TIME:   $NOW_TIME
  MAX LEVEL:  $maxDIALlev   DROPPED MAX:  $DROPmax%    TARGET DIFF:  $targetDIFF     INTENSITY:  $ADAintense    
  MAX LEVEL:  $maxDIALlev   DROPPED MAX:  $DROPmax%    TARGET DIFF:  $targetDIFF     INTENSITY:  $ADAintense    
DIAL TIMEOUT:  $DIALtimeout  TAPER TIME:  $TAPERtime  LOCAL TIME:  $CALLtime  AVAIL ONLY:  $ADAavailonly  
DIAL TIMEOUT:  $DIALtimeout  TAPER TIME:  $TAPERtime  LOCAL TIME:  $CALLtime  AVAIL ONLY:  $ADAavailonly  
DIALABLE LEADS:  $DAleads     CALLS TODAY:  $callsTODAY     AVG AGENTS:  $agentsONEMIN     DIAL METHOD:  $DIALmethod    
DIALABLE LEADS:  $DAleads     CALLS TODAY:  $callsTODAY     AVG AGENTS:  $agentsONEMIN     DIAL METHOD:  $DIALmethod    
HOPPER LEVEL:  $HOPlev     DROPPED / ANSWERED:  $dropsTODAY / $answersTODAY   DL DIFF:  $diffONEMIN     STATUSES:  $DIALstatuses    
HOPPER LEVEL:  $HOPlev     DROPPED / ANSWERED:  $dropsTODAY / $answersTODAY   DL DIFF:  $diffONEMIN     STATUSES:  $DIALstatuses    
LEADS IN HOPPER:  $VDhop     DROPPED PERCENT:  "; +$MAIN.="
LEADS IN HOPPER:  $VDhop     DROPPED PERCENT:  "; if ($drpctTODAY >= $DROPmax) - {echo "$drpctTODAY%";} + {$MAIN.="$drpctTODAY%";} else - {echo "$drpctTODAY%";} -echo "    DIFF:  $diffpctONEMIN%     ORDER:  $DIALorder    
DIFF:  $diffpctONEMIN%     ORDER:  $DIALorder    
"; +$MAIN.="
"; if ( (!eregi('NULL',$VSCcat1)) and (strlen($VSCcat1)>0) ) - {echo "$VSCcat1:   $VSCcat1tally       \n";} + {$MAIN.="$VSCcat1:   $VSCcat1tally       \n";} if ( (!eregi('NULL',$VSCcat2)) and (strlen($VSCcat2)>0) ) - {echo "$VSCcat2:   $VSCcat2tally       \n";} + {$MAIN.="$VSCcat2:   $VSCcat2tally       \n";} if ( (!eregi('NULL',$VSCcat3)) and (strlen($VSCcat3)>0) ) - {echo "$VSCcat3:   $VSCcat3tally       \n";} + {$MAIN.="$VSCcat3:   $VSCcat3tally       \n";} if ( (!eregi('NULL',$VSCcat4)) and (strlen($VSCcat4)>0) ) - {echo "$VSCcat4:   $VSCcat4tally       \n";} -echo "
AGENT AVG WAIT:  $avgwaitTODAY  AVG CUSTTIME:  $avgcustTODAY  AVG ACW:  $avgacwTODAY  AVG PAUSE:  $avgpauseTODAY  
AGENT AVG WAIT:  $avgwaitTODAY  AVG CUSTTIME:  $avgcustTODAY  AVG ACW:  $avgacwTODAY  AVG PAUSE:  $avgpauseTODAY  
"; +$MAIN.="
"; ### Header finish @@ -459,7 +465,7 @@ else $stmt="select status from vicidial_auto_calls where status NOT IN('XFER') $groupSQL;"; } $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $parked_to_print = mysql_num_rows($rslt); if ($parked_to_print > 0) { @@ -493,17 +499,25 @@ $parked_to_print = mysql_num_rows($rslt); if ($out_live > 14) {$F=''; $FG='';} if ($campaign_allow_inbound > 0) - {echo "$NFB$out_total$NFE current active calls      \n";} + { + $MAIN.="$NFB$out_total$NFE current active calls      \n"; + $CSV_text.="\"$out_total current active calls\",\"\"\n"; + } else - {echo "$NFB$out_total$NFE calls being placed       \n";} + { + $MAIN.="$NFB$out_total$NFE calls being placed       \n"; + $CSV_text.="\"$NFB$out_total$NFE calls being placed\",\"\"\n"; + } - echo "$NFB$out_ring$NFE calls ringing         \n"; - echo "$NFB$F  $out_live $FG$NFE calls waiting for agents       \n"; - echo "$NFB  $in_ivr$NFE calls in IVR       \n"; + $MAIN.="$NFB$out_ring$NFE calls ringing         \n"; + $MAIN.="$NFB$F  $out_live $FG$NFE calls waiting for agents       \n"; + $MAIN.="$NFB  $in_ivr$NFE calls in IVR       \n"; + $CSV_text.="\"$out_ring calls ringing\",\"$out_live calls waiting for agents\",\"$in_ivr calls in IVR\"\n"; } else { - echo " NO LIVE CALLS WAITING \n"; + $MAIN.=" NO LIVE CALLS WAITING \n"; + $CSV_text.="\"NO LIVE CALLS WAITING\"\n"; } @@ -518,7 +532,7 @@ $agent_total=0; $stmt="select extension,user,conf_exten,status,server_ip,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish),call_server_ip,campaign_id from vicidial_live_agents where campaign_id='" . mysql_real_escape_string($group) . "';"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $talking_to_print = mysql_num_rows($rslt); if ($talking_to_print > 0) { @@ -571,19 +585,21 @@ $talking_to_print = mysql_num_rows($rslt); if ($agent_ready > 9) {$B=''; $BG='';} if ($agent_ready > 14) {$B=''; $BG='';} - echo "\n
\n"; + $MAIN.="\n
\n"; - echo "$NFB$agent_total$NFE agents logged in         \n"; - echo "$NFB$agent_incall$NFE agents in calls       \n"; - echo "$NFB$B  $agent_ready $BG$NFE agents waiting       \n"; - echo "$NFB$agent_paused$NFE paused agents       \n"; - - echo "
";
-		echo "";
+		$MAIN.="$NFB$agent_total$NFE agents logged in         \n";
+		$MAIN.="$NFB$agent_incall$NFE agents in calls       \n";
+		$MAIN.="$NFB$B  $agent_ready $BG$NFE agents waiting       \n";
+		$MAIN.="$NFB$agent_paused$NFE paused agents       \n";
+		$CSV_text.="\"$agent_total agents logged in\",\"$agent_incall agents in calls\",\"$agent_ready agents waiting\",\"$agent_paused paused agents\"\n\n";
+				
+		$MAIN.="
";
+		$MAIN.="";
 	}
 	else
 	{
-	echo " NO AGENTS ON CALLS
\n"; + $MAIN.=" NO AGENTS ON CALLS
\n"; + $CSV_text.="\"NO AGENTS ON CALLS\"\n\n"; } ################################################################################ @@ -594,18 +610,47 @@ $talking_to_print = mysql_num_rows($rslt); -echo "
"; +$MAIN.="
\n\n
"; -echo "\n\n
"; $k++; } +$MAIN.="\n\n
"; +$MAIN.="\n"; +$MAIN.="
\n"; +$MAIN.="\n"; + +$MAIN.="$db_source\n"; + + if ($file_download>0) { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AST_timeonVDADallSUMMARY_$US$FILE_TIME.csv"; + $CSV_text=preg_replace('/\n +,/', ',', $CSV_text); + $CSV_text=preg_replace('/ +\"/', '"', $CSV_text); + $CSV_text=preg_replace('/\" +/', '"', $CSV_text); + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$CSV_text"; + + exit; + } else { + header ("Content-type: text/html; charset=utf-8"); + + echo $HEADER; + require("admin_header.php"); + echo $MAIN; + } -echo "$db_source\n"; ?> - - - diff --git a/agc_2-X/trunk/www/vicidial/fcstats.php b/agc_2-X/trunk/www/vicidial/fcstats.php index acbd80cf..fdc24d02 100644 --- a/agc_2-X/trunk/www/vicidial/fcstats.php +++ b/agc_2-X/trunk/www/vicidial/fcstats.php @@ -1,7 +1,7 @@ LICENSE: AGPLv2 +# Copyright (C) 2011 Matt Florell LICENSE: AGPLv2 # # CHANGES # @@ -17,6 +17,7 @@ # 100712-1324 - Added system setting slave server option # 100802-2347 - Added User Group Allowed Reports option validation # 100914-1326 - Added lookup for user_level 7 users to set to reports only which will remove other admin links +# 110703-1828 - Added download option # require("dbconnect.php"); @@ -36,6 +37,8 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];} elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); @@ -50,7 +53,7 @@ $db_source = 'M'; ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin,outbound_autodial_active,slave_db_server,reports_use_slave_db FROM system_settings;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$HTML_text.="$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); if ($qm_conf_ct > 0) { @@ -73,13 +76,13 @@ if ( (strlen($slave_db_server)>5) and (preg_match("/$report_name/",$reports_use_ } $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$HTML_text.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $auth=$row[0]; $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level='7' and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$HTML_text.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $reports_only_user=$row[0]; @@ -93,13 +96,13 @@ if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) } $stmt="SELECT user_group from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$HTML_text.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGuser_group = $row[0]; $stmt="SELECT allowed_campaigns,allowed_reports from vicidial_user_groups where user_group='$LOGuser_group';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$HTML_text.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGallowed_campaigns = $row[0]; @@ -121,7 +124,7 @@ if (!isset($query_date)) {$query_date = $NOW_DATE;} $stmt="select group_id from vicidial_inbound_groups order by group_id;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$HTML_text.="$stmt\n";} $groups_to_print = mysql_num_rows($rslt); $i=0; while ($i < $groups_to_print) @@ -130,76 +133,72 @@ while ($i < $groups_to_print) $groups[$i] =$row[0]; $i++; } -?> - - - +$HTML_head.="\n"; +$HTML_head.="\n"; +$HTML_head.="\n"; +$HTML_head.="\n"; +$HTML_head.="\n"; +$HTML_head.="\n"; - - - -\n"; -echo "$report_name\n"; +$HTML_head.="\n"; +$HTML_head.="$report_name\n"; $short_header=1; - require("admin_header.php"); +# require("admin_header.php"); -echo "
"; +$HTML_text.="
"; -echo "
\n"; -echo ""; +$HTML_text.="\n"; +$HTML_text.=""; -?> - -\n"; +$HTML_text.="var o_cal = new tcal ({\n"; +$HTML_text.=" // form name\n"; +$HTML_text.=" 'formname': 'vicidial_report',\n"; +$HTML_text.=" // input name\n"; +$HTML_text.=" 'controlname': 'query_date'\n"; +$HTML_text.="});\n"; +$HTML_text.="o_cal.a_tpl.yearscroll = false;\n"; +$HTML_text.="// o_cal.a_tpl.weekstart = 1; // Monday week start\n"; +$HTML_text.="\n"; -echo "\n"; $o=0; while ($groups_to_print > $o) { - if ($groups[$o] == $group) {echo "\n";} - else {echo "\n";} + if ($groups[$o] == $group) {$HTML_text.="\n";} + else {$HTML_text.="\n";} $o++; } -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "           MODIFY | REPORTS \n"; -echo "
\n\n"; +$HTML_text.="\n"; +$HTML_text.="\n"; +$HTML_text.="\n"; +$HTML_text.="\n"; +$HTML_text.="           DOWNLOAD | MODIFY | REPORTS \n"; +$HTML_text.="\n\n"; -echo "
\n\n";
+$HTML_text.="
\n\n";
 
 
 if (!$group)
 {
-echo "\n\n";
-echo "PLEASE SELECT AN IN-GROUP AND DATE ABOVE THEN CLICK SUBMIT\n";
+$HTML_text.="\n\n";
+$HTML_text.="PLEASE SELECT AN IN-GROUP AND DATE ABOVE THEN CLICK SUBMIT\n";
 }
 
 else
@@ -227,14 +226,14 @@ if ($shift == 'ALL')
 	$query_date_END = date("Y-m-d H:i:s", mktime(24, 59, 59, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
 	}
 
-echo "In-Group Fronter-Closer Stats Report                      $NOW_TIME\n";
+$HTML_text.="In-Group Fronter-Closer Stats Report                      $NOW_TIME\n";
 
-echo "\n";
-echo "---------- TOTALS FOR $query_date_BEGIN to $query_date_END\n";
+$HTML_text.="\n";
+$HTML_text.="---------- TOTALS FOR $query_date_BEGIN to $query_date_END\n";
 
 $stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='" . mysql_real_escape_string($group) . "' and status = 'SALE';";
 $rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
+if ($DB) {$HTML_text.="$stmt\n";}
 $row=mysql_fetch_row($rslt);
 $A1_points = ($row[0] * 1);
 $A1_points =	sprintf("%10s", $A1_points);
@@ -245,10 +244,10 @@ $TOT_points = ($A1_points + $A2_points + $A3_points + $A4_points);
 $TOT_tally =	sprintf("%10s", $TOT_tally);
 $TOT_points =	sprintf("%10s", $TOT_points);
 
-echo "STATUS   CUSTOMERS\n";
-echo "SALES:   $A1_tally\n";
+$HTML_text.="STATUS   CUSTOMERS\n";
+$HTML_text.="SALES:   $A1_tally\n";
 
-echo "\n";
+$HTML_text.="\n";
 
 
 
@@ -276,17 +275,25 @@ $totA9=0;
 $totDROP=0;
 $totOTHER=0;
 
-echo "\n";
-echo "---------- FRONTER STATS\n";
-echo "+--------------------------+-------+--------+--------+------+------+------+\n";
-echo "| AGENT                    |SUCCESS| XFERS  |SUCCESS%| SALE | DROP |OTHER |\n";
-echo "+--------------------------+-------+--------+--------+------+------+------+\n";
+$CSV_fronter_header="\"TOTALS FOR $query_date_BEGIN to $query_date_END\"\n";
+$CSV_fronter_header.="\"STATUS   CUSTOMERS\"\n";
+$CSV_fronter_header.="\"SALES:   $A1_tally\"\n\n";
+$CSV_fronter_header.="\"FRONTER STATS\"\n";
+$CSV_fronter_header.="\"AGENT\",\"SUCCESS\",\"XFERS\",\"SUCCESS%\",\"SALE\",\"DROP\",\"OTHER\"\n";
+$CSV_fronter_lines="";
+$CSV_fronter_footer="";
+
+$HTML_text.="\n";
+$HTML_text.="---------- FRONTER STATS\n";
+$HTML_text.="+--------------------------+-------+--------+--------+------+------+------+\n";
+$HTML_text.="| AGENT                    |SUCCESS| XFERS  |SUCCESS%| SALE | DROP |OTHER |\n";
+$HTML_text.="+--------------------------+-------+--------+--------+------+------+------+\n";
 
 #$stmt="select vicidial_xfer_log.user,full_name,count(*) from vicidial_xfer_log,vicidial_users where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "' and vicidial_xfer_log.user is not null and vicidial_xfer_log.user=vicidial_users.user group by vicidial_xfer_log.user;";
 $stmt="select user,count(distinct lead_id) from vicidial_xfer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "' and user is not null group by user;";
 if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
 $rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
+if ($DB) {$HTML_text.="$stmt\n";}
 $users_to_print = mysql_num_rows($rslt);
 $i=0;
 while ($i < $users_to_print)
@@ -309,7 +316,7 @@ while ($i < $users_to_print)
 	$stmt="select full_name from vicidial_users where user='$userRAW[$i]';";
 	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
 	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
+	if ($DB) {$HTML_text.="$stmt\n";}
 	$names_to_print = mysql_num_rows($rslt);
 	if ($names_to_print > 0)
 		{
@@ -330,7 +337,7 @@ while ($i < $users_to_print)
 	$stmt="select vc.status,count(distinct vc.lead_id) from vicidial_xfer_log vx, vicidial_closer_log vc where vx.call_date >= '$query_date_BEGIN' and vx.call_date <= '$query_date_END' and vc.call_date >= '$query_date_BEGIN' and vc.call_date <= '$query_date_END' and  vc.campaign_id='" . mysql_real_escape_string($group) . "' and vx.campaign_id='" . mysql_real_escape_string($group) . "' and vx.user='$userRAW[$i]' and vc.lead_id=vx.lead_id and vc.xfercallid=vx.xfercallid group by vc.status;";
 	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
 	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
+	if ($DB) {$HTML_text.="$stmt\n";}
 	$lead_ids_to_print = mysql_num_rows($rslt);
 	$j=0;
 	while ($j < $lead_ids_to_print)
@@ -384,7 +391,8 @@ while ($i < $users_to_print)
 	$sales =	sprintf("%5s", $sales);
 	$Spct =	sprintf("%6s", $Spct);
 
-	echo "| $user[$i] - $full_name[$i] | $sales | $USERcalls[$i] | $Spct%| $A1 | $DROP | $OTHER |\n";
+	$HTML_text.="| $user[$i] - $full_name[$i] | $sales | $USERcalls[$i] | $Spct%| $A1 | $DROP | $OTHER |\n";
+	$CSV_fronter_lines.="\"$user[$i] - $full_name[$i]\",\"$sales\",\"$USERcalls[$i]\",\"$Spct%\",\"$A1\",\"$DROP\",\"$OTHER\"\n";
 
 	$i++;
 	}
@@ -414,7 +422,7 @@ $totOTHER =		sprintf("%5s", $totOTHER);
 
 $stmt="select avg(queue_seconds) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='" . mysql_real_escape_string($group) . "';";
 $rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
+if ($DB) {$HTML_text.="$stmt\n";}
 $row=mysql_fetch_row($rslt);
 
 $AVGwait = $row[0];
@@ -429,13 +437,14 @@ $AVGwait_MS = "$AVGwait_M_int:$AVGwait_S";
 $AVGwait =		sprintf("%6s", $AVGwait_MS);
 
 
-echo "+--------------------------+-------+--------+--------+------+------+------+\n";
-echo "| TOTAL FRONTERS: $TOTagents   | $TOTsales | $TOTcalls | $totSpct%|$totA1 |$totDROP |$totOTHER |\n";
-echo "+--------------------------+-------+--------+--------+------+------+------+\n";
-echo "|                          Average time in Queue for customers:    $AVGwait |\n";
-echo "+--------------------------+-------+--------+--------+------+------+------+\n";
-
+$HTML_text.="+--------------------------+-------+--------+--------+------+------+------+\n";
+$HTML_text.="| TOTAL FRONTERS: $TOTagents   | $TOTsales | $TOTcalls | $totSpct%|$totA1 |$totDROP |$totOTHER |\n";
+$HTML_text.="+--------------------------+-------+--------+--------+------+------+------+\n";
+$HTML_text.="|                          Average time in Queue for customers:    $AVGwait |\n";
+$HTML_text.="+--------------------------+-------+--------+--------+------+------+------+\n";
 
+$CSV_fronter_footer.="\"TOTAL FRONTERS: $TOTagents\",\"$TOTsales\",\"$TOTcalls\",\"$totSpct%\",\"$totA1\",\"$totDROP\",\"$totOTHER\"\n";
+$CSV_fronter_footer.="\"Average time in Queue for customers:    $AVGwait\"\n\n\n";
 
 
 
@@ -457,16 +466,24 @@ $totDROP=0;
 $totOTHER=0;
 $TOTsales=0;
 
-echo "\n";
-echo "---------- CLOSER STATS\n";
-echo "+--------------------------+--------+------+------+------+------+-------+\n";
-echo "| AGENT                    | CALLS  | SALE | DROP |OTHER | SALE | CONV %|\n";
-echo "+--------------------------+--------+------+------+------+------+-------+\n";
+$CSV_closer_header="";
+$CSV_closer_lines="";
+$CSV_closer_footer="";
+
+$HTML_text.="\n";
+$HTML_text.="---------- CLOSER STATS\n";
+$HTML_text.="+--------------------------+--------+------+------+------+------+-------+\n";
+$HTML_text.="| AGENT                    | CALLS  | SALE | DROP |OTHER | SALE | CONV %|\n";
+$HTML_text.="+--------------------------+--------+------+------+------+------+-------+\n";
+
+$CSV_closer_header="\"CLOSER STATS\"\n";
+$CSV_closer_header.="\"AGENT\",\"CALLS\",\"SALE\",\"DROP\",\"OTHER\",\"SALE\",\"CONV %\"\n";
+
 
 $stmt="select user,count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "' and user is not null group by user;";
 if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
 $rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
+if ($DB) {$HTML_text.="$stmt\n";}
 $users_to_print = mysql_num_rows($rslt);
 $i=0;
 while ($i < $users_to_print)
@@ -488,7 +505,7 @@ while ($i < $users_to_print)
 	$stmt="select full_name from vicidial_users where user='$userRAW[$i]';";
 	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
 	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
+	if ($DB) {$HTML_text.="$stmt\n";}
 	$names_to_print = mysql_num_rows($rslt);
 	if ($names_to_print > 0)
 		{
@@ -509,7 +526,7 @@ while ($i < $users_to_print)
 	$stmt="select status,count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "' and user='$userRAW[$i]' group by status;";
 	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
 	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
+	if ($DB) {$HTML_text.="$stmt\n";}
 	$lead_ids_to_print = mysql_num_rows($rslt);
 	$j=0;
 	while ($j < $lead_ids_to_print)
@@ -606,7 +623,8 @@ while ($i < $users_to_print)
 	$OTHER =	sprintf("%4s", $OTHER);
 	$sales =	sprintf("%4s", $sales);
 
-	echo "| $user[$i] - $full_name[$i] | $USERcalls[$i] | $A1 | $DROP | $OTHER | $sales |$Cpct%|\n";
+	$HTML_text.="| $user[$i] - $full_name[$i] | $USERcalls[$i] | $A1 | $DROP | $OTHER | $sales |$Cpct%|\n";
+	$CSV_closer_lines.="\"$user[$i] - $full_name[$i]\",\"$USERcalls[$i]\",\"$A1\",\"$DROP\",\"$OTHER\",\"$sales\",\"$Cpct%\"\n";
 
 	$i++;
 	}
@@ -651,21 +669,58 @@ $totDROP =		sprintf("%5s", $totDROP);
 $totOTHER =		sprintf("%5s", $totOTHER);
 $TOTsales =		sprintf("%5s", $TOTsales);
 
-echo "+--------------------------+--------+------+------+------+------+-------+\n";
-echo "| TOTAL CLOSERS:  $TOTagents   | $TOTcalls |$totA1 |$totDROP |$totOTHER |$TOTsales |$totCpct%|\n";
-echo "+--------------------------+--------+------+------+------+------+-------+\n";
-
-
-
-
-
-
-
+$HTML_text.="+--------------------------+--------+------+------+------+------+-------+\n";
+$HTML_text.="| TOTAL CLOSERS:  $TOTagents   | $TOTcalls |$totA1 |$totDROP |$totOTHER |$TOTsales |$totCpct%|\n";
+$HTML_text.="+--------------------------+--------+------+------+------+------+-------+\n";
 
+$CSV_closer_footer.="\"TOTAL CLOSERS:  $TOTagents\",\"$TOTcalls\",\"$totA1\",\"$totDROP\",\"$totOTHER\",\"$TOTsales\",\"$totCpct%\"\n";
 
 $ENDtime = date("U");
 $RUNtime = ($ENDtime - $STARTtime);
-if ($DB) {echo "\nRun Time: $RUNtime seconds|$db_source\n";}
+if ($DB) {$HTML_text.="\nRun Time: $RUNtime seconds|$db_source\n";}
+
+$HTML_text.="
\n"; +$HTML_text.="
\n"; + +$HTML_text.="\n"; + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "FCSTATS_$US$FILE_TIME.csv"; + $CSV_text=$CSV_fronter_header.$CSV_fronter_lines.$CSV_fronter_footer.$CSV_closer_header.$CSV_closer_lines.$CSV_closer_footer; + $CSV_text=preg_replace('/ +\"/', '"', $CSV_text); + $CSV_text=preg_replace('/\" +/', '"', $CSV_text); + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$CSV_text"; + + exit; + } + else + { + echo $HTML_head; + require("admin_header.php"); + echo $HTML_text; + } + +#$CSV_report=fopen("fcstats.csv", "w"); +#$CSV_head=preg_replace('/\s+,/', ',', $CSV_fronter_header.$CSV_fronter_lines.$CSV_fronter_footer.$CSV_closer_header.$CSV_closer_lines.$CSV_closer_footer); +#fwrite($CSV_report, $CSV_head); +#fclose($CSV_report); + + + + } @@ -673,8 +728,3 @@ if ($DB) {echo "\nRun Time: $RUNtime seconds|$db_source\n";} ?> - -
- - - diff --git a/agc_2-X/trunk/www/vicidial/timeclock_report.php b/agc_2-X/trunk/www/vicidial/timeclock_report.php index f446a5b1..80ab4580 100644 --- a/agc_2-X/trunk/www/vicidial/timeclock_report.php +++ b/agc_2-X/trunk/www/vicidial/timeclock_report.php @@ -1,7 +1,7 @@ LICENSE: AGPLv2 +# Copyright (C) 2011 Matt Florell LICENSE: AGPLv2 # # CHANGES # @@ -15,6 +15,7 @@ # 100712-1324 - Added system setting slave server option # 100802-2347 - Added User Group Allowed Reports option validation # 100914-1326 - Added lookup for user_level 7 users to set to reports only which will remove other admin links +# 110703-1830 - Added download option # require("dbconnect.php"); @@ -41,6 +42,8 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];} elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} if (strlen($shift)<2) {$shift='ALL';} if (strlen($order)<2) {$order='hours_down';} @@ -52,7 +55,7 @@ $db_source = 'M'; ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin,outbound_autodial_active,slave_db_server,reports_use_slave_db,webroot_writable FROM system_settings;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); if ($qm_conf_ct > 0) { @@ -72,21 +75,21 @@ if ( (strlen($slave_db_server)>5) and (preg_match("/$report_name/",$reports_use_ $use_slave_server=1; $db_source = 'S'; require("dbconnect.php"); - echo "\n"; + $MAIN.="\n"; } $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $auth=$row[0]; $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level='7' and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $reports_only_user=$row[0]; @@ -100,13 +103,13 @@ if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) } $stmt="SELECT user_group from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGuser_group = $row[0]; $stmt="SELECT allowed_campaigns,allowed_reports from vicidial_user_groups where user_group='$LOGuser_group';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGallowed_campaigns = $row[0]; @@ -129,7 +132,7 @@ if (!isset($end_date)) {$end_date = $NOW_DATE;} $stmt="select user_group from vicidial_user_groups order by user_group;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $user_groups_to_print = mysql_num_rows($rslt); $i=0; $LISTuser_groups[$i]='---ALL---'; @@ -143,50 +146,45 @@ while ($i < $user_groups_to_print) } ##### START HTML ##### -?> - - +$HEADER.="\n"; +$HEADER.="\n"; +$HEADER.="\n"; +$HEADER.="\n"; +$HEADER.="\n"; +$HEADER.="\n"; +$HEADER.="\n"; -<style type="text/css"> -<!-- - div.scroll_callback {height: 300px; width: 620px; overflow: scroll;} - div.scroll_list {height: 400px; width: 140px; overflow: scroll;} - div.scroll_script {height: 331px; width: 600px; background: #FFF5EC; overflow: scroll; font-size: 12px; font-family: sans-serif;} - div.text_input {overflow: auto; font-size: 10px; font-family: sans-serif;} - .body_text {font-size: 13px; font-family: sans-serif;} - .preview_text {font-size: 13px; font-family: sans-serif; background: #CCFFCC} - .preview_text_red {font-size: 13px; font-family: sans-serif; background: #FFCCCC} - .body_small {font-size: 11px; font-family: sans-serif;} - .body_tiny {font-size: 10px; font-family: sans-serif;} - .log_text {font-size: 11px; font-family: monospace;} - .log_text_red {font-size: 11px; font-family: monospace; font-weight: bold; background: #FF3333} - .sd_text {font-size: 16px; font-family: sans-serif; font-weight: bold;} - .sh_text {font-size: 14px; font-family: sans-serif; font-weight: bold;} - .sb_text {font-size: 12px; font-family: sans-serif;} - .sk_text {font-size: 11px; font-family: sans-serif;} - .skb_text {font-size: 13px; font-family: sans-serif; font-weight: bold;} - .ON_conf {font-size: 11px; font-family: monospace; color: black; background: #FFFF99} - .OFF_conf {font-size: 11px; font-family: monospace; color: black; background: #FFCC77} - .cust_form {font-family: sans-serif; font-size: 10px; overflow: auto} - - .select_bold {font-size: 14px; font-family: sans-serif; font-weight: bold;} - .header_white {font-size: 14px; font-family: sans-serif; font-weight: bold; color: white} - .data_records {font-size: 12px; font-family: sans-serif; color: black} - .data_records_fix {font-size: 12px; font-family: monospace; color: black} - .data_records_fix_small {font-size: 9px; font-family: monospace; color: black} - ---> -</style> - -<script language="JavaScript" src="calendar_db.js"></script> -<link rel="stylesheet" href="calendar.css"> - -<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> -<TITLE> - -<?php -echo "$report_name"; +$HEADER.="$report_name"; ##### BEGIN Set variables to make header show properly ##### $ADD = '311111'; @@ -206,7 +204,7 @@ $usergroups_color = '#E6E6E6'; $subcamp_color = '#C6C6C6'; ##### END Set variables to make header show properly ##### -require("admin_header.php"); +#require("admin_header.php"); @@ -232,105 +230,110 @@ else if ($DB > 0) { - echo "<BR>\n"; - echo "$user_group_ct|$user_group_string|$user_group_SQL\n"; - echo "<BR>\n"; + $MAIN.="<BR>\n"; + $MAIN.="$user_group_ct|$user_group_string|$user_group_SQL\n"; + $MAIN.="<BR>\n"; } -echo "<CENTER>\n"; -echo "<FORM ACTION=\"$PHP_SELF\" METHOD=GET name=vicidial_report id=vicidial_report>\n"; -echo "<INPUT TYPE=HIDDEN NAME=DB VALUE=\"$DB\">"; -echo "<TABLE BORDER=0 CELLSPACING=6><TR><TD ALIGN=LEFT VALIGN=TOP>\n"; +$MAIN.="<CENTER>\n"; +$MAIN.="<FORM ACTION=\"$PHP_SELF\" METHOD=GET name=vicidial_report id=vicidial_report>\n"; +$MAIN.="<INPUT TYPE=HIDDEN NAME=DB VALUE=\"$DB\">"; +$MAIN.="<TABLE BORDER=0 CELLSPACING=6><TR><TD ALIGN=LEFT VALIGN=TOP>\n"; -echo "<font class=\"select_bold\"><B>Date Range:</B></font><BR><CENTER>\n"; -echo "<INPUT TYPE=TEXT NAME=query_date SIZE=10 MAXLENGTH=10 VALUE=\"$query_date\">"; +$MAIN.="<font class=\"select_bold\"><B>Date Range:</B></font><BR><CENTER>\n"; +$MAIN.="<INPUT TYPE=TEXT NAME=query_date SIZE=10 MAXLENGTH=10 VALUE=\"$query_date\">"; -?> -<script language="JavaScript"> -var o_cal = new tcal ({ - // form name - 'formname': 'vicidial_report', - // input name - 'controlname': 'query_date' -}); -o_cal.a_tpl.yearscroll = false; -// o_cal.a_tpl.weekstart = 1; // Monday week start -</script> -<?php +$MAIN.="<script language=\"JavaScript\">\n"; +$MAIN.="var o_cal = new tcal ({\n"; +$MAIN.=" // form name\n"; +$MAIN.=" 'formname': 'vicidial_report',\n"; +$MAIN.=" // input name\n"; +$MAIN.=" 'controlname': 'query_date'\n"; +$MAIN.="});\n"; +$MAIN.="o_cal.a_tpl.yearscroll = false;\n"; +$MAIN.="// o_cal.a_tpl.weekstart = 1; // Monday week start\n"; +$MAIN.="</script>\n"; -echo "<BR>to<BR>\n"; -echo "<INPUT TYPE=TEXT NAME=end_date SIZE=10 MAXLENGTH=10 VALUE=\"$end_date\">"; +$MAIN.="<BR>to<BR>\n"; +$MAIN.="<INPUT TYPE=TEXT NAME=end_date SIZE=10 MAXLENGTH=10 VALUE=\"$end_date\">"; -?> -<script language="JavaScript"> -var o_cal = new tcal ({ - // form name - 'formname': 'vicidial_report', - // input name - 'controlname': 'end_date' -}); -o_cal.a_tpl.yearscroll = false; -// o_cal.a_tpl.weekstart = 1; // Monday week start -</script> -<?php +$MAIN.="<script language=\"JavaScript\">\n"; +$MAIN.="var o_cal = new tcal ({\n"; +$MAIN.=" // form name\n"; +$MAIN.=" 'formname': 'vicidial_report',\n"; +$MAIN.=" // input name\n"; +$MAIN.=" 'controlname': 'end_date'\n"; +$MAIN.="});\n"; +$MAIN.="o_cal.a_tpl.yearscroll = false;\n"; +$MAIN.="// o_cal.a_tpl.weekstart = 1; // Monday week start\n"; +$MAIN.="</script>\n"; -echo "</TD><TD ALIGN=LEFT VALIGN=TOP>\n"; -echo "<font class=\"select_bold\"><B>User Groups:</B></font><BR><CENTER>\n"; -echo "<SELECT SIZE=5 NAME=user_group[] multiple>\n"; +$MAIN.="</TD><TD ALIGN=LEFT VALIGN=TOP>\n"; +$MAIN.="<font class=\"select_bold\"><B>User Groups:</B></font><BR><CENTER>\n"; +$MAIN.="<SELECT SIZE=5 NAME=user_group[] multiple>\n"; $o=0; while ($user_groups_to_print > $o) { if (ereg("\|$LISTuser_groups[$o]\|",$user_group_string)) - {echo "<option selected value=\"$LISTuser_groups[$o]\">$LISTuser_groups[$o]</option>\n";} + {$MAIN.="<option selected value=\"$LISTuser_groups[$o]\">$LISTuser_groups[$o]</option>\n";} else - {echo "<option value=\"$LISTuser_groups[$o]\">$LISTuser_groups[$o]</option>\n";} + {$MAIN.="<option value=\"$LISTuser_groups[$o]\">$LISTuser_groups[$o]</option>\n";} $o++; } -echo "</SELECT>\n"; +$MAIN.="</SELECT>\n"; -echo "</TD></TD><TD ALIGN=LEFT VALIGN=TOP>\n"; -echo "<font class=\"select_bold\"><B>Order:</B></font><BR>\n"; -echo "<SELECT SIZE=1 NAME=order>\n"; -echo "<option selected value=\"$order\">$order</option>\n"; -echo "<option value=\"\">--</option>\n"; -echo "<option>hours_up</option>\n"; -echo "<option>hours_down</option>\n"; -echo "<option>user_up</option>\n"; -echo "<option>user_down</option>\n"; -echo "<option>name_up</option>\n"; -echo "<option>name_down</option>\n"; -echo "<option>group_up</option>\n"; -echo "<option>group_down</option>\n"; -echo "</SELECT><BR><CENTER>\n"; +$MAIN.="</TD></TD><TD ALIGN=LEFT VALIGN=TOP>\n"; +$MAIN.="<font class=\"select_bold\"><B>Order:</B></font><BR>\n"; +$MAIN.="<SELECT SIZE=1 NAME=order>\n"; +$MAIN.="<option selected value=\"$order\">$order</option>\n"; +$MAIN.="<option value=\"\">--</option>\n"; +$MAIN.="<option>hours_up</option>\n"; +$MAIN.="<option>hours_down</option>\n"; +$MAIN.="<option>user_up</option>\n"; +$MAIN.="<option>user_down</option>\n"; +$MAIN.="<option>name_up</option>\n"; +$MAIN.="<option>name_down</option>\n"; +$MAIN.="<option>group_up</option>\n"; +$MAIN.="<option>group_down</option>\n"; +$MAIN.="</SELECT><BR><CENTER>\n"; -echo "</TD><TD ALIGN=LEFT VALIGN=TOP>\n"; -echo "<font class=\"select_bold\"><B>User:</B></font><BR>\n"; -echo "<INPUT TYPE=text NAME=user SIZE=7 MAXLENGTH=20 VALUE=\"$user\">\n"; +$MAIN.="</TD><TD ALIGN=LEFT VALIGN=TOP>\n"; +$MAIN.="<font class=\"select_bold\"><B>User:</B></font><BR>\n"; +$MAIN.="<INPUT TYPE=text NAME=user SIZE=7 MAXLENGTH=20 VALUE=\"$user\">\n"; -echo "<BR><BR><INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT>\n"; -echo "</TD></TD><TD ALIGN=LEFT VALIGN=TOP>\n"; -echo "</TD><TD ALIGN=CENTER VALIGN=TOP ROWSPAN=3>\n"; -echo "<FONT class=\"select_bold\" COLOR=BLACK SIZE=2>     <a href=\"./admin.php?ADD=999999\">REPORTS</a> </FONT>\n"; +$MAIN.="<BR><BR><INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT>\n"; +$MAIN.="</TD></TD><TD ALIGN=LEFT VALIGN=TOP>\n"; +$MAIN.="</TD><TD ALIGN=CENTER VALIGN=TOP ROWSPAN=3>\n"; +$MAIN.="<FONT class=\"select_bold\" COLOR=BLACK SIZE=2>     <a href=\"$PHP_SELF?DB=$DB&query_date=$query_date&end_date=$end_date&order=$order&user=$user&SUBMIT=$SUBMIT&file_download=1\">DOWNLOAD</a><FONT class=\"select_bold\" COLOR=BLACK SIZE=2>   |   <a href=\"./admin.php?ADD=999999\">REPORTS</a> </FONT>\n"; -echo "</TD></TR></TABLE>\n"; -echo "</FORM>\n\n"; +$MAIN.="</TD></TR></TABLE>\n"; +$MAIN.="</FORM>\n\n"; -echo "<PRE><FONT SIZE=3>\n"; +$MAIN.="<PRE><FONT SIZE=3>\n"; -echo "User Timeclock Report $NOW_TIME\n"; +$MAIN.="User Timeclock Report $NOW_TIME\n"; -echo "Time range: $query_date to $end_date\n\n"; -echo "---------- USER TIMECLOCK DETAILS -------------\n"; -echo "These totals do NOT include any active sessions\n</PRE>\n"; -echo "<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=3><TR BGCOLOR=BLACK>\n"; -echo "<TD ALIGN=CENTER><FONT class=\"header_white\">#</TD>\n"; -echo "<TD ALIGN=CENTER><FONT class=\"header_white\">  USER  </TD>\n"; -echo "<TD ALIGN=CENTER><FONT class=\"header_white\">  NAME  </TD>\n"; -echo "<TD ALIGN=CENTER><FONT class=\"header_white\">  GROUP  </TD>\n"; -echo "<TD ALIGN=CENTER><FONT class=\"header_white\">  HOURS  </TD>\n"; -echo "</TR>\n"; +$MAIN.="Time range: $query_date to $end_date\n\n"; +$MAIN.="---------- USER TIMECLOCK DETAILS -------------\n"; +$MAIN.="These totals do NOT include any active sessions\n</PRE>\n"; + +$CSV_text.="\"User Timeclock Report - $NOW_TIME\"\n"; +$CSV_text.="\"Time range: $query_date to $end_date\"\n"; +$CSV_text.="\"---------- USER TIMECLOCK DETAILS -------------\"\n"; +$CSV_text.="\"These totals do NOT include any active sessions\"\n\n"; + + +$MAIN.="<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=3><TR BGCOLOR=BLACK>\n"; +$MAIN.="<TD ALIGN=CENTER><FONT class=\"header_white\">#</TD>\n"; +$MAIN.="<TD ALIGN=CENTER><FONT class=\"header_white\">  USER  </TD>\n"; +$MAIN.="<TD ALIGN=CENTER><FONT class=\"header_white\">  NAME  </TD>\n"; +$MAIN.="<TD ALIGN=CENTER><FONT class=\"header_white\">  GROUP  </TD>\n"; +$MAIN.="<TD ALIGN=CENTER><FONT class=\"header_white\">  HOURS  </TD>\n"; +$MAIN.="</TR>\n"; + +$CSV_text.="\"\",\"#\",\"USER\",\"NAME\",\"GROUP\",\"HOURS\"\n"; $order_SQL=''; if ($order == 'hours_up') {$order_SQL = "order by login";} @@ -347,7 +350,7 @@ else {$user_SQL='';} $stmt="select vicidial_users.user,full_name,sum(login_sec) as login,vicidial_timeclock_log.user_group from vicidial_users,vicidial_timeclock_log where event IN('LOGIN','START') and event_date >= '$query_date 00:00:00' and event_date <= '$end_date 23:59:59' and vicidial_users.user=vicidial_timeclock_log.user $user_SQL $user_group_SQL group by vicidial_users.user,vicidial_timeclock_log.user_group $order_SQL limit 100000;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $rows_to_print = mysql_num_rows($rslt); $i=0; while ($i < $rows_to_print) @@ -387,13 +390,14 @@ while ($j < $rows_to_print) else {$bgcolor='bgcolor="#9BB9FB"';} - echo "<TR $bgcolor>\n"; - echo "<TD ALIGN=LEFT><FONT class=\"data_records_fix_small\">$j</TD>\n"; - echo "<TD><FONT class=\"data_records\"><A HREF=\"user_status.php?user=$user_id[$i]\">$user_id[$i]</A> </TD>\n"; - echo "<TD><FONT class=\"data_records\">$full_name[$i] </TD>\n"; - echo "<TD><FONT class=\"data_records\">$u_group[$i] </TD>\n"; - echo "<TD ALIGN=RIGHT><FONT class=\"data_records_fix\"> $hours[$i]</TD>\n"; - echo "</TR>\n"; + $MAIN.="<TR $bgcolor>\n"; + $MAIN.="<TD ALIGN=LEFT><FONT class=\"data_records_fix_small\">$j</TD>\n"; + $MAIN.="<TD><FONT class=\"data_records\"><A HREF=\"user_status.php?user=$user_id[$i]\">$user_id[$i]</A> </TD>\n"; + $MAIN.="<TD><FONT class=\"data_records\">$full_name[$i] </TD>\n"; + $MAIN.="<TD><FONT class=\"data_records\">$u_group[$i] </TD>\n"; + $MAIN.="<TD ALIGN=RIGHT><FONT class=\"data_records_fix\"> $hours[$i]</TD>\n"; + $MAIN.="</TR>\n"; + $CSV_text.="\"\",\"$j\",\"$user_id[$i]\",\"$full_name[$i]\",\"$u_group[$i]\",\"$hours[$i]\"\n"; $j++; } @@ -411,13 +415,43 @@ else $TOThours = $TOTdbHOURS; -echo "<TR BGCOLOR=#E6E6E6>\n"; -echo "<TD ALIGN=LEFT COLSPAN=4><FONT class=\"data_records\">TOTALS</TD>\n"; -echo "<TD ALIGN=RIGHT><FONT class=\"data_records_fix\"> $TOThours</TD>\n"; -echo "</TR>\n"; +$MAIN.="<TR BGCOLOR=#E6E6E6>\n"; +$MAIN.="<TD ALIGN=LEFT COLSPAN=4><FONT class=\"data_records\">TOTALS</TD>\n"; +$MAIN.="<TD ALIGN=RIGHT><FONT class=\"data_records_fix\"> $TOThours</TD>\n"; +$MAIN.="</TR>\n"; +$CSV_text.="\"\",\"TOTALS\",\"\",\"\",\"\",\"$TOThours\"\n"; + +$MAIN.="</TABLE>\n"; +$MAIN.="</CENTER>\n"; +$MAIN.="</BODY></HTML>\n"; + + if ($file_download>0) { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "timeclock_report_$US$FILE_TIME.csv"; + $CSV_text=preg_replace('/^\s+/', '', $CSV_text); + $CSV_text=preg_replace('/\n\s+,/', ',', $CSV_text); + $CSV_text=preg_replace('/ +\"/', '"', $CSV_text); + $CSV_text=preg_replace('/\" +/', '"', $CSV_text); + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$CSV_text"; + + exit; + } else { + echo $HEADER; + require("admin_header.php"); + echo $MAIN; + exit; + } -echo "</TABLE>\n"; ?> -</CENTER> -</BODY></HTML> diff --git a/agc_2-X/trunk/www/vicidial/timeclock_status.php b/agc_2-X/trunk/www/vicidial/timeclock_status.php index 40f3ed83..379b7481 100644 --- a/agc_2-X/trunk/www/vicidial/timeclock_status.php +++ b/agc_2-X/trunk/www/vicidial/timeclock_status.php @@ -1,7 +1,7 @@ <?php # timeclock_status.php # -# Copyright (C) 2010 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# Copyright (C) 2011 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 # # CHANGES # @@ -13,9 +13,10 @@ # 100712-1324 - Added system setting slave server option # 100802-2347 - Added User Group Allowed Reports option validation # 100914-1326 - Added lookup for user_level 7 users to set to reports only which will remove other admin links +# 110703-1833 - Added download option # -header ("Content-type: text/html; charset=utf-8"); +#header ("Content-type: text/html; charset=utf-8"); require("dbconnect.php"); @@ -36,6 +37,8 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];} elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} $report_name = 'User Group Timeclock Status Report'; @@ -45,7 +48,7 @@ $db_source = 'M'; ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin,outbound_autodial_active,slave_db_server,reports_use_slave_db,webroot_writable,timeclock_end_of_day FROM system_settings;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); if ($qm_conf_ct > 0) { @@ -66,7 +69,7 @@ if ( (strlen($slave_db_server)>5) and (preg_match("/$report_name/",$reports_use_ $use_slave_server=1; $db_source = 'S'; require("dbconnect.php"); - echo "<!-- Using slave server $slave_db_server $db_source -->\n"; + $MAIN.="<!-- Using slave server $slave_db_server $db_source -->\n"; } $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); @@ -92,7 +95,7 @@ $row=mysql_fetch_row($rslt); $auth=$row[0]; $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level='7' and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $reports_only_user=$row[0]; @@ -111,13 +114,13 @@ if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) } $stmt="SELECT user_group from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGuser_group = $row[0]; $stmt="SELECT allowed_campaigns,allowed_reports from vicidial_user_groups where user_group='$LOGuser_group';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGallowed_campaigns = $row[0]; @@ -133,7 +136,7 @@ if ( (!preg_match("/$report_name/",$LOGallowed_reports)) and (!preg_match("/ALL $stmt="select user_group from vicidial_user_groups order by user_group;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $user_groups_to_print = mysql_num_rows($rslt); $i=0; $user_groups_to_print++; @@ -156,13 +159,11 @@ if (strlen($user_group) > 0) $group_name = $row[0]; } -?> -<html> -<head> -<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> -<title>ADMINISTRATION: -<?php -echo "$report_name"; +$HEADER.="<html>\n"; +$HEADER.="<head>\n"; +$HEADER.="<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"; +$HEADER.="<title>ADMINISTRATION: \n"; +$HEADER.="$report_name"; ##### BEGIN Set variables to make header show properly ##### $ADD = '311111'; @@ -182,45 +183,41 @@ $usergroups_color = '#E6E6E6'; $subcamp_color = '#C6C6C6'; ##### END Set variables to make header show properly ##### -require("admin_header.php"); +# require("admin_header.php"); -?> -<CENTER> -<TABLE WIDTH=750 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT> -<FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>Timeclock Status for <?php echo $user_group ?></TD><TD ALIGN=RIGHT>             -<?php -echo "<a href=\"./timeclock_report.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE SIZE=2><B>TIMECLOCK REPORT</a> | "; -echo "<a href=\"./admin.php?ADD=311111&user_group=$user_group\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE SIZE=2><B>USER GROUP</a>\n"; -?> -</TD></TR> +$MAIN.="<CENTER>\n"; +$MAIN.="<TABLE WIDTH=750 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT>\n"; +$MAIN.="<FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE SIZE=2><B>Timeclock Status for $user_group</TD><TD ALIGN=RIGHT>            \n"; +$MAIN.="<a href=\"./timeclock_report.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE SIZE=2><B>TIMECLOCK REPORT</a> | "; +$MAIN.="<a href=\"./admin.php?ADD=311111&user_group=$user_group\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE SIZE=2><B>USER GROUP</a>\n"; +$MAIN.="</TD></TR>\n"; +$MAIN.="<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><B>   \n"; +$MAIN.="<form action=$PHP_SELF method=GET>\n"; +$MAIN.="<input type=hidden name=DB value=\"$DB\">\n"; +$MAIN.="<select size=1 name=user_group>$FORMuser_groups</select>"; +$MAIN.="<input type=submit name=submit value=submit>\n"; - -<?php - -echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><B>   \n"; - -echo "<form action=$PHP_SELF method=POST>\n"; -echo "<input type=hidden name=DB value=\"$DB\">\n"; -echo "<select size=1 name=user_group>$FORMuser_groups</select>"; -echo "<input type=submit name=submit value=submit>\n"; - -echo "</B></TD></TR>\n"; -echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; -echo "<br><center>\n"; +$MAIN.="</B></TD></TR>\n"; +$MAIN.="<TR><TD ALIGN=LEFT COLSPAN=2>\n"; +$MAIN.="<br><center>\n"; if (strlen($user_group) < 1) { + header ("Content-type: text/html; charset=utf-8"); + echo "$HEADER"; + require("admin_header.php"); + echo "$MAIN"; exit; } ##### grab all users in this user_group ##### $stmt="SELECT user,full_name from vicidial_users where user_group='" . mysql_real_escape_string($user_group) . "' order by full_name;"; -if ($DB>0) {echo "|$stmt|";} +if ($DB>0) {$MAIN.="|$stmt|";} $rslt=mysql_query($stmt, $link); $users_to_print = mysql_num_rows($rslt); $o=0; @@ -248,7 +245,7 @@ while ($users_to_print > $o) $total_login_time = 0; ##### grab timeclock status record for this user ##### $stmt="SELECT event_epoch,event_date,status,ip_address from vicidial_timeclock_status where user='$users[$o]' and event_epoch >= '$EoD';"; - if ($DB>0) {echo "|$stmt|";} + if ($DB>0) {$MAIN.="|$stmt|";} $rslt=mysql_query($stmt, $link); $stats_to_print = mysql_num_rows($rslt); if ($stats_to_print > 0) @@ -267,7 +264,7 @@ while ($users_to_print > $o) ##### grab timeclock logged-in time for each user ##### $stmt="SELECT event,event_epoch,login_sec from vicidial_timeclock_log where user='$users[$o]' and event_epoch >= '$EoD';"; - if ($DB>0) {echo "|$stmt|";} + if ($DB>0) {$MAIN.="|$stmt|";} $rslt=mysql_query($stmt, $link); $logs_to_parse = mysql_num_rows($rslt); $p=0; @@ -311,11 +308,11 @@ while ($users_to_print > $o) $Tlogin_sec[$o] = $total_login_time; } - if ($DB>0) {echo "|$Tlogin_sec[$o]|$Tlogin_time[$o]|";} + if ($DB>0) {$MAIN.="|$Tlogin_sec[$o]|$Tlogin_time[$o]|";} ##### grab vicidial_agent_log records in this user_group ##### $stmt="SELECT event_time,UNIX_TIMESTAMP(event_time),campaign_id from vicidial_agent_log where user='$users[$o]' and event_time >= '$EoDdate' order by agent_log_id desc limit 1;"; - if ($DB>0) {echo "|$stmt|";} + if ($DB>0) {$MAIN.="|$stmt|";} $rslt=mysql_query($stmt, $link); $vals_to_print = mysql_num_rows($rslt); if ($vals_to_print > 0) @@ -331,23 +328,26 @@ while ($users_to_print > $o) ##### print each user that has any activity for today ##### -echo "<br>\n"; -echo "<center>\n"; +$MAIN.="<br>\n"; +$MAIN.="<center>\n"; -echo "<TABLE width=720 cellspacing=0 cellpadding=1>\n"; -echo "<TR>\n"; -echo "<TD bgcolor=\"#99FF33\">     </TD><TD align=left> TC Logged in and VICI active</TD>\n"; # bright green -echo "<TD bgcolor=\"#FFFF33\">     </TD><TD align=left> TC Logged in only</TD>\n"; # bright yellow -echo "<TD bgcolor=\"#FF6666\">     </TD><TD align=left> VICI active only</TD>\n"; # bright red -echo "</TR><TR>\n"; -echo "<TD bgcolor=\"#66CC66\">     </TD><TD align=left> TC Logged out and VICI active</TD>\n"; # dull green -echo "<TD bgcolor=\"#CCCC00\">     </TD><TD align=left> TC Logged out only</TD>\n"; # dull yellow -echo "<TD>     </TD><TD align=left>   </TD>\n"; -echo "</TR></TABLE><BR>\n"; +$MAIN.="<TABLE width=720 cellspacing=0 cellpadding=1>\n"; +$MAIN.="<TR>\n"; +$MAIN.="<TD bgcolor=\"#99FF33\">     </TD><TD align=left> TC Logged in and VICI active</TD>\n"; # bright green +$MAIN.="<TD bgcolor=\"#FFFF33\">     </TD><TD align=left> TC Logged in only</TD>\n"; # bright yellow +$MAIN.="<TD bgcolor=\"#FF6666\">     </TD><TD align=left> VICI active only</TD>\n"; # bright red +$MAIN.="</TR><TR>\n"; +$MAIN.="<TD bgcolor=\"#66CC66\">     </TD><TD align=left> TC Logged out and VICI active</TD>\n"; # dull green +$MAIN.="<TD bgcolor=\"#CCCC00\">     </TD><TD align=left> TC Logged out only</TD>\n"; # dull yellow +$MAIN.="<TD>     </TD><TD align=left>   </TD>\n"; +$MAIN.="</TR></TABLE><BR>\n"; -echo "<B>USER STATUS FOR USER GROUP: $user_group</B>\n"; -echo "<TABLE width=700 cellspacing=0 cellpadding=1>\n"; -echo "<tr><td><font size=2># </td><td><font size=2>USER </td><td align=left><font size=2>NAME </td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> TC TIME</td><td align=right><font size=2>TC LOGIN</td><td align=right><font size=2> VICI LAST LOG</td><td align=right><font size=2> VICI CAMPAIGN</td></tr>\n"; +$MAIN.="<B>USER STATUS FOR USER GROUP: $user_group      <a href='$PHP_SELF?DB=$DB&user_group=$user_group&submit=$submit&file_download=1'>[DOWNLOAD]</a></B>\n"; +$MAIN.="<TABLE width=700 cellspacing=0 cellpadding=1>\n"; +$MAIN.="<tr><td><font size=2># </td><td><font size=2>USER </td><td align=left><font size=2>NAME </td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> TC TIME</td><td align=right><font size=2>TC LOGIN</td><td align=right><font size=2> VICI LAST LOG</td><td align=right><font size=2> VICI CAMPAIGN</td></tr>\n"; + +$CSV_text.="\"USER STATUS FOR USER GROUP: $user_group\"\n"; +$CSV_text.="\"\",\"#\",\"USER\",\"NAME\",\"STATUS\",\"IP ADDRESS\",\"TC TIME\",\"TC LOGIN\",\"VICI LAST LOG\",\"VICI CAMPAIGN\"\n"; $o=0; $s=0; @@ -358,31 +358,33 @@ while ($users_to_print > $o) if ( ($Tstatus[$o]=='START') or ($Tstatus[$o]=='LOGIN') ) { if ($Tlogin_sec[$o] > 0) - {$bgcolor[$o]='bgcolor="#FFFF33"';} # yellow + {$bgcolor[$o]='bgcolor="#FFFF33"'; $CSV_status="TC Logged in only";} # yellow if ( ($Tlogin_sec[$o] > 0) and (strlen($Vevent_time[$o]) > 0) ) - {$bgcolor[$o]='bgcolor="#99FF33"';} # green + {$bgcolor[$o]='bgcolor="#99FF33"'; $CSV_status="TC Logged in and VICI active";} # green } else { if ($Tlogin_sec[$o] > 0) - {$bgcolor[$o]='bgcolor="#CCCC00"';} # yellow + {$bgcolor[$o]='bgcolor="#CCCC00"'; $CSV_status="TC Logged out only";} # yellow if (strlen($Vevent_time[$o]) > 0) - {$bgcolor[$o]='bgcolor="#FF6666"';} # red + {$bgcolor[$o]='bgcolor="#FF6666"'; $CSV_status="VICI active only";} # red if ( ($Tlogin_sec[$o] > 0) and (strlen($Vevent_time[$o]) > 0) ) - {$bgcolor[$o]='bgcolor="#66CC66"';} # green + {$bgcolor[$o]='bgcolor="#66CC66"'; $CSV_status="TC Logged out and VICI active";} # green } $s++; - echo "<tr $bgcolor[$o]>"; - echo "<td><font size=1>$s</td>"; - echo "<td><font size=2><a href=\"./user_status.php?user=$users[$o]\">$users[$o]</a></td>"; - echo "<td><font size=2>$full_name[$o]</td>"; - echo "<td><font size=2>$Tip_address[$o]</td>"; - echo "<td align=right><font size=2>$Tlogin_time[$o]</td>"; - echo "<td align=right><font size=2>$Tevent_time[$o]</td>"; - echo "<td align=right><font size=2>$Vevent_time[$o]</td>"; - echo "<td align=right><font size=2>$Vcampaign[$o]</td>"; - echo "</tr>"; + $MAIN.="<tr $bgcolor[$o]>"; + $MAIN.="<td><font size=1>$s</td>"; + $MAIN.="<td><font size=2><a href=\"./user_status.php?user=$users[$o]\">$users[$o]</a></td>"; + $MAIN.="<td><font size=2>$full_name[$o]</td>"; + $MAIN.="<td><font size=2>$Tip_address[$o]</td>"; + $MAIN.="<td align=right><font size=2>$Tlogin_time[$o]</td>"; + $MAIN.="<td align=right><font size=2>$Tevent_time[$o]</td>"; + $MAIN.="<td align=right><font size=2>$Vevent_time[$o]</td>"; + $MAIN.="<td align=right><font size=2>$Vcampaign[$o]</td>"; + $MAIN.="</tr>"; + + $CSV_text.="\"\",\"$s\",\"$users[$o]\",\"$full_name[$o]\",\"$CSV_status\",\"$Tip_address[$o]\",\"$Tlogin_time[$o]\",\"$Tevent_time[$o]\",\"$Vevent_time[$o]\",\"$Vcampaign[$o]\"\n"; if (strlen($Tstatus[$o])>0) {$TOTlogin_sec = ($TOTlogin_sec + $Tlogin_sec[$o]);} @@ -400,36 +402,61 @@ $total_login_minutes = ($total_login_minutes * 60); $total_login_minutes_int = round($total_login_minutes, 0); if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} -echo "<tr bgcolor=white>"; -echo "<td colspan=4><font size=2>TOTALS</td>"; -echo "<td align=right><font size=2>$total_login_hours_int:$total_login_minutes_int</td>"; -echo "<td align=right><font size=2></td>"; -echo "<td align=right><font size=2></td>"; -echo "<td align=right><font size=2></td>"; -echo "</tr>"; -echo "</table>"; - +$MAIN.="<tr bgcolor=white>"; +$MAIN.="<td colspan=4><font size=2>TOTALS</td>"; +$MAIN.="<td align=right><font size=2>$total_login_hours_int:$total_login_minutes_int</td>"; +$MAIN.="<td align=right><font size=2></td>"; +$MAIN.="<td align=right><font size=2></td>"; +$MAIN.="<td align=right><font size=2></td>"; +$MAIN.="</tr>"; +$MAIN.="</table>"; +$CSV_text.="\"\",\"TOTALS\",\"\",\"\",\"\",\"\",\"$total_login_hours_int:$total_login_minutes_int\"\n"; $ENDtime = date("U"); $RUNtime = ($ENDtime - $STARTtime); -echo "\n\n\n<br><br><br>\n\n"; +$MAIN.="\n\n\n<br><br><br>\n\n"; -echo "<font size=0>\n\n\n<br><br><br>\nscript runtime: $RUNtime seconds|$db_source</font>"; +$MAIN.="<font size=0>\n\n\n<br><br><br>\nscript runtime: $RUNtime seconds|$db_source</font>"; + +$MAIN.="</TD></TR><TABLE>\n"; +$MAIN.="</body>\n"; +$MAIN.="</html>\n"; + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "timeclock_status_$US$FILE_TIME.csv"; + $CSV_text=preg_replace('/ +\"/', '"', $CSV_text); + $CSV_text=preg_replace('/\" +/', '"', $CSV_text); + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$CSV_text"; + + exit; + } + else + { + header ("Content-type: text/html; charset=utf-8"); + echo "$HEADER"; + require("admin_header.php"); + echo "$MAIN"; + } -?> - - -</TD></TR><TABLE> -</body> -</html> - -<?php exit; @@ -449,16 +476,16 @@ $EQday_ARY = explode('-',$end_date); $SQepoch = mktime(0, 0, 0, $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]); $EQepoch = mktime(23, 59, 59, $EQday_ARY[1], $EQday_ARY[2], $EQday_ARY[0]); -echo "<br><br>\n"; +$MAIN.="<br><br>\n"; -echo "<center>\n"; +$MAIN.="<center>\n"; -echo "<B>TIMECLOCK LOGIN/LOGOUT TIME:</B>\n"; -echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n"; -echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>EVENT </td><td align=right><font size=2> DATE</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MINUTES</td></tr>\n"; +$MAIN.="<B>TIMECLOCK LOGIN/LOGOUT TIME:</B>\n"; +$MAIN.="<TABLE width=550 cellspacing=0 cellpadding=1>\n"; +$MAIN.="<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>EVENT </td><td align=right><font size=2> DATE</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MINUTES</td></tr>\n"; $stmt="SELECT event,event_epoch,user_group,login_sec,ip_address,timeclock_id,manager_user from vicidial_timeclock_log where user='" . mysql_real_escape_string($user) . "' and event_epoch >= '$SQepoch' and event_epoch <= '$EQepoch';"; - if ($DB>0) {echo "|$stmt|";} + if ($DB>0) {$MAIN.="|$stmt|";} $rslt=mysql_query($stmt, $link); $events_to_print = mysql_num_rows($rslt); @@ -479,13 +506,13 @@ echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><f if (ereg("LOGIN", $row[0])) { $login_sec=''; - echo "<tr $bgcolor><td><font size=2>$row[5]</td>"; - echo "<td align=right><font size=2>$manager_edit</td>"; - echo "<td align=right><font size=2>$row[0]</td>"; - echo "<td align=right><font size=2> $TC_log_date</td>\n"; - echo "<td align=right><font size=2> $row[4]</td>\n"; - echo "<td align=right><font size=2> $row[2]</td>\n"; - echo "<td align=right><font size=2> </td></tr>\n"; + $MAIN.="<tr $bgcolor><td><font size=2>$row[5]</td>"; + $MAIN.="<td align=right><font size=2>$manager_edit</td>"; + $MAIN.="<td align=right><font size=2>$row[0]</td>"; + $MAIN.="<td align=right><font size=2> $TC_log_date</td>\n"; + $MAIN.="<td align=right><font size=2> $row[4]</td>\n"; + $MAIN.="<td align=right><font size=2> $row[2]</td>\n"; + $MAIN.="<td align=right><font size=2> </td></tr>\n"; } if (ereg("LOGOUT", $row[0])) { @@ -498,13 +525,13 @@ echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><f $event_minutes = ($event_minutes * 60); $event_minutes_int = round($event_minutes, 0); if ($event_minutes_int < 10) {$event_minutes_int = "0$event_minutes_int";} - echo "<tr $bgcolor><td><font size=2>$row[5]</td>"; - echo "<td align=right><font size=2>$manager_edit</td>"; - echo "<td align=right><font size=2>$row[0]</td>"; - echo "<td align=right><font size=2> $TC_log_date</td>\n"; - echo "<td align=right><font size=2> $row[4]</td>\n"; - echo "<td align=right><font size=2> $row[2]</td>\n"; - echo "<td align=right><font size=2> $event_hours_int:$event_minutes_int</td></tr>\n"; + $MAIN.="<tr $bgcolor><td><font size=2>$row[5]</td>"; + $MAIN.="<td align=right><font size=2>$manager_edit</td>"; + $MAIN.="<td align=right><font size=2>$row[0]</td>"; + $MAIN.="<td align=right><font size=2> $TC_log_date</td>\n"; + $MAIN.="<td align=right><font size=2> $row[4]</td>\n"; + $MAIN.="<td align=right><font size=2> $row[2]</td>\n"; + $MAIN.="<td align=right><font size=2> $event_hours_int:$event_minutes_int</td></tr>\n"; } $o++; } @@ -521,14 +548,14 @@ $total_login_minutes = ($total_login_minutes * 60); $total_login_minutes_int = round($total_login_minutes, 0); if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} -echo "<tr><td align=right><font size=2> </td>"; -echo "<td align=right><font size=2> </td>\n"; -echo "<td align=right><font size=2> </td>\n"; -echo "<td align=right><font size=2> </td>\n"; -echo "<td align=right><font size=2><font size=2>TOTAL </td>\n"; -echo "<td align=right><font size=2> $total_login_hours_int:$total_login_minutes_int </td></tr>\n"; +$MAIN.="<tr><td align=right><font size=2> </td>"; +$MAIN.="<td align=right><font size=2> </td>\n"; +$MAIN.="<td align=right><font size=2> </td>\n"; +$MAIN.="<td align=right><font size=2> </td>\n"; +$MAIN.="<td align=right><font size=2><font size=2>TOTAL </td>\n"; +$MAIN.="<td align=right><font size=2> $total_login_hours_int:$total_login_minutes_int </td></tr>\n"; -echo "</TABLE></center>\n"; +$MAIN.="</TABLE></center>\n"; @@ -540,20 +567,15 @@ $ENDtime = date("U"); $RUNtime = ($ENDtime - $STARTtime); -echo "\n\n\n<br><br><br>\n\n"; +$MAIN.="\n\n\n<br><br><br>\n\n"; -echo "<font size=0>\n\n\n<br><br><br>\nscript runtime: $RUNtime seconds|$db_source</font>"; +$MAIN.="<font size=0>\n\n\n<br><br><br>\nscript runtime: $RUNtime seconds|$db_source</font>"; +$MAIN.="</TD></TR><TABLE>\n"; +$MAIN.="</body>\n"; +$MAIN.="</html>\n"; -?> - - -</TD></TR><TABLE> -</body> -</html> - -<?php exit; diff --git a/agc_2-X/trunk/www/vicidial/user_stats.php b/agc_2-X/trunk/www/vicidial/user_stats.php index f660e76b..8fd1d4fa 100644 --- a/agc_2-X/trunk/www/vicidial/user_stats.php +++ b/agc_2-X/trunk/www/vicidial/user_stats.php @@ -29,9 +29,9 @@ # 100908-1205 - Added customer 3way hangup flags to user calls display # 100914-1326 - Added lookup for user_level 7 users to set to reports only which will remove other admin links # 110218-1523 - Added searches display +# 110703-1836 - Added download option # -header ("Content-type: text/html; charset=utf-8"); require("dbconnect.php"); require("functions.php"); @@ -44,7 +44,7 @@ $db_source = 'M'; ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin,outbound_autodial_active,slave_db_server,reports_use_slave_db,user_territories_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} +if ($DB) {$MAIN.="$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); if ($qm_conf_ct > 0) { @@ -64,7 +64,7 @@ if ( (strlen($slave_db_server)>5) and (preg_match("/$report_name/",$reports_use_ $use_slave_server=1; $db_source = 'S'; require("dbconnect.php"); - echo "<!-- Using slave server $slave_db_server $db_source -->\n"; + $MAIN.="<!-- Using slave server $slave_db_server $db_source -->\n"; } $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; @@ -88,6 +88,8 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];} elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); @@ -105,7 +107,7 @@ $row=mysql_fetch_row($rslt); $auth=$row[0]; $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level='7' and view_reports='1' and active='Y';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $reports_only_user=$row[0]; @@ -133,7 +135,7 @@ fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGf fclose($fp); $stmt="SELECT allowed_campaigns,allowed_reports from vicidial_user_groups where user_group='$LOGuser_group';"; -if ($DB) {echo "|$stmt|\n";} +if ($DB) {$MAIN.="|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGallowed_campaigns = $row[0]; @@ -164,21 +166,16 @@ else - -?> -<html> -<head> - -<script language="JavaScript" src="calendar_db.js"></script> -<link rel="stylesheet" href="calendar.css"> - -<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> -<?php +$HEADER.="<html>\n"; +$HEADER.="<head>\n"; +$HEADER.="<script language=\"JavaScript\" src=\"calendar_db.js\"></script>\n"; +$HEADER.="<link rel=\"stylesheet\" href=\"calendar.css\">\n"; +$HEADER.="<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"; if ($did > 0) - {echo "<title>ADMINISTRATION: DID Call Stats";} + {$HEADER.="<title>ADMINISTRATION: DID Call Stats";} else - {echo "<title>ADMINISTRATION: $report_name";} + {$HEADER.="<title>ADMINISTRATION: $report_name";} @@ -208,98 +205,93 @@ if ($did > 0) } ##### END Set variables to make header show properly ##### -require("admin_header.php"); +#require("admin_header.php"); -?> -<TABLE WIDTH=770 BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2> -<?php +$MAIN.="<TABLE WIDTH=770 BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE=\"ARIAL,HELVETICA\" SIZE=2>\n"; if ($did > 0) - {echo "<B>   DID Call Stats for $user";} + {$MAIN.="<B>   DID Call Stats for $user";} else - {echo "<B>   User Stats for $user";} + {$MAIN.="<B>   User Stats for $user";} -?> -</TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2>   </TD></TR> -<?php +$MAIN.="</TD><TD ALIGN=RIGHT><FONT FACE=\"ARIAL,HELVETICA\" SIZE=2>   </TD></TR>\n"; +$MAIN.="<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><B>   \n"; +$download_link="$PHP_SELF?DB=$DB&did_id=$did_id&did=$did&begin_date=$begin_date&end_date=$end_date&user=$user&submit=$submit\n"; -echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><B>   \n"; +$MAIN.="<form action=$PHP_SELF method=GET name=vicidial_report id=vicidial_report>\n"; +$MAIN.="<input type=hidden name=DB value=\"$DB\">\n"; +$MAIN.="<input type=hidden name=did_id value=\"$did_id\">\n"; +$MAIN.="<input type=hidden name=did value=\"$did\">\n"; +$MAIN.="<input type=text name=begin_date value=\"$begin_date\" size=10 maxsize=10>"; -echo "<form action=$PHP_SELF method=POST name=vicidial_report id=vicidial_report>\n"; -echo "<input type=hidden name=DB value=\"$DB\">\n"; -echo "<input type=hidden name=did_id value=\"$did_id\">\n"; -echo "<input type=hidden name=did value=\"$did\">\n"; -echo "<input type=text name=begin_date value=\"$begin_date\" size=10 maxsize=10>"; +$MAIN.="<script language=\"JavaScript\">\n"; +$MAIN.="var o_cal = new tcal ({\n"; +$MAIN.=" // form name\n"; +$MAIN.=" 'formname': 'vicidial_report',\n"; +$MAIN.=" // input name\n"; +$MAIN.=" 'controlname': 'begin_date'\n"; +$MAIN.="});\n"; +$MAIN.="o_cal.a_tpl.yearscroll = false;\n"; +$MAIN.="// o_cal.a_tpl.weekstart = 1; // Monday week start\n"; +$MAIN.="</script>\n"; -?> -<script language="JavaScript"> -var o_cal = new tcal ({ - // form name - 'formname': 'vicidial_report', - // input name - 'controlname': 'begin_date' -}); -o_cal.a_tpl.yearscroll = false; -// o_cal.a_tpl.weekstart = 1; // Monday week start -</script> -<?php +$MAIN.=" to <input type=text name=end_date value=\"$end_date\" size=10 maxsize=10>"; -echo " to <input type=text name=end_date value=\"$end_date\" size=10 maxsize=10>"; - -?> -<script language="JavaScript"> -var o_cal = new tcal ({ - // form name - 'formname': 'vicidial_report', - // input name - 'controlname': 'end_date' -}); -o_cal.a_tpl.yearscroll = false; -// o_cal.a_tpl.weekstart = 1; // Monday week start -</script> -<?php +$MAIN.="<script language=\"JavaScript\">\n"; +$MAIN.="var o_cal = new tcal ({\n"; +$MAIN.=" // form name\n"; +$MAIN.=" 'formname': 'vicidial_report',\n"; +$MAIN.=" // input name\n"; +$MAIN.=" 'controlname': 'end_date'\n"; +$MAIN.="});\n"; +$MAIN.="o_cal.a_tpl.yearscroll = false;\n"; +$MAIN.="// o_cal.a_tpl.weekstart = 1; // Monday week start\n"; +$MAIN.="</script>\n"; if (strlen($user)>1) - {echo "<input type=hidden name=user value=\"$user\">\n";} + {$MAIN.="<input type=hidden name=user value=\"$user\">\n";} else - {echo "<input type=text name=user size=12 maxlength=10>\n";} -echo "<input type=submit name=submit value=submit>\n"; + {$MAIN.="<input type=text name=user size=12 maxlength=10>\n";} +$MAIN.="<input type=submit name=submit value=submit>\n"; -echo "           $user - $full_name<BR><BR>\n"; +$MAIN.="           $user - $full_name<BR><BR>\n"; -echo "<center>\n"; +$MAIN.="<center>\n"; if ($did > 0) { - echo "<a href=\"./AST_DIDstats.php?group[0]=$did_id&query_date=$begin_date&end_date=$end_date\">DID traffic report</a>\n"; - echo " | <a href=\"./admin.php?ADD=3311&did_id=$did_id\">Modify DID</a>\n"; + $MAIN.="<a href=\"./AST_DIDstats.php?group[0]=$did_id&query_date=$begin_date&end_date=$end_date\">DID traffic report</a>\n"; + $MAIN.=" | <a href=\"./admin.php?ADD=3311&did_id=$did_id\">Modify DID</a>\n"; } else { - echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Time Sheet</a>\n"; - echo " | <a href=\"./user_status.php?user=$user\">User Status</a>\n"; - echo " | <a href=\"./admin.php?ADD=3&user=$user\">Modify User</a>\n"; - echo " | <a href=\"./AST_agent_days_detail.php?user=$user&query_date=$begin_date&end_date=$end_date&group[]=--ALL--&shift=ALL\">User multiple day status detail report</a>"; + $MAIN.="<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Time Sheet</a>\n"; + $MAIN.=" | <a href=\"./user_status.php?user=$user\">User Status</a>\n"; + $MAIN.=" | <a href=\"./admin.php?ADD=3&user=$user\">Modify User</a>\n"; + $MAIN.=" | <a href=\"./AST_agent_days_detail.php?user=$user&query_date=$begin_date&end_date=$end_date&group[]=--ALL--&shift=ALL\">User multiple day status detail report</a>"; } -echo "</center>\n"; +$MAIN.="</center>\n"; -echo "</B></TD></TR>\n"; -echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; +$MAIN.="</B></TD></TR>\n"; +$MAIN.="<TR><TD ALIGN=LEFT COLSPAN=2>\n"; -echo "<br><center>\n"; +$MAIN.="<br><center>\n"; if ($did < 1) { ##### vicidial agent talk time and status ##### - echo "<B>AGENT TALK TIME AND STATUS:</B>\n"; + $MAIN.="<B>AGENT TALK TIME AND STATUS:     <a href='$download_link&file_download=1'>[DOWNLOAD]</a></B>\n"; - echo "<center><TABLE width=300 cellspacing=0 cellpadding=1>\n"; - echo "<tr><td><font size=2>STATUS</td><td align=right><font size=2>COUNT</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; + $MAIN.="<center><TABLE width=300 cellspacing=0 cellpadding=1>\n"; + $MAIN.="<tr><td><font size=2>STATUS</td><td align=right><font size=2>COUNT</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; + + $CSV_text1.="\"AGENT TALK TIME AND STATUS\"\n"; + $CSV_text1.="\"\",\"STATUS\",\"COUNT\",\"HOURS:MM:SS\"\n"; $stmt="SELECT count(*),status, sum(length_in_sec) from vicidial_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' group by status order by status"; $rslt=mysql_query($stmt, $link); @@ -357,9 +349,10 @@ if ($did < 1) $call_hours_minutes = sec_convert($call_sec[$o],'H'); - echo "<tr $bgcolor><td><font size=2>$status[$o]</td>"; - echo "<td align=right><font size=2> $counts[$o]</td>\n"; - echo "<td align=right><font size=2> $call_hours_minutes</td></tr>\n"; + $MAIN.="<tr $bgcolor><td><font size=2>$status[$o]</td>"; + $MAIN.="<td align=right><font size=2> $counts[$o]</td>\n"; + $MAIN.="<td align=right><font size=2> $call_hours_minutes</td></tr>\n"; + $CSV_text1.="\"\",\"$status[$o]\",\"$counts[$o]\",\"$call_hours_minutes\"\n"; $total_calls = ($total_calls + $counts[$o]); $total_sec = ($total_sec + $call_sec[$o]); $call_seconds=0; @@ -368,19 +361,23 @@ if ($did < 1) $call_hours_minutes = sec_convert($total_sec,'H'); - echo "<tr><td><font size=2>TOTAL CALLS </td><td align=right><font size=2> $total_calls</td><td align=right><font size=2> $call_hours_minutes</td></tr>\n"; - echo "</TABLE></center>\n"; + $MAIN.="<tr><td><font size=2>TOTAL CALLS </td><td align=right><font size=2> $total_calls</td><td align=right><font size=2> $call_hours_minutes</td></tr>\n"; + $CSV_text1.="\"\",\"TOTAL CALLS\",\"$total_calls\",\"$call_hours_minutes\"\n"; + $MAIN.="</TABLE></center>\n"; ##### Login and Logout time from vicidial agent interface ##### - echo "<br><br>\n"; + $MAIN.="<br><br>\n"; - echo "<center>\n"; + $MAIN.="<center>\n"; - echo "<B>AGENT LOGIN/LOGOUT TIME:</B>\n"; - echo "<TABLE width=750 cellspacing=0 cellpadding=1>\n"; - echo "<tr><td><font size=2>EVENT </td><td align=right><font size=2> DATE</td><td align=right><font size=2> CAMPAIGN</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MM:SS</td><td align=right><font size=2>SESSION</td><td align=right><font size=2>SERVER</td><td align=right><font size=2>PHONE</td><td align=right><font size=2>COMPUTER</td></tr>\n"; + $MAIN.="<B>AGENT LOGIN/LOGOUT TIME:     <a href='$download_link&file_download=2'>[DOWNLOAD]</a></B>\n"; + $MAIN.="<TABLE width=750 cellspacing=0 cellpadding=1>\n"; + $MAIN.="<tr><td><font size=2>EVENT </td><td align=right><font size=2> DATE</td><td align=right><font size=2> CAMPAIGN</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MM:SS</td><td align=right><font size=2>SESSION</td><td align=right><font size=2>SERVER</td><td align=right><font size=2>PHONE</td><td align=right><font size=2>COMPUTER</td></tr>\n"; + + $CSV_text2.="\"AGENT LOGIN/LOGOUT TIME\"\n"; + $CSV_text2.="\"\",\"EVENT\",\"DATE\",\"CAMPAIGN\",\"GROUP\",\"HOURS:MM:SS\",\"SESSION\",\"SERVER\",\"PHONE\",\"COMPUTER\"\n"; $stmt="SELECT event,event_epoch,event_date,campaign_id,user_group,session_id,server_ip,extension,computer_ip from vicidial_user_log where user='" . mysql_real_escape_string($user) . "' and event_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and event_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by event_date;"; $rslt=mysql_query($stmt, $link); @@ -400,15 +397,16 @@ if ($did < 1) if (ereg("LOGIN", $row[0])) { $event_start_seconds = $row[1]; - echo "<tr $bgcolor><td><font size=2>$row[0]</td>"; - echo "<td align=right><font size=2> $row[2]</td>\n"; - echo "<td align=right><font size=2> $row[3]</td>\n"; - echo "<td align=right><font size=2> $row[4]</td>\n"; - echo "<td align=right><font size=2> </td>\n"; - echo "<td align=right><font size=2> $row[5] </td>\n"; - echo "<td align=right><font size=2> $row[6] </td>\n"; - echo "<td align=right><font size=2> $row[7] </td>\n"; - echo "<td align=right><font size=2> $row[8] </td></tr>\n"; + $MAIN.="<tr $bgcolor><td><font size=2>$row[0]</td>"; + $MAIN.="<td align=right><font size=2> $row[2]</td>\n"; + $MAIN.="<td align=right><font size=2> $row[3]</td>\n"; + $MAIN.="<td align=right><font size=2> $row[4]</td>\n"; + $MAIN.="<td align=right><font size=2> </td>\n"; + $MAIN.="<td align=right><font size=2> $row[5] </td>\n"; + $MAIN.="<td align=right><font size=2> $row[6] </td>\n"; + $MAIN.="<td align=right><font size=2> $row[7] </td>\n"; + $MAIN.="<td align=right><font size=2> $row[8] </td></tr>\n"; + $CSV_text2.="\"\",\"$row[0]\",$row[2]\",\"$row[3]\",\"$row[4]\",\"\",\"$row[5]\",\"$row[6]\",\"$row[7]\",\"$row[8]\"\n"; } if (ereg("LOGOUT", $row[0])) { @@ -420,22 +418,24 @@ if ($did < 1) $total_login_time = ($total_login_time + $event_seconds); $event_hours_minutes = sec_convert($event_seconds,'H'); - echo "<tr $bgcolor><td><font size=2>$row[0]</td>"; - echo "<td align=right><font size=2> $row[2]</td>\n"; - echo "<td align=right><font size=2> $row[3]</td>\n"; - echo "<td align=right><font size=2> $row[4]</td>\n"; - echo "<td align=right><font size=2> $event_hours_minutes</td>\n"; - echo "<td align=right colspan=4><font size=2>  </td></tr>\n"; + $MAIN.="<tr $bgcolor><td><font size=2>$row[0]</td>"; + $MAIN.="<td align=right><font size=2> $row[2]</td>\n"; + $MAIN.="<td align=right><font size=2> $row[3]</td>\n"; + $MAIN.="<td align=right><font size=2> $row[4]</td>\n"; + $MAIN.="<td align=right><font size=2> $event_hours_minutes</td>\n"; + $MAIN.="<td align=right colspan=4><font size=2>  </td></tr>\n"; $event_start_seconds=''; $event_stop_seconds=''; + $CSV_text2.="\"\",\"$row[0]\",\"$row[2]\",\"$row[3]\",\"$row[4]\",\"$event_hours_minutes\"\n"; } else { - echo "<tr $bgcolor><td><font size=2>$row[0]</td>"; - echo "<td align=right><font size=2> $row[2]</td>\n"; - echo "<td align=right><font size=2> $row[3]</td>\n"; - echo "<td align=right><font size=2> </td>\n"; - echo "<td align=right colspan=5><font size=2>  </td></tr>\n"; + $MAIN.="<tr $bgcolor><td><font size=2>$row[0]</td>"; + $MAIN.="<td align=right><font size=2> $row[2]</td>\n"; + $MAIN.="<td align=right><font size=2> $row[3]</td>\n"; + $MAIN.="<td align=right><font size=2> </td>\n"; + $MAIN.="<td align=right colspan=5><font size=2>  </td></tr>\n"; + $CSV_text2.="\"\",\"$row[0]\",\"$row[2]\",\"$row[3]\"\n"; } } @@ -447,13 +447,14 @@ if ($did < 1) $total_login_hours_minutes = sec_convert($total_login_time,'H'); - echo "<tr><td><font size=2>TOTAL</td>"; - echo "<td align=right><font size=2> </td>\n"; - echo "<td align=right><font size=2> </td>\n"; - echo "<td align=right><font size=2> </td>\n"; - echo "<td align=right><font size=2> $total_login_hours_minutes</td></tr>\n"; + $MAIN.="<tr><td><font size=2>TOTAL</td>"; + $MAIN.="<td align=right><font size=2> </td>\n"; + $MAIN.="<td align=right><font size=2> </td>\n"; + $MAIN.="<td align=right><font size=2> </td>\n"; + $MAIN.="<td align=right><font size=2> $total_login_hours_minutes</td></tr>\n"; + $CSV_text2.="\"\",\"TOTAL\",\"\",\"\",\"\",\"$total_login_hours_minutes\"\n"; - echo "</TABLE></center>\n"; + $MAIN.="</TABLE></center>\n"; @@ -467,16 +468,18 @@ if ($did < 1) $SQepoch = mktime(0, 0, 0, $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]); $EQepoch = mktime(23, 59, 59, $EQday_ARY[1], $EQday_ARY[2], $EQday_ARY[0]); - echo "<br><br>\n"; + $MAIN.="<br><br>\n"; - echo "<center>\n"; + $MAIN.="<center>\n"; - echo "<B>TIMECLOCK LOGIN/LOGOUT TIME:</B>\n"; - echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n"; - echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>EVENT </td><td align=right><font size=2> DATE</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; + $MAIN.="<B>TIMECLOCK LOGIN/LOGOUT TIME:     <a href='$download_link&file_download=3'>[DOWNLOAD]</a></B>\n"; + $MAIN.="<TABLE width=550 cellspacing=0 cellpadding=1>\n"; + $MAIN.="<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>EVENT </td><td align=right><font size=2> DATE</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; + $CSV_text3.="\"TIMECLOCK LOGIN/LOGOUT TIME\"\n"; + $CSV_text3.="\"\",\"ID\",\"EDIT\",\"EVENT\",\"DATE\",\"IPADDRESS\",\"GROUP\",\"HOURS:MM:SS\"\n"; $stmt="SELECT event,event_epoch,user_group,login_sec,ip_address,timeclock_id,manager_user from vicidial_timeclock_log where user='" . mysql_real_escape_string($user) . "' and event_epoch >= '$SQepoch' and event_epoch <= '$EQepoch';"; - if ($DB>0) {echo "|$stmt|";} + if ($DB>0) {$MAIN.="|$stmt|";} $rslt=mysql_query($stmt, $link); $events_to_print = mysql_num_rows($rslt); @@ -497,13 +500,14 @@ if ($did < 1) if (ereg("LOGIN", $row[0])) { $login_sec=''; - echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>"; - echo "<td align=right><font size=2>$manager_edit</td>"; - echo "<td align=right><font size=2>$row[0]</td>"; - echo "<td align=right><font size=2> $TC_log_date</td>\n"; - echo "<td align=right><font size=2> $row[4]</td>\n"; - echo "<td align=right><font size=2> $row[2]</td>\n"; - echo "<td align=right><font size=2> </td></tr>\n"; + $MAIN.="<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>"; + $MAIN.="<td align=right><font size=2>$manager_edit</td>"; + $MAIN.="<td align=right><font size=2>$row[0]</td>"; + $MAIN.="<td align=right><font size=2> $TC_log_date</td>\n"; + $MAIN.="<td align=right><font size=2> $row[4]</td>\n"; + $MAIN.="<td align=right><font size=2> $row[2]</td>\n"; + $MAIN.="<td align=right><font size=2> </td></tr>\n"; + $CSV_text3.="\"\",\"$row[5]\",\"$manager_edit\",\"$row[0]\",\"$TC_log_date\",\"$row[4]\",\"$row[2]\"\n"; } if (ereg("LOGOUT", $row[0])) { @@ -511,15 +515,16 @@ if ($did < 1) $total_login_time = ($total_login_time + $login_sec); $event_hours_minutes = sec_convert($login_sec,'H'); - echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>"; - echo "<td align=right><font size=2>$manager_edit</td>"; - echo "<td align=right><font size=2>$row[0]</td>"; - echo "<td align=right><font size=2> $TC_log_date</td>\n"; - echo "<td align=right><font size=2> $row[4]</td>\n"; - echo "<td align=right><font size=2> $row[2]</td>\n"; - echo "<td align=right><font size=2> $event_hours_minutes"; - if ($DB) {echo " - $total_login_time - $login_sec";} - echo "</td></tr>\n"; + $MAIN.="<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>"; + $MAIN.="<td align=right><font size=2>$manager_edit</td>"; + $MAIN.="<td align=right><font size=2>$row[0]</td>"; + $MAIN.="<td align=right><font size=2> $TC_log_date</td>\n"; + $MAIN.="<td align=right><font size=2> $row[4]</td>\n"; + $MAIN.="<td align=right><font size=2> $row[2]</td>\n"; + $MAIN.="<td align=right><font size=2> $event_hours_minutes"; + if ($DB) {$MAIN.=" - $total_login_time - $login_sec";} + $MAIN.="</td></tr>\n"; + $CSV_text3.="\"\",\"$row[5]\",\"$manager_edit\",\"$row[0]\",\"$TC_log_date\",\"$row[4]\",\"$row[2]\",\"$event_hours_minutes\"\n"; } $o++; } @@ -527,32 +532,35 @@ if ($did < 1) { $login_sec = ($STARTtime - $row[1]); $total_login_time = ($total_login_time + $login_sec); - if ($DB) {echo "LOGIN ONLY - $total_login_time - $login_sec";} + if ($DB) {$MAIN.="LOGIN ONLY - $total_login_time - $login_sec";} } $total_login_hours_minutes = sec_convert($total_login_time,'H'); - if ($DB) {echo " - $total_login_time - $login_sec";} + if ($DB) {$MAIN.=" - $total_login_time - $login_sec";} - echo "<tr><td align=right><font size=2> </td>"; - echo "<td align=right><font size=2> </td>\n"; - echo "<td align=right><font size=2> </td>\n"; - echo "<td align=right><font size=2> </td>\n"; - echo "<td align=right><font size=2><font size=2>TOTAL </td>\n"; - echo "<td align=right><font size=2> $total_login_hours_minutes </td></tr>\n"; - - echo "</TABLE></center>\n"; + $MAIN.="<tr><td align=right><font size=2> </td>"; + $MAIN.="<td align=right><font size=2> </td>\n"; + $MAIN.="<td align=right><font size=2> </td>\n"; + $MAIN.="<td align=right><font size=2> </td>\n"; + $MAIN.="<td align=right><font size=2><font size=2>TOTAL </td>\n"; + $MAIN.="<td align=right><font size=2> $total_login_hours_minutes </td></tr>\n"; + $CSV_text3.="\"\",\"\",\"\",\"\",\"\",\"TOTAL\",\"$total_login_hours_minutes\"\n"; + $MAIN.="</TABLE></center>\n"; ##### closer in-group selection logs ##### - echo "<br><br>\n"; + $MAIN.="<br><br>\n"; - echo "<center>\n"; + $MAIN.="<center>\n"; - echo "<B>CLOSER IN-GROUP SELECTION LOGS:</B>\n"; - echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; - echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2> CAMPAIGN</td><td align=left><font size=2>BLEND</td><td align=left><font size=2> GROUPS</td><td align=left><font size=2> MANAGER</td></tr>\n"; + $MAIN.="<B>CLOSER IN-GROUP SELECTION LOGS:     <a href='$download_link&file_download=4'>[DOWNLOAD]</a></B>\n"; + $MAIN.="<TABLE width=670 cellspacing=0 cellpadding=1>\n"; + $MAIN.="<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2> CAMPAIGN</td><td align=left><font size=2>BLEND</td><td align=left><font size=2> GROUPS</td><td align=left><font size=2> MANAGER</td></tr>\n"; + + $CSV_text4.="\"CLOSER IN-GROUP SELECTION LOGS\"\n"; + $CSV_text4.="\"\",\"#\",\"DATE/TIME\",\"CAMPAIGN\",\"BLEND\",\"GROUPS\",\"MANAGER\"\n"; $stmt="select user,campaign_id,event_date,blended,closer_campaigns,manager_change from vicidial_user_closer_log where user='" . mysql_real_escape_string($user) . "' and event_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and event_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by event_date desc limit 1000;"; $rslt=mysql_query($stmt, $link); @@ -568,25 +576,28 @@ if ($did < 1) {$bgcolor='bgcolor="#9BB9FB"';} $u++; - echo "<tr $bgcolor>"; - echo "<td><font size=1>$u</td>"; - echo "<td><font size=2>$row[2]</td>"; - echo "<td align=left><font size=2> $row[1]</td>\n"; - echo "<td align=left><font size=2> $row[3]</td>\n"; - echo "<td align=left><font size=2> $row[4] </td>\n"; - echo "<td align=left><font size=2> $row[5]</td>\n"; - echo "</tr>\n"; + $MAIN.="<tr $bgcolor>"; + $MAIN.="<td><font size=1>$u</td>"; + $MAIN.="<td><font size=2>$row[2]</td>"; + $MAIN.="<td align=left><font size=2> $row[1]</td>\n"; + $MAIN.="<td align=left><font size=2> $row[3]</td>\n"; + $MAIN.="<td align=left><font size=2> $row[4] </td>\n"; + $MAIN.="<td align=left><font size=2> $row[5]</td>\n"; + $CSV_text4.="\"\",\"$u\",\"$row[2]\",\"$row[1]\",\"$row[3]\",\"$row[4]\",\"$row[5] \"\n"; + $MAIN.="</tr>\n"; } - echo "</TABLE><BR><BR>\n"; + $MAIN.="</TABLE><BR><BR>\n"; ##### vicidial agent outbound calls for this time period ##### - echo "<B>OUTBOUND CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; - echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; - echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2>LENGTH</td><td align=left><font size=2> STATUS</td><td align=left><font size=2> PHONE</td><td align=right><font size=2> CAMPAIGN</td><td align=right><font size=2> GROUP</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> HANGUP REASON</td></tr>\n"; + $MAIN.="<B>OUTBOUND CALLS FOR THIS TIME PERIOD: (10000 record limit)     <a href='$download_link&file_download=5'>[DOWNLOAD]</a></B>\n"; + $MAIN.="<TABLE width=670 cellspacing=0 cellpadding=1>\n"; + $MAIN.="<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2>LENGTH</td><td align=left><font size=2> STATUS</td><td align=left><font size=2> PHONE</td><td align=right><font size=2> CAMPAIGN</td><td align=right><font size=2> GROUP</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> HANGUP REASON</td></tr>\n"; + $CSV_text5.="\"OUTBOUND CALLS FOR THIS TIME PERIOD: (10000 record limit)\"\n"; + $CSV_text5.="\"\",\"#\",\"DATE/TIME\",\"LENGTH\",\"STATUS\",\"PHONE\",\"CAMPAIGN\",\"GROUP\",\"LIST\",\"LEAD\",\"HANGUP REASON\"\n"; $stmt="select uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,user_group,term_reason,alt_dial from vicidial_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by call_date desc limit 10000;"; $rslt=mysql_query($stmt, $link); @@ -602,28 +613,31 @@ if ($did < 1) {$bgcolor='bgcolor="#9BB9FB"';} $u++; - echo "<tr $bgcolor>"; - echo "<td><font size=1>$u</td>"; - echo "<td><font size=2>$row[4]</td>"; - echo "<td align=left><font size=2> $row[7]</td>\n"; - echo "<td align=left><font size=2> $row[8]</td>\n"; - echo "<td align=left><font size=2> $row[10] </td>\n"; - echo "<td align=right><font size=2> $row[3] </td>\n"; - echo "<td align=right><font size=2> $row[14] </td>\n"; - echo "<td align=right><font size=2> $row[2] </td>\n"; - echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[1]\" target=\"_blank\">$row[1]</A> </td>\n"; - echo "<td align=right><font size=2> $row[15] </td></tr>\n"; + $MAIN.="<tr $bgcolor>"; + $MAIN.="<td><font size=1>$u</td>"; + $MAIN.="<td><font size=2>$row[4]</td>"; + $MAIN.="<td align=left><font size=2> $row[7]</td>\n"; + $MAIN.="<td align=left><font size=2> $row[8]</td>\n"; + $MAIN.="<td align=left><font size=2> $row[10] </td>\n"; + $MAIN.="<td align=right><font size=2> $row[3] </td>\n"; + $MAIN.="<td align=right><font size=2> $row[14] </td>\n"; + $MAIN.="<td align=right><font size=2> $row[2] </td>\n"; + $MAIN.="<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[1]\" target=\"_blank\">$row[1]</A> </td>\n"; + $MAIN.="<td align=right><font size=2> $row[15] </td></tr>\n"; + $CSV_text5.="\"\",\"$u\",\"$row[4]\",\"$row[7]\",\"$row[8]\",\"$row[10]\",\"$row[3]\",\"$row[14]\",\"$row[2]\",\"$row[1]\",\"$row[15]\"\n"; } - echo "</TABLE><BR><BR>\n"; + $MAIN.="</TABLE><BR><BR>\n"; } ##### vicidial agent inbound calls for this time period ##### -echo "<B>INBOUND/CLOSER CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; -echo "<TABLE width=750 cellspacing=0 cellpadding=1>\n"; -echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2>LENGTH</td><td align=left><font size=2> STATUS</td><td align=left><font size=2> PHONE</td><td align=right><font size=2> CAMPAIGN</td><td align=right><font size=2> WAIT (S)</td><td align=right><font size=2> AGENT (S)</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> HANGUP REASON</td></tr>\n"; +$MAIN.="<B>INBOUND/CLOSER CALLS FOR THIS TIME PERIOD: (10000 record limit)     <a href='$download_link&file_download=6'>[DOWNLOAD]</a></B>\n"; +$MAIN.="<TABLE width=750 cellspacing=0 cellpadding=1>\n"; +$MAIN.="<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2>LENGTH</td><td align=left><font size=2> STATUS</td><td align=left><font size=2> PHONE</td><td align=right><font size=2> CAMPAIGN</td><td align=right><font size=2> WAIT (S)</td><td align=right><font size=2> AGENT (S)</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> HANGUP REASON</td></tr>\n"; +$CSV_text6.="\"INBOUND/CLOSER CALLS FOR THIS TIME PERIOD: (10000 record limit)\"\n"; +$CSV_text6.="\"\",\"#\",\"DATE/TIME\",\"LENGTH\",\"STATUS\",\"PHONE\",\"CAMPAIGN\",\"WAIT(S)\",\"AGENT(S)\",\"LIST\",\"LEAD\",\"HANGUP REASON\"\n"; $stmt="select call_date,length_in_sec,status,phone_number,campaign_id,queue_seconds,list_id,lead_id,term_reason from vicidial_closer_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by call_date desc limit 10000;"; if ($did > 0) @@ -662,36 +676,40 @@ while ($logs_to_print > $u) $TOTALagentSECONDS = ($TOTALagentSECONDS + $AGENTseconds); $u++; - echo "<tr $bgcolor>"; - echo "<td><font size=1>$u</td>"; - echo "<td><font size=2>$row[0]</td>"; - echo "<td align=left><font size=2> $row[1]</td>\n"; - echo "<td align=left><font size=2> $row[2]</td>\n"; - echo "<td align=left><font size=2> $row[3] </td>\n"; - echo "<td align=right><font size=2> $row[4] </td>\n"; - echo "<td align=right><font size=2> $row[5] </td>\n"; - echo "<td align=right><font size=2> $AGENTseconds </td>\n"; - echo "<td align=right><font size=2> $row[6] </td>\n"; - echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[7]\" target=\"_blank\">$row[7]</A> </td>\n"; - echo "<td align=right><font size=2> $row[8] </td></tr>\n"; + $MAIN.="<tr $bgcolor>"; + $MAIN.="<td><font size=1>$u</td>"; + $MAIN.="<td><font size=2>$row[0]</td>"; + $MAIN.="<td align=left><font size=2> $row[1]</td>\n"; + $MAIN.="<td align=left><font size=2> $row[2]</td>\n"; + $MAIN.="<td align=left><font size=2> $row[3] </td>\n"; + $MAIN.="<td align=right><font size=2> $row[4] </td>\n"; + $MAIN.="<td align=right><font size=2> $row[5] </td>\n"; + $MAIN.="<td align=right><font size=2> $AGENTseconds </td>\n"; + $MAIN.="<td align=right><font size=2> $row[6] </td>\n"; + $MAIN.="<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[7]\" target=\"_blank\">$row[7]</A> </td>\n"; + $MAIN.="<td align=right><font size=2> $row[8] </td></tr>\n"; + $CSV_text6.="\"\",\"$u\",\"$row[0]\",\"$row[1]\",\"$row[2]\",\"$row[3]\",\"$row[4]\",\"$row[5]\",\"$AGENTseconds\",\"$row[6]\",\"$row[7]\",\"$row[8]\"\n"; } -echo "<tr bgcolor=white>"; -echo "<td colspan=2><font size=2>TOTALS</td>"; -echo "<td align=left><font size=2> $TOTALinSECONDS</td>\n"; -echo "<td colspan=4><font size=2>   </td>\n"; -echo "<td align=right><font size=2> $TOTALagentSECONDS</td>\n"; -echo "<td colspan=3><font size=2>   </td></tr>\n"; -echo "</TABLE></center><BR><BR>\n"; +$MAIN.="<tr bgcolor=white>"; +$MAIN.="<td colspan=2><font size=2>TOTALS</td>"; +$MAIN.="<td align=left><font size=2> $TOTALinSECONDS</td>\n"; +$MAIN.="<td colspan=4><font size=2>   </td>\n"; +$MAIN.="<td align=right><font size=2> $TOTALagentSECONDS</td>\n"; +$MAIN.="<td colspan=3><font size=2>   </td></tr>\n"; +$MAIN.="</TABLE></center><BR><BR>\n"; +$CSV_text6.="\"\",\"\",\"TOTALS\",\"$TOTALinSECONDS\",\"\",\"\",\"\",\"\",\"$TOTALagentSECONDS\"\n"; ##### vicidial agent activity records for this time period ##### if ($did < 1) { - echo "<B>AGENT ACTIVITY FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; - echo "<TABLE width=750 cellspacing=0 cellpadding=1>\n"; - echo "<tr><td colspan=2><font size=1>   </td><td colspan=6 align=center bgcolor=white><font size=1>these fields are in seconds </td><td colspan=4><font size=1>   </td></tr>\n"; - echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2>PAUSE</td><td align=left><font size=2> WAIT</td><td align=left><font size=2> TALK</td><td align=right><font size=2> DISPO</td><td align=right><font size=2> DEAD</td><td align=right><font size=2> CUSTOMER</td><td align=right><font size=2> STATUS</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> CAMPAIGN</td><td align=right><font size=2> PAUSE CODE</td></tr>\n"; + $MAIN.="<B>AGENT ACTIVITY FOR THIS TIME PERIOD: (10000 record limit)     <a href='$download_link&file_download=7'>[DOWNLOAD]</a></B>\n"; + $MAIN.="<TABLE width=750 cellspacing=0 cellpadding=1>\n"; + $MAIN.="<tr><td colspan=2><font size=1>   </td><td colspan=6 align=center bgcolor=white><font size=1>these fields are in seconds </td><td colspan=4><font size=1>   </td></tr>\n"; + $MAIN.="<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2>PAUSE</td><td align=left><font size=2> WAIT</td><td align=left><font size=2> TALK</td><td align=right><font size=2> DISPO</td><td align=right><font size=2> DEAD</td><td align=right><font size=2> CUSTOMER</td><td align=right><font size=2> STATUS</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> CAMPAIGN</td><td align=right><font size=2> PAUSE CODE</td></tr>\n"; + $CSV_text7.="\"AGENT ACTIVITY FOR THIS TIME PERIOD: (10000 record limit)\"\n"; + $CSV_text7.="\"\",\"#\",\"DATE/TIME\",\"PAUSE\",\"WAIT\",\"TALK\",\"DISPO\",\"DEAD\",\"CUSTOMER\",\"STATUS\",\"LEAD\",\"CAMPAIGN\",\"PAUSE CODE\"\n"; $stmt="select event_time,lead_id,campaign_id,pause_sec,wait_sec,talk_sec,dispo_sec,dead_sec,status,sub_status,user_group from vicidial_agent_log where user='" . mysql_real_escape_string($user) . "' and event_time >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and event_time <= '" . mysql_real_escape_string($end_date) . " 23:59:59' and ( (pause_sec > 0) or (wait_sec > 0) or (talk_sec > 0) or (dispo_sec > 0) ) order by event_time desc limit 10000;"; $rslt=mysql_query($stmt, $link); @@ -743,46 +761,48 @@ if ($did < 1) $DBcall_end_sec = mktime($DBtime[0], $DBtime[1], ($DBtime[2] + $DBtotal_sec), $DBdate[1], $DBdate[2], $DBdate[0]); $DBcall_end = date("Y-m-d H:i:s",$DBcall_end_sec); - echo "<tr $bgcolor>"; - echo "<td><font size=1>  </td>"; - echo "<td><font size=2>$DBcall_end</td>"; - echo "<td align=right><font size=2> $DBtotal_sec </td>\n"; - echo "<td align=right><font size=2>   </td>\n"; - echo "<td align=right><font size=2>   </td>\n"; - echo "<td align=right><font size=2>   </td>\n"; - echo "<td align=right><font size=2>   </td>\n"; - echo "<td align=right><font size=2>   </td>\n"; - echo "<td align=right><font size=2>   </td>\n"; - echo "<td align=right><font size=2>   </td>\n"; - echo "<td align=right><font size=2>   </td>\n"; - echo "<td align=right><font size=2>   </td></tr>\n"; + $MAIN.="<tr $bgcolor>"; + $MAIN.="<td><font size=1>  </td>"; + $MAIN.="<td><font size=2>$DBcall_end</td>"; + $MAIN.="<td align=right><font size=2> $DBtotal_sec </td>\n"; + $MAIN.="<td align=right><font size=2>   </td>\n"; + $MAIN.="<td align=right><font size=2>   </td>\n"; + $MAIN.="<td align=right><font size=2>   </td>\n"; + $MAIN.="<td align=right><font size=2>   </td>\n"; + $MAIN.="<td align=right><font size=2>   </td>\n"; + $MAIN.="<td align=right><font size=2>   </td>\n"; + $MAIN.="<td align=right><font size=2>   </td>\n"; + $MAIN.="<td align=right><font size=2>   </td>\n"; + $MAIN.="<td align=right><font size=2>   </td></tr>\n"; } $u++; - echo "<tr $bgcolor>"; - echo "<td><font size=1>$u</td>"; - echo "<td><font size=2>$event_time</td>"; - echo "<td align=right><font size=2> $pause_sec</td>\n"; - echo "<td align=right><font size=2> $wait_sec</td>\n"; - echo "<td align=right><font size=2> $talk_sec </td>\n"; - echo "<td align=right><font size=2> $dispo_sec </td>\n"; - echo "<td align=right><font size=2> $dead_sec </td>\n"; - echo "<td align=right><font size=2> $customer_sec </td>\n"; - echo "<td align=right><font size=2> $status </td>\n"; - echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$lead_id\" target=\"_blank\">$lead_id</A> </td>\n"; - echo "<td align=right><font size=2> $campaign_id </td>\n"; - echo "<td align=right><font size=2> $pause_code </td></tr>\n"; + $MAIN.="<tr $bgcolor>"; + $MAIN.="<td><font size=1>$u</td>"; + $MAIN.="<td><font size=2>$event_time</td>"; + $MAIN.="<td align=right><font size=2> $pause_sec</td>\n"; + $MAIN.="<td align=right><font size=2> $wait_sec</td>\n"; + $MAIN.="<td align=right><font size=2> $talk_sec </td>\n"; + $MAIN.="<td align=right><font size=2> $dispo_sec </td>\n"; + $MAIN.="<td align=right><font size=2> $dead_sec </td>\n"; + $MAIN.="<td align=right><font size=2> $customer_sec </td>\n"; + $MAIN.="<td align=right><font size=2> $status </td>\n"; + $MAIN.="<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$lead_id\" target=\"_blank\">$lead_id</A> </td>\n"; + $MAIN.="<td align=right><font size=2> $campaign_id </td>\n"; + $MAIN.="<td align=right><font size=2> $pause_code </td></tr>\n"; + $CSV_text7.="\"\",\"$u\",\"$event_time\",\"$pause_sec\",\"$wait_sec\",\"$talk_sec\",\"$dispo_sec\",\"$dead_sec\",\"$customer_sec\",\"$status\",\"$lead_id\",\"$campaign_id\",\"$pause_code \"\n"; } - echo "<tr bgcolor=white>"; - echo "<td colspan=2><font size=2>TOTALS</td>"; - echo "<td align=right><font size=2> $TOTALpauseSECONDS</td>\n"; - echo "<td align=right><font size=2> $TOTALwaitSECONDS</td>\n"; - echo "<td align=right><font size=2> $TOTALtalkSECONDS</td>\n"; - echo "<td align=right><font size=2> $TOTALdispoSECONDS</td>\n"; - echo "<td align=right><font size=2> $TOTALdeadSECONDS</td>\n"; - echo "<td align=right><font size=2> $TOTALcustomerSECONDS</td>\n"; - echo "<td colspan=4><font size=2>   </td></tr>\n"; + $MAIN.="<tr bgcolor=white>"; + $MAIN.="<td colspan=2><font size=2>TOTALS</td>"; + $MAIN.="<td align=right><font size=2> $TOTALpauseSECONDS</td>\n"; + $MAIN.="<td align=right><font size=2> $TOTALwaitSECONDS</td>\n"; + $MAIN.="<td align=right><font size=2> $TOTALtalkSECONDS</td>\n"; + $MAIN.="<td align=right><font size=2> $TOTALdispoSECONDS</td>\n"; + $MAIN.="<td align=right><font size=2> $TOTALdeadSECONDS</td>\n"; + $MAIN.="<td align=right><font size=2> $TOTALcustomerSECONDS</td>\n"; + $MAIN.="<td colspan=4><font size=2>   </td></tr>\n"; + $CSV_text7.="\"\",\"\",\"TOTALS\",\"$TOTALpauseSECONDS\",\"$TOTALwaitSECONDS\",\"$TOTALtalkSECONDS\",\"$TOTALdispoSECONDS\",\"$TOTALdeadSECONDS\",\"$TOTALcustomerSECONDS\"\n"; $TOTALpauseSECONDShh = sec_convert($TOTALpauseSECONDS,'H'); $TOTALwaitSECONDShh = sec_convert($TOTALwaitSECONDS,'H'); @@ -791,25 +811,28 @@ if ($did < 1) $TOTALdeadSECONDShh = sec_convert($TOTALdeadSECONDS,'H'); $TOTALcustomerSECONDShh = sec_convert($TOTALcustomerSECONDS,'H'); - echo "<tr bgcolor=white>"; - echo "<td colspan=2><font size=1>(in HH:MM:SS)</td>"; - echo "<td align=right><font size=2> $TOTALpauseSECONDShh</td>\n"; - echo "<td align=right><font size=2> $TOTALwaitSECONDShh</td>\n"; - echo "<td align=right><font size=2> $TOTALtalkSECONDShh</td>\n"; - echo "<td align=right><font size=2> $TOTALdispoSECONDShh</td>\n"; - echo "<td align=right><font size=2> $TOTALdeadSECONDShh</td>\n"; - echo "<td align=right><font size=2> $TOTALcustomerSECONDShh</td>\n"; - echo "<td colspan=4><font size=2>   </td></tr>\n"; + $MAIN.="<tr bgcolor=white>"; + $MAIN.="<td colspan=2><font size=1>(in HH:MM:SS)</td>"; + $MAIN.="<td align=right><font size=2> $TOTALpauseSECONDShh</td>\n"; + $MAIN.="<td align=right><font size=2> $TOTALwaitSECONDShh</td>\n"; + $MAIN.="<td align=right><font size=2> $TOTALtalkSECONDShh</td>\n"; + $MAIN.="<td align=right><font size=2> $TOTALdispoSECONDShh</td>\n"; + $MAIN.="<td align=right><font size=2> $TOTALdeadSECONDShh</td>\n"; + $MAIN.="<td align=right><font size=2> $TOTALcustomerSECONDShh</td>\n"; + $MAIN.="<td colspan=4><font size=2>   </td></tr>\n"; + $CSV_text7.="\"\",\"\",\"(in HH:MM:SS)\",\"$TOTALpauseSECONDShh\",\"$TOTALwaitSECONDShh\",\"$TOTALtalkSECONDShh\",\"$TOTALdispoSECONDShh\",\"$TOTALdeadSECONDShh\",\"$TOTALcustomerSECONDShh\"\n"; - echo "</TABLE></center><BR><BR>\n"; + $MAIN.="</TABLE></center><BR><BR>\n"; } ##### vicidial recordings for this time period ##### -echo "<B>RECORDINGS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; -echo "<TABLE width=750 cellspacing=0 cellpadding=1>\n"; -echo "<tr><td><font size=1># </td><td align=left><font size=2> LEAD</td><td><font size=2>DATE/TIME </td><td align=left><font size=2>SECONDS </td><td align=left><font size=2>   RECID</td><td align=center><font size=2>FILENAME</td><td align=center><font size=2>LOCATION   </td></tr>\n"; +$MAIN.="<B>RECORDINGS FOR THIS TIME PERIOD: (10000 record limit)     <a href='$download_link&file_download=8'>[DOWNLOAD]</a></B>\n"; +$MAIN.="<TABLE width=750 cellspacing=0 cellpadding=1>\n"; +$MAIN.="<tr><td><font size=1># </td><td align=left><font size=2> LEAD</td><td><font size=2>DATE/TIME </td><td align=left><font size=2>SECONDS </td><td align=left><font size=2>   RECID</td><td align=center><font size=2>FILENAME</td><td align=center><font size=2>LOCATION   </td></tr>\n"; +$CSV_text8.="\"RECORDINGS FOR THIS TIME PERIOD: (10000 record limit)\"\n"; +$CSV_text8.="\"\",\"#\",\"LEAD\",\"DATE/TIME\",\"SECONDS\",\"RECID\",\"FILENAME\",\"LOCATION\"\n"; $stmt="select recording_id,channel,server_ip,extension,start_time,start_epoch,end_time,end_epoch,length_in_sec,length_in_min,filename,location,lead_id,user,vicidial_id from recording_log where user='" . mysql_real_escape_string($user) . "' and start_time >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and start_time <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by recording_id desc limit 10000;"; $rslt=mysql_query($stmt, $link); @@ -825,6 +848,7 @@ echo "<tr><td><font size=1># </td><td align=left><font size=2> LEAD</td><td><fon {$bgcolor='bgcolor="#9BB9FB"';} $location = $row[11]; + $CSV_location=$row[11]; if (strlen($location)>2) { @@ -862,27 +886,30 @@ echo "<tr><td><font size=1># </td><td align=left><font size=2> LEAD</td><td><fon else {$location = $locat;} $u++; - echo "<tr $bgcolor>"; - echo "<td><font size=1>$u</td>"; - echo "<td align=left><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[12]\" target=\"_blank\">$row[12]</A> </td>"; - echo "<td align=left><font size=2> $row[4] </td>\n"; - echo "<td align=left><font size=2> $row[8] </td>\n"; - echo "<td align=left><font size=2> $row[0] </td>\n"; - echo "<td align=center><font size=2> $row[10] </td>\n"; - echo "<td align=right><font size=2> $location   </td>\n"; - echo "</tr>\n"; + $MAIN.="<tr $bgcolor>"; + $MAIN.="<td><font size=1>$u</td>"; + $MAIN.="<td align=left><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[12]\" target=\"_blank\">$row[12]</A> </td>"; + $MAIN.="<td align=left><font size=2> $row[4] </td>\n"; + $MAIN.="<td align=left><font size=2> $row[8] </td>\n"; + $MAIN.="<td align=left><font size=2> $row[0] </td>\n"; + $MAIN.="<td align=center><font size=2> $row[10] </td>\n"; + $MAIN.="<td align=right><font size=2> $location   </td>\n"; + $MAIN.="</tr>\n"; + $CSV_text8.="\"\",\"$u\",\"$row[12]\",\"$row[4]\",\"$row[8]\",\"$row[0]\",\"$row[10]\",\"$CSV_location\"\n"; } -echo "</TABLE><BR><BR>\n"; +$MAIN.="</TABLE><BR><BR>\n"; if ($did < 1) { ##### vicidial agent outbound user manual calls for this time period ##### - echo "<B>MANUAL OUTBOUND CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; - echo "<TABLE width=750 cellspacing=0 cellpadding=1>\n"; - echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2> CALL TYPE</td><td align=left><font size=2> SERVER</td><td align=left><font size=2> PHONE</td><td align=right><font size=2> DIALED</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> CALLERID</td><td align=right><font size=2> ALIAS</td><td align=right><font size=2> PRESET</td><td align=right><font size=2>C3HU</td></tr>\n"; + $MAIN.="<B>MANUAL OUTBOUND CALLS FOR THIS TIME PERIOD: (10000 record limit)     <a href='$download_link&file_download=9'>[DOWNLOAD]</a></B>\n"; + $MAIN.="<TABLE width=750 cellspacing=0 cellpadding=1>\n"; + $MAIN.="<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2> CALL TYPE</td><td align=left><font size=2> SERVER</td><td align=left><font size=2> PHONE</td><td align=right><font size=2> DIALED</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> CALLERID</td><td align=right><font size=2> ALIAS</td><td align=right><font size=2> PRESET</td><td align=right><font size=2>C3HU</td></tr>\n"; + $CSV_text9.="\"MANUAL OUTBOUND CALLS FOR THIS TIME PERIOD: (10000 record limit)\"\n"; + $CSV_text9.="\"\",\"#\",\"DATE/TIME\",\"CALL TYPE\",\"SERVER\",\"PHONE\",\"DIALED\",\"LEAD\",\"CALLERID\",\"ALIAS\",\"PRESET\",\"C3HU\"\n"; $stmt="select call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id,preset_name,customer_hungup,customer_hungup_seconds from user_call_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by call_date desc limit 10000;"; $rslt=mysql_query($stmt, $link); @@ -904,29 +931,32 @@ if ($did < 1) {$C3HU = "$row[9] $row[10]";} $u++; - echo "<tr $bgcolor>"; - echo "<td><font size=1>$u</td>"; - echo "<td><font size=2>$row[0]</td>"; - echo "<td align=left><font size=2> $row[1]</td>\n"; - echo "<td align=left><font size=2> $row[2]</td>\n"; - echo "<td align=left><font size=2> $row[3] </td>\n"; - echo "<td align=right><font size=2> $row[4] </td>\n"; - echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[5]\" target=\"_blank\">$row[5]</A> </td>\n"; - echo "<td align=right><font size=2> $row[6] </td>\n"; - echo "<td align=right><font size=2> $row[7] </td>\n"; - echo "<td align=right><font size=2> $row[8] </td>\n"; - echo "<td align=right NOWRAP><font size=2> $C3HU </td></tr>\n"; + $MAIN.="<tr $bgcolor>"; + $MAIN.="<td><font size=1>$u</td>"; + $MAIN.="<td><font size=2>$row[0]</td>"; + $MAIN.="<td align=left><font size=2> $row[1]</td>\n"; + $MAIN.="<td align=left><font size=2> $row[2]</td>\n"; + $MAIN.="<td align=left><font size=2> $row[3] </td>\n"; + $MAIN.="<td align=right><font size=2> $row[4] </td>\n"; + $MAIN.="<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[5]\" target=\"_blank\">$row[5]</A> </td>\n"; + $MAIN.="<td align=right><font size=2> $row[6] </td>\n"; + $MAIN.="<td align=right><font size=2> $row[7] </td>\n"; + $MAIN.="<td align=right><font size=2> $row[8] </td>\n"; + $MAIN.="<td align=right NOWRAP><font size=2> $C3HU </td></tr>\n"; + $CSV_text9.="\"\",\"$u\",\"$row[0]\",\"$row[1]\",\"$row[2]\",\"$row[3]\",\"$row[4]\",\"$row[5]\",\"$row[6]\",\"$row[7]\",\"$row[8]\",\"$C3HU\"\n"; } - echo "</TABLE><BR><BR>\n"; + $MAIN.="</TABLE><BR><BR>\n"; } if ($did < 1) { ##### vicidial lead searches for this time period ##### - echo "<B>LEAD SEARCHES FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; - echo "<TABLE width=750 cellspacing=0 cellpadding=1>\n"; - echo "<tr><td><font size=1># </td><td NOWRAP><font size=2>DATE/TIME   </td><td align=left NOWRAP><font size=2> TYPE   </td><td align=left NOWRAP><font size=2> RESULTS   </td><td align=left NOWRAP><font size=2> SEC   </td><td align=right NOWRAP><font size=2> QUERY</td></tr>\n"; + $MAIN.="<B>LEAD SEARCHES FOR THIS TIME PERIOD: (10000 record limit)     <a href='$download_link&file_download=10'>[DOWNLOAD]</a></B>\n"; + $MAIN.="<TABLE width=750 cellspacing=0 cellpadding=1>\n"; + $MAIN.="<tr><td><font size=1># </td><td NOWRAP><font size=2>DATE/TIME   </td><td align=left NOWRAP><font size=2> TYPE   </td><td align=left NOWRAP><font size=2> RESULTS   </td><td align=left NOWRAP><font size=2> SEC   </td><td align=right NOWRAP><font size=2> QUERY</td></tr>\n"; + $CSV_text10.="\"LEAD SEARCHES FOR THIS TIME PERIOD: (10000 record limit)\"\n"; + $CSV_text10.="\"\",\"#\",\"DATE/TIME\",\"TYPE\",\"RESULTS\",\"SEC\",\"QUERY\"\n"; $stmt="select event_date,source,results,seconds,search_query from vicidial_lead_search_log where user='" . mysql_real_escape_string($user) . "' and event_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and event_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by event_date desc limit 10000;"; $rslt=mysql_query($stmt, $link); @@ -947,15 +977,16 @@ if ($did < 1) while (strlen($row[4]) > 100) {$row[4] = preg_replace("/.$/",'',$row[4]);} $u++; - echo "<tr $bgcolor>"; - echo "<td><font size=1>$u</td>"; - echo "<td><font size=2>$row[0]</td>"; - echo "<td align=center><font size=2> $row[1] </td>\n"; - echo "<td align=right><font size=2> $row[2] </td>\n"; - echo "<td align=right><font size=2> $row[3] </td>\n"; - echo "<td align=right><font size=2> $row[4] </td></tr>\n"; + $MAIN.="<tr $bgcolor>"; + $MAIN.="<td><font size=1>$u</td>"; + $MAIN.="<td><font size=2>$row[0]</td>"; + $MAIN.="<td align=center><font size=2> $row[1] </td>\n"; + $MAIN.="<td align=right><font size=2> $row[2] </td>\n"; + $MAIN.="<td align=right><font size=2> $row[3] </td>\n"; + $MAIN.="<td align=right><font size=2> $row[4] </td></tr>\n"; + $CSV_text10.="\"\",\"$u\",\"$row[0]\",\"$row[1]\",\"$row[2]\",\"$row[3]\",\"$row[4]\"\n"; } - echo "</TABLE><BR><BR>\n"; + $MAIN.="</TABLE><BR><BR>\n"; } @@ -963,22 +994,47 @@ $ENDtime = date("U"); $RUNtime = ($ENDtime - $STARTtime); -echo "\n\n\n<br><br><br>\n\n"; +$MAIN.="\n\n\n<br><br><br>\n\n"; -echo "<font size=0>\n\n\n<br><br><br>\nscript runtime: $RUNtime seconds|$db_source</font>"; +$MAIN.="<font size=0>\n\n\n<br><br><br>\nscript runtime: $RUNtime seconds|$db_source</font>"; + +$MAIN.="</TD></TR><TABLE>"; +$MAIN.="</body>"; +$MAIN.="</html>"; -?> + if ($file_download>0) { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "user_stats_$US$FILE_TIME.csv"; + $CSV_var="CSV_text".$file_download; + $CSV_text=preg_replace('/^\s+/', '', $$CSV_var); + $CSV_text=preg_replace('/\n\s+,/', ',', $CSV_text); + $CSV_text=preg_replace('/ +\"/', '"', $CSV_text); + $CSV_text=preg_replace('/\" +/', '"', $CSV_text); + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); -</TD></TR><TABLE> -</body> -</html> + echo "$CSV_text"; + + exit; + } else { + header ("Content-type: text/html; charset=utf-8"); + echo $HEADER; + require("admin_header.php"); + echo $MAIN; + exit; + } -<?php -exit;