Skip to content
Snippets Groups Projects
Commit 43195f4c authored by Jared Hancock's avatar Jared Hancock
Browse files

Add `lastupdate` field to %ticket

And manage it with updates to tickets. This will ease the sorting and
display of tickets based on the time of last update in the ticket queues
parent 86d4f11e
No related branches found
No related tags found
No related merge requests found
......@@ -970,7 +970,7 @@ class Ticket {
$ecb = null;
switch($status->getState()) {
case 'closed':
$sql.=', closed=NOW(), duedate=NULL ';
$sql.=', closed=NOW(), lastupdate=NOW(), duedate=NULL ';
if ($thisstaff)
$sql.=', staff_id='.db_input($thisstaff->getId());
......@@ -983,7 +983,7 @@ class Ticket {
case 'open':
// TODO: check current status if it allows for reopening
if ($this->isClosed()) {
$sql .= ',closed=NULL, reopened=NOW() ';
$sql .= ',closed=NULL, lastupdate=NOW(), reopened=NOW() ';
$ecb = function ($t) {
$t->logEvent('reopened', 'closed');
};
......@@ -1261,7 +1261,7 @@ class Ticket {
function onMessage($message, $autorespond=true) {
global $cfg;
db_query('UPDATE '.TICKET_TABLE.' SET isanswered=0,lastmessage=NOW() WHERE ticket_id='.db_input($this->getId()));
db_query('UPDATE '.TICKET_TABLE.' SET isanswered=0,lastupdate=NOW(),lastmessage=NOW() WHERE ticket_id='.db_input($this->getId()));
// Auto-assign to closing staff or last respondent
// If the ticket is closed and auto-claim is not enabled then put the
......@@ -2748,6 +2748,7 @@ class Ticket {
//We are ready son...hold on to the rails.
$number = $topic ? $topic->getNewTicketNumber() : $cfg->getNewTicketNumber();
$sql='INSERT INTO '.TICKET_TABLE.' SET created=NOW() '
.' ,lastupdate= NOW() '
.' ,lastmessage= NOW()'
.' ,user_id='.db_input($user->getId())
.' ,`number`='.db_input($number)
......
......@@ -103,7 +103,7 @@ case 'due':
default:
case 'updated':
$tickets->order_by('cdata__:priority__priority_urgency', '-updated');
$tickets->order_by('cdata__:priority__priority_urgency', '-lastupdate');
break;
}
......
......@@ -150,12 +150,15 @@ UPDATE `%TABLE_PREFIX%user_account` A1
DROP TABLE %TABLE_PREFIX%_timezones;
ALTER TABLE `%TABLE_PREFIX%ticket`
ADD `est_duedate` datetime default NULL AFTER `duedate`;
ADD `est_duedate` datetime default NULL AFTER `duedate`,
ADD `lastupdate` datetime default NULL AFTER `lastresponse`;
UPDATE `%TABLE_PREFIX%ticket` A1
JOIN `%TABLE_PREFIX%sla` A2 ON (A1.sla_id = A2.id)
SET A1.`est_duedate` =
COALESCE(A1.`duedate`, A1.`created` + INTERVAL A2.`grace_period` HOUR);
COALESCE(A1.`duedate`, A1.`created` + INTERVAL A2.`grace_period` HOUR),
A1.`lastupdate` =
CAST(GREATEST(IFNULL(A1.lastmessage, 0), IFNULL(A1.closed, 0), IFNULL(A1.reopened, 0), A1.created) as DATETIME);
-- Finished with patch
UPDATE `%TABLE_PREFIX%config`
......
......@@ -614,6 +614,7 @@ CREATE TABLE `%TABLE_PREFIX%ticket` (
`closed` datetime default NULL,
`lastmessage` datetime default NULL,
`lastresponse` datetime default NULL,
`lastupdate` datetime default NULL,
`created` datetime NOT NULL,
`updated` datetime NOT NULL,
PRIMARY KEY (`ticket_id`),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment