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 "
";
}
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.=""._QXZ("DATE")." "._QXZ("PAUSE")." "._QXZ("WAIT")." "._QXZ("TALK")." "._QXZ("DISPO")." "._QXZ("DEAD")." "._QXZ("CUSTOMER")." "._QXZ("TOTAL")." \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.="$DBcall_end ";
# $MAIN.=" $DBtotal_sec \n";
# $MAIN.=" \n";
# $MAIN.=" \n";
# $MAIN.=" \n";
# $MAIN.=" \n";
# $MAIN.=" \n";
# $MAIN.=" \n";
# $MAIN.=" \n";
# $MAIN.=" \n";
# $MAIN.=" \n";
}
$u++;
# $MAIN.="";
# $MAIN.="$u ";
# $MAIN.="$event_time ";
# $MAIN.=" $pause_sec \n";
# $MAIN.=" $wait_sec \n";
# $MAIN.=" $talk_sec \n";
# $MAIN.=" $dispo_sec \n";
# $MAIN.=" $dead_sec \n";
# $MAIN.=" $customer_sec \n";
# $MAIN.=" $status \n";
# $MAIN.=" $lead_id \n";
# $MAIN.=" $campaign_id \n";
# $MAIN.=" $pause_code \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.=""._QXZ("TOTALS")." ";
# $MAIN.=" $TOTALpauseSECONDS \n";
# $MAIN.=" $TOTALwaitSECONDS \n";
# $MAIN.=" $TOTALtalkSECONDS \n";
# $MAIN.=" $TOTALdispoSECONDS \n";
# $MAIN.=" $TOTALdeadSECONDS \n";
# $MAIN.=" $TOTALcustomerSECONDS \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.="$date[$i] ";
$MAIN.=" $TOTALpauseSECONDShh \n";
$MAIN.=" $TOTALwaitSECONDShh \n";
$MAIN.=" $TOTALtalkSECONDShh \n";
$MAIN.=" $TOTALdispoSECONDShh \n";
$MAIN.=" $TOTALdeadSECONDShh \n";
$MAIN.=" $TOTALcustomerSECONDShh \n";
$MAIN.=" $TOTALtotalSECONDShh \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.="".($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")." ***"))." ";
}
$MAIN.="
\n";
}
$MAINprintALL .= $MAIN;
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);
?>