LICENSE: AGPLv2 # # CHANGES # # 150114-2158 - First build based on AST_agent_days_detail.php # 151227-1718 - Added option to search archive records instead of main # 160121-2217 - Added report title header, default report format, cleaned up formatting # 170409-1538 - Added IP List validation code # 170829-0040 - Added screen color settings # 191013-0812 - Fixes for PHP7 # 220303-1510 - Added allow_web_debug system setting # 230526-1740 - Patch for user_group bug, related to Issue #1346 # 231114-1703 - Fix for issue #1490 # 240801-1130 - Code updates for PHP8 compatibility # 240822-1645 - Fix for issue #1524 # $startMS = microtime(); require("dbconnect_mysqli.php"); require("functions.php"); $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; $PHP_SELF=$_SERVER['PHP_SELF']; $PHP_SELF = preg_replace('/\.php.*/i','.php',$PHP_SELF); if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} if (isset($_GET["group"])) {$group=$_GET["group"];} elseif (isset($_POST["group"])) {$group=$_POST["group"];} if (isset($_GET["user"])) {$user=$_GET["user"];} elseif (isset($_POST["user"])) {$user=$_POST["user"];} if (isset($_GET["shift"])) {$shift=$_GET["shift"];} elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} if (isset($_GET["stage"])) {$stage=$_GET["stage"];} elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} if (isset($_GET["DB"])) {$DB=$_GET["DB"];} elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} 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["report_display_type"])) {$report_display_type=$_GET["report_display_type"];} elseif (isset($_POST["report_display_type"])) {$report_display_type=$_POST["report_display_type"];} if (isset($_GET["search_archived_data"])) {$search_archived_data=$_GET["search_archived_data"];} elseif (isset($_POST["search_archived_data"])) {$search_archived_data=$_POST["search_archived_data"];} $DB=preg_replace("/[^0-9a-zA-Z]/","",$DB); $MT[0]=''; $NOW_DATE = date("Y-m-d"); $NOW_TIME = date("Y-m-d H:i:s"); $STARTtime = date("U"); if (!is_array($group)) {$group = array();} if (!isset($query_date)) {$query_date = $NOW_DATE;} if (!isset($end_date)) {$end_date = $NOW_DATE;} if (strlen($shift)<2) {$shift='ALL';} $report_name = 'Single Agent Daily Time'; $db_source = 'M'; $JS_text="\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo ""._QXZ("$report_name")."\n"; echo ""; echo ""; $short_header=1; require("admin_header.php"); echo "\n"; echo "\n"; echo ""._QXZ("$report_name")." $NWB#single_agent_time$NWE\n"; echo "
";
	}

if (strlen($group[0]) < 1)
	{
	echo "\n";
	echo _QXZ("PLEASE SELECT A USER AND DATE-TIME BELOW AND CLICK SUBMIT")."\n";
	echo " "._QXZ("NOTE: stats taken from shift specified")."\n";
	}

else
	{
	if ($shift == 'AM') 
		{
		$time_BEGIN=$AM_shift_BEGIN;
		$time_END=$AM_shift_END;
		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
		if (strlen($time_END) < 6) {$time_END = "15:14:59";}
		}
	if ($shift == 'PM') 
		{
		$time_BEGIN=$PM_shift_BEGIN;
		$time_END=$PM_shift_END;
		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
		}
	if ($shift == 'ALL') 
		{
		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
		}
	$query_date_BEGIN = "$query_date $time_BEGIN";   
	$query_date_END = "$end_date $time_END";

	if ($file_download < 1)
		{
		$ASCII_text.=_QXZ("Agent Days Time Report",24).": $user                     $NOW_TIME ($db_source)\n";
		$ASCII_text.=_QXZ("Time range").": $query_date_BEGIN "._QXZ("to")." $query_date_END\n\n";
		$GRAPH_text.=_QXZ("Agent Days Time Report",24).": $user                     $NOW_TIME ($db_source)\n";
		$GRAPH_text.=_QXZ("Time range").": $query_date_BEGIN "._QXZ("to")." $query_date_END\n\n";
		}
	else
		{
		$file_output .= _QXZ("Agent Days Time Report",24).": $user                     $NOW_TIME ($db_source)\n";
		$file_output .= _QXZ("Time range").": $query_date_BEGIN "._QXZ("to")." $query_date_END\n\n";
		}

	$statuses='-';
	$statusesTXT='';
	$statusesHEAD='';
	$statusesHTML='';
	$statusesFILE='';
	$statusesARY=array();
	$statusesARY[0]='';
	$j=0;
	$calls=array();
	$date=array();
	$dates='-';
	$datesARY=array();
	$datesARY[0]='';
	$date_namesARY=array();
	$date_namesARY[0]='';
	$k=0;

	$ustmt="select count(*), ".($rawLOGadmin_viewable_groupsSQL=="---ALL---" ? "1" : "if(user_group in ('$rawLOGadmin_viewable_groupsSQL'), 1, 0)")." as accessible_user From vicidial_users where user='$user'";
	$urslt=mysql_to_mysqli($ustmt, $link);
	if ($DB) {echo "$ustmt\n";}
	$urow=mysqli_fetch_row($urslt);
	$rows_to_print=0;

	if ($urow[0]>0 && $urow[1]>0)
		{
		$stmt="select date_format(event_time, '%Y-%m-%d') as date,count(*) as calls from vicidial_users,".$vicidial_agent_log_table." where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and vicidial_users.user=".$vicidial_agent_log_table.".user and ".$vicidial_agent_log_table.".user='$user' $group_SQL $user_group_SQL $vuLOGadmin_viewable_groupsSQL group by date order by date desc limit 500000;";
		$rslt=mysql_to_mysqli($stmt, $link);
		if ($DB) {echo "$stmt\n";}
		$rows_to_print = mysqli_num_rows($rslt);
		$i=0;
		while ($i < $rows_to_print)
			{
			$row=mysqli_fetch_row($rslt);

			if ( ($row[1] > 0) and (strlen($row[0]) > 0) )
				{
				$date[$i] =			$row[0];
				$calls[$i] =		$row[1];
				if (!preg_match("/\-$date[$i]\-/i", $dates))
					{
					$dates .= "$date[$i]-";
					$datesARY[$k] = $date[$i];
					$k++;
					}
				}
			$i++;
			}
		}


	$MAIN.="";
	$MAIN.="\n";
	$MAIN.="\n";
	$MAINprintALL .= $MAIN;
	$MAIN='';
	
	$i=0;
	while ($i < $rows_to_print)
		{
		$MAIN='';
		$VALstart_time = "$date[$i] 00:00:00";
		$VALstop_time = "$date[$i] 23:59:59";

		$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_table." where user='$user' and event_time >= '$VALstart_time'  and event_time <= '$VALstop_time' and ( (pause_sec > 0) or (wait_sec > 0) or (talk_sec > 0) or (dispo_sec > 0) ) order by event_time desc limit 10000;";
		if ($DB) {$MAIN.="agent activity|$stmt|";}
		$rslt=mysql_to_mysqli($stmt, $link);
		$logs_to_print = mysqli_num_rows($rslt);

		$u=0;
		$TOTALpauseSECONDS=0;
		$TOTALwaitSECONDS=0;
		$TOTALtalkSECONDS=0;
		$TOTALdispoSECONDS=0;
		$TOTALdeadSECONDS=0;
		$TOTALcustomerSECONDS=0;
		$TOTALtotalSECONDS=0;

		while ($logs_to_print > $u) 
			{
			$row=mysqli_fetch_row($rslt);
			$event_time =	$row[0];
			$lead_id =		$row[1];
			$campaign_id =	$row[2];
			$pause_sec =	$row[3];
			$wait_sec =		$row[4];
			$talk_sec =		$row[5];
			$dispo_sec =	$row[6];
			$dead_sec =		$row[7];
			$status =		$row[8];
			$pause_code =	$row[9];
			$user_group =	$row[10];
			$customer_sec = ($talk_sec - $dead_sec);
			if ($customer_sec < 0)
				{$customer_sec=0;}

			if (preg_match("/1$|3$|5$|7$|9$/i", $u))
				{$bgcolor='bgcolor="#B9CBFD"';}
			else
				{$bgcolor='bgcolor="#9BB9FB"';}

			$TOTALpauseSECONDS = ($TOTALpauseSECONDS + $pause_sec);
			$TOTALwaitSECONDS = ($TOTALwaitSECONDS + $wait_sec);
			$TOTALtalkSECONDS = ($TOTALtalkSECONDS + $talk_sec);
			$TOTALdispoSECONDS = ($TOTALdispoSECONDS + $dispo_sec);
			$TOTALdeadSECONDS = ($TOTALdeadSECONDS + $dead_sec);
			$TOTALcustomerSECONDS = ($TOTALcustomerSECONDS + $customer_sec);

			if ($DB > 0)
				{
				$DBtotal_sec = ($pause_sec + $wait_sec + $talk_sec + $dispo_sec);
				$DBdatetime = explode(" ",$event_time);
				$DBdate = explode("-",$DBdatetime[0]);
				$DBtime = explode(":",$DBdatetime[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);
		#		$MAIN.="";
		#		$MAIN.="";
		#		$MAIN.="";
		#		$MAIN.="\n";
		#		$MAIN.="\n";
		#		$MAIN.="\n";
		#		$MAIN.="\n";
		#		$MAIN.="\n";
		#		$MAIN.="\n";
		#		$MAIN.="\n";
		#		$MAIN.="\n";
		#		$MAIN.="\n";
		#		$MAIN.="\n";
				}

			$u++;
		#	$MAIN.="";
		#	$MAIN.="";
		#	$MAIN.="";
		#	$MAIN.="\n";
		#	$MAIN.="\n";
		#	$MAIN.="\n";
		#	$MAIN.="\n";
		#	$MAIN.="\n";
		#	$MAIN.="\n";
		#	$MAIN.="\n";
		#	$MAIN.="\n";
		#	$MAIN.="\n";
		#	$MAIN.="\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";
			}

	#	$MAIN.="";
	#	$MAIN.="";
	#	$MAIN.="\n";
	#	$MAIN.="\n";
	#	$MAIN.="\n";
	#	$MAIN.="\n";
	#	$MAIN.="\n";
	#	$MAIN.="\n";
	#	$MAIN.="\n";
	#	$CSV_text7.="\"\",\"\",\""._QXZ("TOTALS")."\",\"$TOTALpauseSECONDS\",\"$TOTALwaitSECONDS\",\"$TOTALtalkSECONDS\",\"$TOTALdispoSECONDS\",\"$TOTALdeadSECONDS\",\"$TOTALcustomerSECONDS\"\n";

		$TOTALpauseSECONDShh =	sec_convert($TOTALpauseSECONDS,'H'); 
		$TOTALwaitSECONDShh =	sec_convert($TOTALwaitSECONDS,'H'); 
		$TOTALtalkSECONDShh =	sec_convert($TOTALtalkSECONDS,'H'); 
		$TOTALdispoSECONDShh =	sec_convert($TOTALdispoSECONDS,'H'); 
		$TOTALdeadSECONDShh =	sec_convert($TOTALdeadSECONDS,'H'); 
		$TOTALcustomerSECONDShh =	sec_convert($TOTALcustomerSECONDS,'H'); 
		$TOTALtotalSECONDS = ($TOTALpauseSECONDS + $TOTALwaitSECONDS + $TOTALtalkSECONDS + $TOTALdispoSECONDS);
		$TOTALtotalSECONDShh =	sec_convert($TOTALtotalSECONDS,'H'); 

		$MAIN.="";
		$MAIN.="";
		$MAIN.="\n";
		$MAIN.="\n";
		$MAIN.="\n";
		$MAIN.="\n";
		$MAIN.="\n";
		$MAIN.="\n";
		$MAIN.="\n";
		$MAIN.="\n";

		$MAINprintALL .= $MAIN;
		$MAIN='';

	#	$CSV_text7.="\"\",\"\",\""._QXZ("(in HH:MM:SS)")."\",\"$TOTALpauseSECONDShh\",\"$TOTALwaitSECONDShh\",\"$TOTALtalkSECONDShh\",\"$TOTALdispoSECONDShh\",\"$TOTALdeadSECONDShh\",\"$TOTALcustomerSECONDShh\"\n";

		$i++;
		}

	if ($i==0)
		{
		$MAIN.="";
		}

	$MAIN.="
"._QXZ("DATE")." "._QXZ("PAUSE")." "._QXZ("WAIT")." "._QXZ("TALK")." "._QXZ("DISPO")." "._QXZ("DEAD")." "._QXZ("CUSTOMER")." "._QXZ("TOTAL")."
 $DBcall_end $DBtotal_sec                  
$u$event_time $pause_sec $wait_sec $talk_sec $dispo_sec $dead_sec $customer_sec $status $lead_id $campaign_id $pause_code
"._QXZ("TOTALS")." $TOTALpauseSECONDS $TOTALwaitSECONDS $TOTALtalkSECONDS $TOTALdispoSECONDS $TOTALdeadSECONDS $TOTALcustomerSECONDS  
$date[$i] $TOTALpauseSECONDShh $TOTALwaitSECONDShh $TOTALtalkSECONDShh $TOTALdispoSECONDShh $TOTALdeadSECONDShh $TOTALcustomerSECONDShh $TOTALtotalSECONDShh
".($urow[0]==0 ? "*** "._QXZ("USER ID NOT FOUND")." ***" : ($urow[1]==0 ? "***" ._QXZ("YOU DO NOT HAVE PRIVILEGES TO VIEW THIS USER")." ***" : "***" ._QXZ("NO RECORDS FOUND")." ***"))."


\n"; } $MAINprintALL .= $MAIN; echo "
"; echo "
"._QXZ("Dates").":
"; echo "\n"; echo ""; ?> "._QXZ("to")."
"; ?>
"._QXZ("Campaigns").":
"; echo "\n"; echo "
"; #echo _QXZ("Display as").":   
"; #echo "\n

"; echo "
"._QXZ("User").":
"; echo "\n"; echo "
"._QXZ("Shift").":
"; echo "\n"; if ($archives_available=="Y") { echo ""._QXZ("Search archived data")."\n"; } echo "

\n"; echo "
        "; echo ""; if (strlen($user) > 1) { echo " "._QXZ("USER")." | \n"; echo " "._QXZ("USER STATS")." | \n"; } else {echo " "._QXZ("USERS")." | \n";} echo ""._QXZ("REPORTS")." \n"; echo "
"; echo "
"; echo $MAINprintALL; echo "\n"; /* if ($report_display_type=="TEXT" || !$report_display_type) { echo "\n"; echo "
\n\n\n\n\n\n\n\n\n\n";

	$m=0;
	$sort_order=array();
	while ($m < $k)
		{
		$sort_split = explode("-----",$TOPsort[$m]);
		$i = $sort_split[1];
		$sort_order[$m] = "$i";

		if ( ($TOPsortTALLY[$i] < 1) or ($TOPsortMAX < 1) )
			{echo "              \n";}
		else
			{
			echo "              ";
			$TOPsortPLOT = ( MathZDC($TOPsortTALLY[$i], $TOPsortMAX) * 120 );
			$h=0;
			while ($h <= $TOPsortPLOT)
				{
				echo " ";
				$h++;
				}
			echo "\n";
			}
		$m++;
		}

	echo "\n";
	}
*/

if ($db_source == 'S')
	{
	mysqli_close($link);
	$use_slave_server=0;
	$db_source = 'M';
	require("dbconnect_mysqli.php");
	}

$endMS = microtime();
$startMSary = explode(" ",$startMS);
$endMSary = explode(" ",$endMS);
$runS = ($endMSary[0] - $startMSary[0]);
$runM = ($endMSary[1] - $startMSary[1]);
$TOTALrun = ($runS + $runM);

$stmt="UPDATE vicidial_report_log set run_time='$TOTALrun' where report_log_id='$report_log_id';";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_to_mysqli($stmt, $link);


?>