diff --git a/include/class.ticket.php b/include/class.ticket.php index 4801f1625594d030dd137861cfb4e4db7d9896e9..65d8caf9b2bfd266b64040a992806f6846e3a6d7 100644 --- a/include/class.ticket.php +++ b/include/class.ticket.php @@ -723,6 +723,7 @@ class Ticket{ $sql.=' WHERE ticket_id='.db_input($this->getId()); + $this->track('closed'); return (db_query($sql) && db_affected_rows()); } @@ -736,6 +737,7 @@ class Ticket{ //TODO: log reopen event here + $this->track('reopened'); return (db_query($sql) && db_affected_rows()); } @@ -1044,6 +1046,7 @@ class Ticket{ $this->onOverdue($whine); + $this->track('overdue'); return true; } @@ -1109,6 +1112,7 @@ class Ticket{ } } + $this->track('transferred'); return true; } @@ -1122,6 +1126,7 @@ class Ticket{ $this->onAssign($note, $alert); + $this->track('assigned'); return true; } @@ -1140,6 +1145,7 @@ class Ticket{ $this->onAssign($note, $alert); + $this->track('assigned'); return true; } @@ -1343,6 +1349,22 @@ class Ticket{ return $this->postNote($title,$note,false,'system'); } + // History log -- used for statistics generation (pretty reports) + function track($state, $staff=null) { + global $thisstaff; + + if ($staff === null) { + if ($thisstaff) $staff=$thisstaff->getUserName(); + else $staff='SYSTEM'; # XXX: Security Violation ? + } + + return db_query('INSERT INTO '.TICKET_HISTORY_TABLE + .' SET ticket_id='.db_input($this->getId()) + .', timestamp=NOW(), state='.db_input($state) + .', staff='.db_input($staff)) + && db_affected_rows() == 1; + } + //Insert Internal Notes function postNote($title,$note,$alert=true,$poster='') { global $thisstaff,$cfg;