From a2954699c37a8b29895f97feee50de2d337a1a75 Mon Sep 17 00:00:00 2001
From: Peter Rotich <peter@osticket.com>
Date: Wed, 6 Mar 2013 13:08:14 -0500
Subject: [PATCH] Remove SLA when overdue flag is cleared AND est. duedate is
 in the past. Only managers can manually clear overdue tickets.

---
 include/class.ticket.php | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/include/class.ticket.php b/include/class.ticket.php
index 0c2d221ad..df6459004 100644
--- a/include/class.ticket.php
+++ b/include/class.ticket.php
@@ -1097,11 +1097,18 @@ class Ticket {
         if(!$this->isOverdue())
             return true;
 
+        //NOTE: Previously logged overdue event is NOT annuled.
+
         $sql='UPDATE '.TICKET_TABLE.' SET isoverdue=0, updated=NOW() ';
+
         //clear due date if it's in the past
         if($this->getDueDate() && strtotime($this->getDueDate())<=time())
             $sql.=', duedate=NULL';
 
+        //Clear SLA if est. due date is in the past
+        if($this->getSLADueDate() && strtotime($this->getSLADueDate())<=time())
+            $sql.=', sla_id=0 ';
+
         $sql.=' WHERE ticket_id='.db_input($this->getId());
 
         return (db_query($sql) && db_affected_rows());
-- 
GitLab