From 1da9f8b02ba1d499d407a6a73b07f3b211f67b71 Mon Sep 17 00:00:00 2001
From: Peter Rotich <peter@osticket.com>
Date: Thu, 28 Sep 2017 06:10:08 +0000
Subject: [PATCH] Task Due Date

Make sure that the task due date is not beyond ticket's due date.
---
 include/ajax.tickets.php | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/include/ajax.tickets.php b/include/ajax.tickets.php
index 989c44b5d..1cf501d73 100644
--- a/include/ajax.tickets.php
+++ b/include/ajax.tickets.php
@@ -1315,6 +1315,16 @@ function refer($tid, $target=null) {
 
         $info=$errors=array();
 
+        // Internal form
+        $iform = TaskForm::getInternalForm($_POST);
+        // Due date must be before tickets due date
+        if ($ticket && $ticket->getEstDueDate()
+                &&  Misc::db2gmtime($ticket->getEstDueDate()) > Misc::gmtime()
+                && ($f=$iform->getField('duedate'))) {
+            $f->configure('max', Misc::db2gmtime($ticket->getEstDueDate()));
+        }
+
+
         if ($_POST) {
             Draft::deleteForNamespace(
                     sprintf('ticket.%d.task', $ticket->getId()),
@@ -1322,8 +1332,7 @@ function refer($tid, $target=null) {
             // Default form
             $form = TaskForm::getInstance();
             $form->setSource($_POST);
-            // Internal form
-            $iform = TaskForm::getInternalForm($_POST);
+
             $isvalid = true;
             if (!$iform->isValid())
                 $isvalid = false;
-- 
GitLab