From da259b984da9f79abf4c2ee19826e139bcd94ef3 Mon Sep 17 00:00:00 2001 From: Mike Koch Date: Sun, 25 Jan 2015 00:57:58 -0500 Subject: [PATCH] #122 Patch up some files that weren't updated for custom statuses --- admin/admin_reply_ticket.php | 8 +++++-- inc/common.inc.php | 2 +- inc/email_functions.inc.php | 46 +++++------------------------------- index.php | 16 ++++++------- submit_ticket.php | 2 +- 5 files changed, 21 insertions(+), 53 deletions(-) diff --git a/admin/admin_reply_ticket.php b/admin/admin_reply_ticket.php index bb93285d..2a75272d 100644 --- a/admin/admin_reply_ticket.php +++ b/admin/admin_reply_ticket.php @@ -109,7 +109,10 @@ if (strlen($message)) elseif ($_SESSION['afterreply'] == 2) { /* Get the next open ticket that needs a reply */ - $res = hesk_dbQuery("SELECT * FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` WHERE `owner` IN ('0','".intval($_SESSION['id'])."') AND " . hesk_myCategories() . " AND `status` IN ('0','1') ORDER BY `owner` DESC, `priority` ASC LIMIT 1"); + $res = hesk_dbQuery("SELECT * FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` WHERE `owner` IN ('0','".intval($_SESSION['id'])."') + AND " . hesk_myCategories() . " AND `status` IN (SELECT `ID` FROM ".hesk_dbEscape($hesk_settings['db_pfix'])."statuses` + WHERE `IsNewTicketStatus` = 1 OR `IsCustomerReplyStatus` = 1 OR `IsStaffReopenedStatus` = 1) + ORDER BY `owner` DESC, `priority` ASC LIMIT 1"); if (hesk_dbNumRows($res) == 1) { @@ -391,7 +394,8 @@ if ($_SESSION['afterreply'] == 1) elseif ($_SESSION['afterreply'] == 2) { /* Get the next open ticket that needs a reply */ - $res = hesk_dbQuery("SELECT * FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` WHERE `owner` IN ('0','".intval($_SESSION['id'])."') AND " . hesk_myCategories() . " AND `status` IN ('0','1') ORDER BY `owner` DESC, `priority` ASC LIMIT 1"); + $res = hesk_dbQuery("SELECT * FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` WHERE `owner` IN ('0','".intval($_SESSION['id'])."') AND " . hesk_myCategories() . " AND `status` IN (SELECT `ID` FROM ".hesk_dbEscape($hesk_settings['db_pfix'])."statuses` + WHERE `IsNewTicketStatus` = 1 OR `IsCustomerReplyStatus` = 1 OR `IsStaffReopenedStatus` = 1) ORDER BY `owner` DESC, `priority` ASC LIMIT 1"); if (hesk_dbNumRows($res) == 1) { diff --git a/inc/common.inc.php b/inc/common.inc.php index f0548935..aae2a1e3 100644 --- a/inc/common.inc.php +++ b/inc/common.inc.php @@ -406,7 +406,7 @@ function hesk_autoAssignTicket($ticket_category) /* Get all possible auto-assign staff, order by number of open tickets */ $res = hesk_dbQuery("SELECT `t1`.`id`,`t1`.`user`,`t1`.`name`, `t1`.`email`, `t1`.`language`, `t1`.`isadmin`, `t1`.`categories`, `t1`.`notify_assigned`, `t1`.`heskprivileges`, - (SELECT COUNT(*) FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` FORCE KEY (`statuses`) WHERE `owner`=`t1`.`id` AND `status` IN ('0','1','2','4','5') ) as `open_tickets` + (SELECT COUNT(*) FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` FORCE KEY (`statuses`) WHERE `owner`=`t1`.`id` AND `status` IN (SELECT `ID` FROM ".hesk_dbEscape($hesk_settings['db_pfix'])."statuse` WHERE `IsClosed` = 0) ) as `open_tickets` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."users` AS `t1` WHERE `t1`.`autoassign`='1' ORDER BY `open_tickets` ASC, RAND()"); diff --git a/inc/email_functions.inc.php b/inc/email_functions.inc.php index 2073593c..c23215e3 100644 --- a/inc/email_functions.inc.php +++ b/inc/email_functions.inc.php @@ -498,26 +498,9 @@ function hesk_getEmailSubject($eml_file, $ticket='', $is_ticket=1, $strip=0) } /* Set status */ - switch ($ticket['status']) - { - case 1: - $ticket['status'] = $hesklang['wait_reply']; - break; - case 2: - $ticket['status'] = $hesklang['replied']; - break; - case 3: - $ticket['status'] = $hesklang['closed']; - break; - case 4: - $ticket['status'] = $hesklang['in_progress']; - break; - case 5: - $ticket['status'] = $hesklang['on_hold']; - break; - default: - $ticket['status'] = $hesklang['open']; - } + $statusRs = hesk_dbQuery("SELECT `ShortNameContentKey` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."statuses` WHERE `ID` = ".$ticket['status']); + $row = hesk_dbFetchAssoc($statusRs); + $ticket['status'] = $hesklang[$row['ShortNameContentKey']]; /* Replace all special tags */ $msg = str_replace('%%SUBJECT%%', $ticket['subject'], $msg); @@ -623,26 +606,9 @@ function hesk_getEmailMessage($eml_file, $ticket, $is_admin=0, $is_ticket=1, $ju $ticket['owner'] = hesk_msgToPlain( hesk_getOwnerName($ticket['owner']), 1); /* Set status */ - switch ($ticket['status']) - { - case 1: - $ticket['status'] = $hesklang['wait_reply']; - break; - case 2: - $ticket['status'] = $hesklang['replied']; - break; - case 3: - $ticket['status'] = $hesklang['closed']; - break; - case 4: - $ticket['status'] = $hesklang['in_progress']; - break; - case 5: - $ticket['status'] = $hesklang['on_hold']; - break; - default: - $ticket['status'] = $hesklang['open']; - } + $statusRs = hesk_dbQuery("SELECT `ShortNameContentKey` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."statuses` WHERE `ID` = ".$ticket['status']); + $row = hesk_dbFetchAssoc($statusRs); + $ticket['status'] = $hesklang[$row['ShortNameContentKey']]; /* Replace all special tags */ $msg = str_replace('%%NAME%%', $ticket['name'] ,$msg); diff --git a/index.php b/index.php index c98e2007..35e76f37 100644 --- a/index.php +++ b/index.php @@ -1168,21 +1168,19 @@ function forgot_tid() } /* Prepare ticket statuses */ - $my_status = array( - 0 => $hesklang['open'], - 1 => $hesklang['wait_staff_reply'], - 2 => $hesklang['wait_cust_reply'], - 3 => $hesklang['closed'], - 4 => $hesklang['in_progress'], - 5 => $hesklang['on_hold'], - ); + $myStatusSQL = hesk_dbQuery("SELECT `ID`, `TicketViewContentKey` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."statuses`"); + $my_status = array(); + while ($myStatusRow = hesk_dbFetchAssoc($myStatusSQL)) + { + $my_status[$myStatusRow['ID']] = $hesklang[$myStatusRow['TicketViewContentKey']]; + } /* Get ticket(s) from database */ hesk_load_database_functions(); hesk_dbConnect(); // Get tickets from the database - $res = hesk_dbQuery('SELECT * FROM `'.hesk_dbEscape($hesk_settings['db_pfix']).'tickets` FORCE KEY (`statuses`) WHERE ' . ($hesk_settings['open_only'] ? "`status` IN ('0','1','2','4','5') AND " : '') . ' ' . hesk_dbFormatEmail($email) . ' ORDER BY `status` ASC, `lastchange` DESC '); + $res = hesk_dbQuery('SELECT * FROM `'.hesk_dbEscape($hesk_settings['db_pfix']).'tickets` FORCE KEY (`statuses`) WHERE ' . ($hesk_settings['open_only'] ? "`status` IN (SELECT `ID` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."statuses` WHERE `IsClosed` = 0) AND " : '') . ' ' . hesk_dbFormatEmail($email) . ' ORDER BY `status` ASC, `lastchange` DESC '); $num = hesk_dbNumRows($res); if ($num < 1) diff --git a/submit_ticket.php b/submit_ticket.php index 51fd7a32..e13f4ba1 100644 --- a/submit_ticket.php +++ b/submit_ticket.php @@ -332,7 +332,7 @@ if ( ! isset($hesk_error_buffer['email']) && hesk_isBannedEmail($tmpvar['email'] $below_limit = true; if ($hesk_settings['max_open'] && ! isset($hesk_error_buffer['email']) ) { - $res = hesk_dbQuery("SELECT COUNT(*) FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` WHERE `status` IN ('0', '1', '2', '4', '5') AND " . hesk_dbFormatEmail($tmpvar['email'])); + $res = hesk_dbQuery("SELECT COUNT(*) FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` WHERE `status` IN (SELECT `ID` FROM ".hesk_dbEscape($hesk_settings['db_pfix'])."statuses` WHERE `IsClosed` = 0) AND " . hesk_dbFormatEmail($tmpvar['email'])); $num = hesk_dbResult($res); if ($num >= $hesk_settings['max_open'])