+
+
+
+
+
-
+
-
+
{$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)
+ {
+
+ ?>
+
+ |
+ |
+ |
+ |
+ |
+
+
+
+ |
+ |
+ |
+ |
+ |
+
+
+
+