From 9078b6b2ea0fc1b7874942d76d08d710cdfb002a Mon Sep 17 00:00:00 2001 From: Mike Koch Date: Sat, 9 Aug 2014 19:46:36 -0400 Subject: [PATCH] Now the reports page uses a panel instead of a tabbed container --- admin/reports.php | 1161 +++++++++++++++++++++++---------------------- 1 file changed, 581 insertions(+), 580 deletions(-) diff --git a/admin/reports.php b/admin/reports.php index 226017b2..917b4134 100644 --- a/admin/reports.php +++ b/admin/reports.php @@ -228,628 +228,629 @@ require_once(HESK_PATH . 'inc/headerAdmin.inc.php'); require_once(HESK_PATH . 'inc/show_admin_nav.inc.php'); ?> -
-
-
-
- -
-
-
-
- -
- /> - -
-
- /> - - -
-
-
- - -
-
- - -
-
-
-
-
-
-
+
+
+
+
+ +
+ +
> + ' . $hesklang['export'] . '
'; + } + ?> +
+
+ +
+ /> + +
+
+ /> + + +
+
+
+ + +
+
+ + +
+
+
+
+
+
+ + + +

+
- +

-

+
{$hesklang['roo']}

"; + } + + /* Report type */ + switch ($type) + { + case 2: + hesk_ticketsByMonth(); + break; + case 3: + hesk_ticketsByUser(); + break; + case 4: + hesk_ticketsByCategory(); + break; + default: + hesk_ticketsByDay(); + } + + require_once(HESK_PATH . 'inc/footer.inc.php'); + exit(); + + + /*** START FUNCTIONS ***/ + + + function hesk_ticketsByCategory() + { + global $hesk_settings, $hesklang, $date_from, $date_to, $can_run_reports_full; + + /* List of categories */ + $cat = array(); + $res = hesk_dbQuery("SELECT `id`,`name` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."categories` WHERE " . ( $can_run_reports_full ? '1' : hesk_myCategories('id') ) . " ORDER BY `id` ASC"); + while ($row=hesk_dbFetchAssoc($res)) { - ?> -

-
- 0, 'resolved' => 0, 'all_replies' => 0, 'staff_replies' => 0, 'worked' => 0); + + /* Populate category counts */ + foreach ($cat as $id => $name) { - ?> -

-

-
- 0, + 'resolved' => 0, + 'all_replies' => 0, + 'staff_replies' => 0, + 'worked' => '', + ); } - // Show a note if reports are limited - if ( ! $can_run_reports_full) + /* SQL query for category stats */ + $res = hesk_dbQuery(" + SELECT DISTINCT `t1`.`category`, `t2`.`num_tickets`, `t2`.`seconds_worked` AS `seconds_worked`, IFNULL(`t3`.`all_replies`,0) AS `all_replies`, IFNULL(`t4`.`staff_replies`,0) AS `staff_replies` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` AS `t1` + LEFT JOIN (SELECT COUNT(*) AS `num_tickets`, SUM( TIME_TO_SEC(`time_worked`) ) AS `seconds_worked`, `category` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` AS `t1` WHERE DATE(`t1`.`dt`) BETWEEN '" . hesk_dbEscape($date_from) . "' AND '" . hesk_dbEscape($date_to) . "' " . ( $can_run_reports_full ? "" : " AND `t1`.`owner` = '" . intval($_SESSION['id']) . "'" ) . " GROUP BY `category`) AS `t2` ON `t1`.`category`=`t2`.`category` + LEFT JOIN (SELECT COUNT(*) AS `all_replies`, `t1`.`category` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` AS `t1`, `".hesk_dbEscape($hesk_settings['db_pfix'])."replies` AS `t5` WHERE `t1`.`id`=`t5`.`replyto` AND DATE(`t5`.`dt`) BETWEEN '" . hesk_dbEscape($date_from) . "' AND '" . hesk_dbEscape($date_to) . "' " . ( $can_run_reports_full ? "" : " AND `t1`.`owner` = '" . intval($_SESSION['id']) . "'" ) . " GROUP BY `t1`.`category`) AS `t3` ON `t1`.`category`=`t3`.`category` + LEFT JOIN (SELECT COUNT(*) AS `staff_replies`, `t1`.`category` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` AS `t1`, `".hesk_dbEscape($hesk_settings['db_pfix'])."replies` AS `t5` WHERE `t1`.`id`=`t5`.`replyto` AND " . ( $can_run_reports_full ? "`t5`.`staffid` > 0" : "`t5`.`staffid` = '" . intval($_SESSION['id']) . "'" ) . " AND DATE(`t5`.`dt`) BETWEEN '" . hesk_dbEscape($date_from) . "' AND '" . hesk_dbEscape($date_to) . "' GROUP BY `t1`.`category`) AS `t4` ON `t1`.`category`=`t4`.`category` + WHERE DATE(`t1`.`dt`) BETWEEN '" . hesk_dbEscape($date_from) . "' AND '" . hesk_dbEscape($date_to) . "'" . + ( $can_run_reports_full ? "" : " AND `t1`.`owner` = '" . intval($_SESSION['id']) . "'" ) + ); + + /* Update ticket values */ + while ($row = hesk_dbFetchAssoc($res)) { - echo "

{$hesklang['roo']}

"; + if (isset($cat[$row['category']])) + { + $tickets[$row['category']]['num_tickets'] += $row['num_tickets']; + $tickets[$row['category']]['all_replies'] += $row['all_replies']; + $tickets[$row['category']]['staff_replies'] += $row['staff_replies']; + $tickets[$row['category']]['worked'] = hesk_SecondsToHHMMSS($row['seconds_worked']); + } + else + { + /* Category deleted */ + if ( ! isset($tickets[9999]) ) + { + $cat[9999] = $hesklang['catd']; + $tickets[9999] = array('num_tickets' => $row['num_tickets'], 'resolved' => 0, 'all_replies' => $row['all_replies'], 'staff_replies' => $row['staff_replies'], 'worked' => $row['seconds_worked']); + } + else + { + $tickets[9999]['num_tickets'] += $row['num_tickets']; + $tickets[9999]['all_replies'] += $row['all_replies']; + $tickets[9999]['staff_replies'] += $row['staff_replies']; + $tickets[9999]['worked'] += $row['seconds_worked']; + } + } + + $totals['num_tickets'] += $row['num_tickets']; + $totals['all_replies'] += $row['all_replies']; + $totals['staff_replies'] += $row['staff_replies']; + $totals['worked'] += $row['seconds_worked']; } - /* Report type */ - switch ($type) + // Get number of resolved tickets + $res = hesk_dbQuery("SELECT COUNT(*) AS `num_tickets` , `category` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` WHERE `status` IN (SELECT `ID` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."statuses` WHERE `IsClosed` = 1) " . ( $can_run_reports_full ? "" : " AND `owner` = '" . intval($_SESSION['id']) . "'" ) . " AND DATE(`dt`) BETWEEN '" . hesk_dbEscape($date_from) . "' AND '" . hesk_dbEscape($date_to) . "' GROUP BY `category`"); + + // Update number of open and resolved tickets + while ($row = hesk_dbFetchAssoc($res)) { - case 2: - hesk_ticketsByMonth(); - break; - case 3: - hesk_ticketsByUser(); - break; - case 4: - hesk_ticketsByCategory(); - break; - default: - hesk_ticketsByDay(); + if (isset($cat[$row['category']])) + { + $tickets[$row['category']]['resolved'] += $row['num_tickets']; + } + else + { + // Category deleted + $tickets[9999]['resolved'] += $row['num_tickets']; + } + + $totals['resolved'] += $row['num_tickets']; } - require_once(HESK_PATH . 'inc/footer.inc.php'); - exit(); + // Convert total seconds worked to HH:MM:SS + $totals['worked'] = hesk_SecondsToHHMMSS($totals['worked']); + if ( isset($tickets[9999]) ) + { + $tickets[9999]['worked'] = hesk_SecondsToHHMMSS($tickets[9999]['worked']); + } + ?> + + + + + + + + + + - /*** START FUNCTIONS ***/ + 10) + { + ?> + + + + + + + + + + $d) { - global $hesk_settings, $hesklang, $date_from, $date_to, $can_run_reports_full; - /* List of categories */ - $cat = array(); - $res = hesk_dbQuery("SELECT `id`,`name` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."categories` WHERE " . ( $can_run_reports_full ? '1' : hesk_myCategories('id') ) . " ORDER BY `id` ASC"); - while ($row=hesk_dbFetchAssoc($res)) - { - $cat[$row['id']]=$row['name']; - } + ?> + + + + + + + + + + + + + + + + + + + +
+ 0, 'resolved' => 0, 'tickets' => 0, 'replies' => 0, 'worked' => 0); - $tickets = array(); - $totals = array('num_tickets' => 0, 'resolved' => 0, 'all_replies' => 0, 'staff_replies' => 0, 'worked' => 0); + // Get list of users + $admins = array(); - /* Populate category counts */ - foreach ($cat as $id => $name) + // I. ADMINISTRATORS can view all users + if ($_SESSION['isadmin'] || hesk_checkPermission('can_run_reports_full', 0) ) + { + // -> get list of users + $res = hesk_dbQuery("SELECT `id`,`name` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."users` ORDER BY `id` ASC"); + + // -> populate $admins and $tickets arrays + while ($row=hesk_dbFetchAssoc($res)) { - $tickets[$id] = array( - 'num_tickets' => 0, - 'resolved' => 0, - 'all_replies' => 0, - 'staff_replies' => 0, - 'worked' => '', + $admins[$row['id']] = $row['name']; + + $tickets[$row['id']] = array( + 'asstickets' => 0, + 'resolved' => 0, + 'tickets' => 0, + 'replies' => 0, + 'worked' => '', ); } - /* SQL query for category stats */ - $res = hesk_dbQuery(" - SELECT DISTINCT `t1`.`category`, `t2`.`num_tickets`, `t2`.`seconds_worked` AS `seconds_worked`, IFNULL(`t3`.`all_replies`,0) AS `all_replies`, IFNULL(`t4`.`staff_replies`,0) AS `staff_replies` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` AS `t1` - LEFT JOIN (SELECT COUNT(*) AS `num_tickets`, SUM( TIME_TO_SEC(`time_worked`) ) AS `seconds_worked`, `category` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` AS `t1` WHERE DATE(`t1`.`dt`) BETWEEN '" . hesk_dbEscape($date_from) . "' AND '" . hesk_dbEscape($date_to) . "' " . ( $can_run_reports_full ? "" : " AND `t1`.`owner` = '" . intval($_SESSION['id']) . "'" ) . " GROUP BY `category`) AS `t2` ON `t1`.`category`=`t2`.`category` - LEFT JOIN (SELECT COUNT(*) AS `all_replies`, `t1`.`category` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` AS `t1`, `".hesk_dbEscape($hesk_settings['db_pfix'])."replies` AS `t5` WHERE `t1`.`id`=`t5`.`replyto` AND DATE(`t5`.`dt`) BETWEEN '" . hesk_dbEscape($date_from) . "' AND '" . hesk_dbEscape($date_to) . "' " . ( $can_run_reports_full ? "" : " AND `t1`.`owner` = '" . intval($_SESSION['id']) . "'" ) . " GROUP BY `t1`.`category`) AS `t3` ON `t1`.`category`=`t3`.`category` - LEFT JOIN (SELECT COUNT(*) AS `staff_replies`, `t1`.`category` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` AS `t1`, `".hesk_dbEscape($hesk_settings['db_pfix'])."replies` AS `t5` WHERE `t1`.`id`=`t5`.`replyto` AND " . ( $can_run_reports_full ? "`t5`.`staffid` > 0" : "`t5`.`staffid` = '" . intval($_SESSION['id']) . "'" ) . " AND DATE(`t5`.`dt`) BETWEEN '" . hesk_dbEscape($date_from) . "' AND '" . hesk_dbEscape($date_to) . "' GROUP BY `t1`.`category`) AS `t4` ON `t1`.`category`=`t4`.`category` - WHERE DATE(`t1`.`dt`) BETWEEN '" . hesk_dbEscape($date_from) . "' AND '" . hesk_dbEscape($date_to) . "'" . - ( $can_run_reports_full ? "" : " AND `t1`.`owner` = '" . intval($_SESSION['id']) . "'" ) - ); + // -> get list of tickets + $res = hesk_dbQuery("SELECT `owner`, COUNT(*) AS `cnt`, SUM( TIME_TO_SEC(`time_worked`) ) AS `seconds_worked` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` WHERE `owner` IN ('" . implode("','", array_keys($admins) ) . "') AND DATE(`dt`) BETWEEN '" . hesk_dbEscape($date_from) . "' AND '" . hesk_dbEscape($date_to) . "' GROUP BY `owner`"); - /* Update ticket values */ - while ($row = hesk_dbFetchAssoc($res)) - { - if (isset($cat[$row['category']])) - { - $tickets[$row['category']]['num_tickets'] += $row['num_tickets']; - $tickets[$row['category']]['all_replies'] += $row['all_replies']; - $tickets[$row['category']]['staff_replies'] += $row['staff_replies']; - $tickets[$row['category']]['worked'] = hesk_SecondsToHHMMSS($row['seconds_worked']); - } - else - { - /* Category deleted */ - if ( ! isset($tickets[9999]) ) - { - $cat[9999] = $hesklang['catd']; - $tickets[9999] = array('num_tickets' => $row['num_tickets'], 'resolved' => 0, 'all_replies' => $row['all_replies'], 'staff_replies' => $row['staff_replies'], 'worked' => $row['seconds_worked']); - } - else - { - $tickets[9999]['num_tickets'] += $row['num_tickets']; - $tickets[9999]['all_replies'] += $row['all_replies']; - $tickets[9999]['staff_replies'] += $row['staff_replies']; - $tickets[9999]['worked'] += $row['seconds_worked']; - } - } + // -> update ticket list values + while ($row = hesk_dbFetchAssoc($res)) + { + $tickets[$row['owner']]['asstickets'] += $row['cnt']; + $totals['asstickets'] += $row['cnt']; + $tickets[$row['owner']]['worked'] = hesk_SecondsToHHMMSS($row['seconds_worked']); + $totals['worked'] += $row['seconds_worked']; + } - $totals['num_tickets'] += $row['num_tickets']; - $totals['all_replies'] += $row['all_replies']; - $totals['staff_replies'] += $row['staff_replies']; - $totals['worked'] += $row['seconds_worked']; - } + // -> get list of resolved tickets + $res = hesk_dbQuery("SELECT `owner`, COUNT(*) AS `cnt` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` WHERE `owner` IN ('" . implode("','", array_keys($admins) ) . "') AND `status` IN (SELECT `ID` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."statuses` WHERE `IsClosed` = 1) AND DATE(`dt`) BETWEEN '" . hesk_dbEscape($date_from) . "' AND '" . hesk_dbEscape($date_to) . "' GROUP BY `owner`"); - // Get number of resolved tickets - $res = hesk_dbQuery("SELECT COUNT(*) AS `num_tickets` , `category` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` WHERE `status` IN (SELECT `ID` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."statuses` WHERE `IsClosed` = 1) " . ( $can_run_reports_full ? "" : " AND `owner` = '" . intval($_SESSION['id']) . "'" ) . " AND DATE(`dt`) BETWEEN '" . hesk_dbEscape($date_from) . "' AND '" . hesk_dbEscape($date_to) . "' GROUP BY `category`"); + // -> update resolved ticket list values + while ($row = hesk_dbFetchAssoc($res)) + { + $tickets[$row['owner']]['resolved'] += $row['cnt']; + $totals['resolved'] += $row['cnt']; + } - // Update number of open and resolved tickets - while ($row = hesk_dbFetchAssoc($res)) - { - if (isset($cat[$row['category']])) - { - $tickets[$row['category']]['resolved'] += $row['num_tickets']; - } - else - { - // Category deleted - $tickets[9999]['resolved'] += $row['num_tickets']; - } + // -> get number of replies + $res = hesk_dbQuery("SELECT `staffid`, COUNT(*) AS `cnt`, COUNT(DISTINCT `replyto`) AS `tcnt` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."replies` WHERE `staffid` IN ('" . implode("','", array_keys($admins) ) . "') AND DATE(`dt`) BETWEEN '" . hesk_dbEscape($date_from) . "' AND '" . hesk_dbEscape($date_to) . "' GROUP BY `staffid`"); - $totals['resolved'] += $row['num_tickets']; - } - - // Convert total seconds worked to HH:MM:SS - $totals['worked'] = hesk_SecondsToHHMMSS($totals['worked']); - if ( isset($tickets[9999]) ) - { - $tickets[9999]['worked'] = hesk_SecondsToHHMMSS($tickets[9999]['worked']); - } - - ?> - - - - - - - - - - - - 10) - { - ?> - - - - - - - - - - $d) - { - - ?> - - - - - - - - - - - - - - - - - - - -
- update number of replies values + while ($row = hesk_dbFetchAssoc($res)) + { + $tickets[$row['staffid']]['tickets'] += $row['tcnt']; + $tickets[$row['staffid']]['replies'] += $row['cnt']; + + $totals['tickets'] += $row['tcnt']; + $totals['replies'] += $row['cnt']; + } + } + // II. OTHER STAFF may only see their own stats + else + { + $admins[$_SESSION['id']] = $_SESSION['name']; + + // -> get list of tickets + $res = hesk_dbQuery("SELECT COUNT(*) AS `cnt`, SUM( TIME_TO_SEC(`time_worked`) ) AS `seconds_worked` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` WHERE `owner` = '" . intval($_SESSION['id']) . "' AND DATE(`dt`) BETWEEN '" . hesk_dbEscape($date_from) . "' AND '" . hesk_dbEscape($date_to) . "'"); + $row = hesk_dbFetchAssoc($res); + + // -> update ticket values + $tickets[$_SESSION['id']]['asstickets'] = $row['cnt']; + $totals['asstickets'] = $row['cnt']; + $tickets[$_SESSION['id']]['worked'] = hesk_SecondsToHHMMSS($row['seconds_worked']); + $totals['worked'] += $row['seconds_worked']; + + // -> get list of resolved tickets + $res = hesk_dbQuery("SELECT COUNT(*) AS `cnt` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` WHERE `owner` = '" . intval($_SESSION['id']) . "' AND `status`='3' AND DATE(`dt`) BETWEEN '" . hesk_dbEscape($date_from) . "' AND '" . hesk_dbEscape($date_to) . "'"); + $row = hesk_dbFetchAssoc($res); + + // -> update resolved ticket values + $tickets[$_SESSION['id']]['resolved'] = $row['cnt']; + $totals['resolved'] = $row['cnt']; + + // -> get number of replies + $res = hesk_dbQuery("SELECT COUNT(*) AS `cnt`, COUNT(DISTINCT `replyto`) AS `tcnt` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."replies` WHERE `staffid` = '" . intval($_SESSION['id']) . "' AND DATE(`dt`) BETWEEN '" . hesk_dbEscape($date_from) . "' AND '" . hesk_dbEscape($date_to) . "'"); + $row = hesk_dbFetchAssoc($res); + + $tickets[$_SESSION['id']]['tickets'] = $row['tcnt']; + $tickets[$_SESSION['id']]['replies'] = $row['cnt']; + $totals['tickets'] = $row['tcnt']; + $totals['replies'] = $row['cnt']; - function hesk_ticketsByUser() + } + + // Convert total seconds worked to HH:MM:SS + $totals['worked'] = hesk_SecondsToHHMMSS($totals['worked']); + + ?> + + + + + + + + + + + + 10) + { + ?> + + + + + + + + + + $d) { - global $hesk_settings, $hesklang, $date_from, $date_to; - - // Some variables we will need - $tickets = array(); - $totals = array('asstickets' => 0, 'resolved' => 0, 'tickets' => 0, 'replies' => 0, 'worked' => 0); - - // Get list of users - $admins = array(); - - // I. ADMINISTRATORS can view all users - if ($_SESSION['isadmin'] || hesk_checkPermission('can_run_reports_full', 0) ) - { - // -> get list of users - $res = hesk_dbQuery("SELECT `id`,`name` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."users` ORDER BY `id` ASC"); - - // -> populate $admins and $tickets arrays - while ($row=hesk_dbFetchAssoc($res)) - { - $admins[$row['id']] = $row['name']; - - $tickets[$row['id']] = array( - 'asstickets' => 0, - 'resolved' => 0, - 'tickets' => 0, - 'replies' => 0, - 'worked' => '', - ); - } - - // -> get list of tickets - $res = hesk_dbQuery("SELECT `owner`, COUNT(*) AS `cnt`, SUM( TIME_TO_SEC(`time_worked`) ) AS `seconds_worked` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` WHERE `owner` IN ('" . implode("','", array_keys($admins) ) . "') AND DATE(`dt`) BETWEEN '" . hesk_dbEscape($date_from) . "' AND '" . hesk_dbEscape($date_to) . "' GROUP BY `owner`"); - - // -> update ticket list values - while ($row = hesk_dbFetchAssoc($res)) - { - $tickets[$row['owner']]['asstickets'] += $row['cnt']; - $totals['asstickets'] += $row['cnt']; - $tickets[$row['owner']]['worked'] = hesk_SecondsToHHMMSS($row['seconds_worked']); - $totals['worked'] += $row['seconds_worked']; - } - - // -> get list of resolved tickets - $res = hesk_dbQuery("SELECT `owner`, COUNT(*) AS `cnt` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` WHERE `owner` IN ('" . implode("','", array_keys($admins) ) . "') AND `status` IN (SELECT `ID` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."statuses` WHERE `IsClosed` = 1) AND DATE(`dt`) BETWEEN '" . hesk_dbEscape($date_from) . "' AND '" . hesk_dbEscape($date_to) . "' GROUP BY `owner`"); - - // -> update resolved ticket list values - while ($row = hesk_dbFetchAssoc($res)) - { - $tickets[$row['owner']]['resolved'] += $row['cnt']; - $totals['resolved'] += $row['cnt']; - } - - // -> get number of replies - $res = hesk_dbQuery("SELECT `staffid`, COUNT(*) AS `cnt`, COUNT(DISTINCT `replyto`) AS `tcnt` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."replies` WHERE `staffid` IN ('" . implode("','", array_keys($admins) ) . "') AND DATE(`dt`) BETWEEN '" . hesk_dbEscape($date_from) . "' AND '" . hesk_dbEscape($date_to) . "' GROUP BY `staffid`"); - - // -> update number of replies values - while ($row = hesk_dbFetchAssoc($res)) - { - $tickets[$row['staffid']]['tickets'] += $row['tcnt']; - $tickets[$row['staffid']]['replies'] += $row['cnt']; - - $totals['tickets'] += $row['tcnt']; - $totals['replies'] += $row['cnt']; - } - } - // II. OTHER STAFF may only see their own stats - else - { - $admins[$_SESSION['id']] = $_SESSION['name']; - - // -> get list of tickets - $res = hesk_dbQuery("SELECT COUNT(*) AS `cnt`, SUM( TIME_TO_SEC(`time_worked`) ) AS `seconds_worked` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` WHERE `owner` = '" . intval($_SESSION['id']) . "' AND DATE(`dt`) BETWEEN '" . hesk_dbEscape($date_from) . "' AND '" . hesk_dbEscape($date_to) . "'"); - $row = hesk_dbFetchAssoc($res); - - // -> update ticket values - $tickets[$_SESSION['id']]['asstickets'] = $row['cnt']; - $totals['asstickets'] = $row['cnt']; - $tickets[$_SESSION['id']]['worked'] = hesk_SecondsToHHMMSS($row['seconds_worked']); - $totals['worked'] += $row['seconds_worked']; - - // -> get list of resolved tickets - $res = hesk_dbQuery("SELECT COUNT(*) AS `cnt` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` WHERE `owner` = '" . intval($_SESSION['id']) . "' AND `status`='3' AND DATE(`dt`) BETWEEN '" . hesk_dbEscape($date_from) . "' AND '" . hesk_dbEscape($date_to) . "'"); - $row = hesk_dbFetchAssoc($res); - - // -> update resolved ticket values - $tickets[$_SESSION['id']]['resolved'] = $row['cnt']; - $totals['resolved'] = $row['cnt']; - - // -> get number of replies - $res = hesk_dbQuery("SELECT COUNT(*) AS `cnt`, COUNT(DISTINCT `replyto`) AS `tcnt` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."replies` WHERE `staffid` = '" . intval($_SESSION['id']) . "' AND DATE(`dt`) BETWEEN '" . hesk_dbEscape($date_from) . "' AND '" . hesk_dbEscape($date_to) . "'"); - $row = hesk_dbFetchAssoc($res); - - $tickets[$_SESSION['id']]['tickets'] = $row['tcnt']; - $tickets[$_SESSION['id']]['replies'] = $row['cnt']; - - $totals['tickets'] = $row['tcnt']; - $totals['replies'] = $row['cnt']; - - } - - // Convert total seconds worked to HH:MM:SS - $totals['worked'] = hesk_SecondsToHHMMSS($totals['worked']); - - ?> -
- - - - - - - - - - - 10) - { - ?> - - - - - - - - - - $d) - { - - ?> - - - - - - - - - - - - - - - - - - - -
+ + ?> + + + + + + + + + + + + + + + + + + + + 0, 'resolved' => 0, 'worked' => 0); + $dt = MonthsArray($date_from,$date_to); + + // Pre-populate date values + foreach ($dt as $month) { - global $hesk_settings, $hesklang, $date_from, $date_to, $can_run_reports_full; - - $tickets = array(); - $totals = array('all' => 0, 'resolved' => 0, 'worked' => 0); - $dt = MonthsArray($date_from,$date_to); - - // Pre-populate date values - foreach ($dt as $month) - { - $tickets[$month] = array( - 'all' => 0, - 'resolved' => 0, - 'worked' => '', - ); - } - - // SQL query for all - $res = hesk_dbQuery("SELECT YEAR(`dt`) AS `myyear`, MONTH(`dt`) AS `mymonth`, COUNT(*) AS `cnt`, SUM( TIME_TO_SEC(`time_worked`) ) AS `seconds_worked` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` WHERE " . ( $can_run_reports_full ? '1' : "`owner` = '" . intval($_SESSION['id']) . "'" ) . " AND DATE(`dt`) BETWEEN '" . hesk_dbEscape($date_from) . "' AND '" . hesk_dbEscape($date_to) . "' GROUP BY `myyear`,`mymonth`"); - - // Update ticket values - while ($row = hesk_dbFetchAssoc($res)) - { - $row['mymonth'] = sprintf('%02d',$row['mymonth']); - $tickets[$row['myyear'].'-'.$row['mymonth'].'-01']['all'] += $row['cnt']; - $tickets[$row['myyear'].'-'.$row['mymonth'].'-01']['worked'] = hesk_SecondsToHHMMSS($row['seconds_worked']); - $totals['all'] += $row['cnt']; - $totals['worked'] += $row['seconds_worked']; - } - - // SQL query for resolved - $res = hesk_dbQuery("SELECT YEAR(`dt`) AS `myyear`, MONTH(`dt`) AS `mymonth`, COUNT(*) AS `cnt` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` WHERE " . ( $can_run_reports_full ? '1' : "`owner` = '" . intval($_SESSION['id']) . "'" ) . " AND `status` = '3' AND DATE(`dt`) BETWEEN '" . hesk_dbEscape($date_from) . "' AND '" . hesk_dbEscape($date_to) . "' GROUP BY `myyear`,`mymonth`"); - - // Update ticket values - while ($row = hesk_dbFetchAssoc($res)) - { - $row['mymonth'] = sprintf('%02d',$row['mymonth']); - $tickets[$row['myyear'].'-'.$row['mymonth'].'-01']['resolved'] += $row['cnt']; - $totals['resolved'] += $row['cnt']; - } - - // Convert total seconds worked to HH:MM:SS - $totals['worked'] = hesk_SecondsToHHMMSS($totals['worked']); - - ?> - - - - - - - - - - 10) - { - ?> - - - - - - - - $d) - { - - ?> - - - - - - - - - - - - - - - -
+ $tickets[$month] = array( + 'all' => 0, + 'resolved' => 0, + 'worked' => '', + ); + } - + + + + + + + + + + 10) + { + ?> + + + + + + + + $d) { - global $hesk_settings, $hesklang, $date_from, $date_to, $can_run_reports_full; - - $tickets = array(); - $totals = array('all' => 0, 'resolved' => 0, 'worked' => 0); - $dt = DateArray($date_from,$date_to); - - // Pre-populate date values - foreach ($dt as $day) - { - $tickets[$day] = array( - 'all' => 0, - 'resolved' => 0, - 'worked' => '', - ); - } - - // SQL query for all - $res = hesk_dbQuery("SELECT DATE(`dt`) AS `mydt`, COUNT(*) AS `cnt`, SUM( TIME_TO_SEC(`time_worked`) ) AS `seconds_worked` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` WHERE " . ( $can_run_reports_full ? '1' : "`owner` = '" . intval($_SESSION['id']) . "'" ) . " AND DATE(`dt`) BETWEEN '" . hesk_dbEscape($date_from) . "' AND '" . hesk_dbEscape($date_to) . "' GROUP BY `mydt`"); - - // Update ticket values - while ($row = hesk_dbFetchAssoc($res)) - { - $tickets[$row['mydt']]['all'] += $row['cnt']; - $tickets[$row['mydt']]['worked'] = hesk_SecondsToHHMMSS($row['seconds_worked']); - $totals['all'] += $row['cnt']; - $totals['worked'] += $row['seconds_worked']; - } - - // SQL query for resolved - $res = hesk_dbQuery("SELECT DATE(`dt`) AS `mydt`, COUNT(*) AS `cnt` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` WHERE " . ( $can_run_reports_full ? '1' : "`owner` = '" . intval($_SESSION['id']) . "'" ) . " AND `status` IN (SELECT `ID` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."statuses` WHERE `IsClosed` = 1) AND DATE(`dt`) BETWEEN '" . hesk_dbEscape($date_from) . "' AND '" . hesk_dbEscape($date_to) . "' GROUP BY `mydt`"); - - // Update ticket values - while ($row = hesk_dbFetchAssoc($res)) - { - $tickets[$row['mydt']]['resolved'] += $row['cnt']; - $totals['resolved'] += $row['cnt']; - } - - // Convert total seconds worked to HH:MM:SS - $totals['worked'] = hesk_SecondsToHHMMSS($totals['worked']); - - ?> -
- - - - - - - - - 10) - { - ?> - - - - - - - - $d) - { - - ?> - - - - - - - - - - - - - - - -
+ + ?> + + + + + + + -
-
-
+ } + ?> + + + + + + + + + + 0, 'resolved' => 0, 'worked' => 0); + $dt = DateArray($date_from,$date_to); + // Pre-populate date values + foreach ($dt as $day) + { + $tickets[$day] = array( + 'all' => 0, + 'resolved' => 0, + 'worked' => '', + ); + } + // SQL query for all + $res = hesk_dbQuery("SELECT DATE(`dt`) AS `mydt`, COUNT(*) AS `cnt`, SUM( TIME_TO_SEC(`time_worked`) ) AS `seconds_worked` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` WHERE " . ( $can_run_reports_full ? '1' : "`owner` = '" . intval($_SESSION['id']) . "'" ) . " AND DATE(`dt`) BETWEEN '" . hesk_dbEscape($date_from) . "' AND '" . hesk_dbEscape($date_to) . "' GROUP BY `mydt`"); + + // Update ticket values + while ($row = hesk_dbFetchAssoc($res)) + { + $tickets[$row['mydt']]['all'] += $row['cnt']; + $tickets[$row['mydt']]['worked'] = hesk_SecondsToHHMMSS($row['seconds_worked']); + $totals['all'] += $row['cnt']; + $totals['worked'] += $row['seconds_worked']; + } + + // SQL query for resolved + $res = hesk_dbQuery("SELECT DATE(`dt`) AS `mydt`, COUNT(*) AS `cnt` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` WHERE " . ( $can_run_reports_full ? '1' : "`owner` = '" . intval($_SESSION['id']) . "'" ) . " AND `status` IN (SELECT `ID` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."statuses` WHERE `IsClosed` = 1) AND DATE(`dt`) BETWEEN '" . hesk_dbEscape($date_from) . "' AND '" . hesk_dbEscape($date_to) . "' GROUP BY `mydt`"); + + // Update ticket values + while ($row = hesk_dbFetchAssoc($res)) + { + $tickets[$row['mydt']]['resolved'] += $row['cnt']; + $totals['resolved'] += $row['cnt']; + } + + // Convert total seconds worked to HH:MM:SS + $totals['worked'] = hesk_SecondsToHHMMSS($totals['worked']); + + ?> + + + + + + + + + + 10) + { + ?> + + + + + + + + $d) + { + + ?> + + + + + + + + + + + + + + + +
+ +
+
\ No newline at end of file