diff --git a/admin_tickets.php b/admin_tickets.php index 188681c8..b140fc17 100644 --- a/admin_tickets.php +++ b/admin_tickets.php @@ -473,7 +473,8 @@ elseif($page == 'categories' if($order < 1 || $order >= 1000) { - $order = 1; + // use the latest available + $order = ticket::getHighestOrderNumber($db) + 1; } if($category == '') @@ -489,6 +490,7 @@ elseif($page == 'categories' } else { + $order = ticket::getHighestOrderNumber($db) + 1; eval("echo \"" . getTemplate("ticket/tickets_newcategory") . "\";"); } } diff --git a/lib/classes/ticket/class.ticket.php b/lib/classes/ticket/class.ticket.php index 910937a9..6103c308 100644 --- a/lib/classes/ticket/class.ticket.php +++ b/lib/classes/ticket/class.ticket.php @@ -442,6 +442,20 @@ class ticket return null; } + /** + * get the highest order number + * + * @param object $_db database-object + * + * @return int highest order number + */ + static public function getHighestOrderNumber($_db = null) + { + $sql = "SELECT MAX(`logicalorder`) as `highestorder` FROM `" . TABLE_PANEL_TICKET_CATS . "`;"; + $result = $_db->query_first($sql); + return (isset($result['highestorder']) ? (int)$result['highestorder'] : 1); + } + /** * returns the last x archived tickets */