From 6c3b50864e957805c71a555646561f74a08901d2 Mon Sep 17 00:00:00 2001
From: aydreeihn <adriane@enhancesoft.com>
Date: Wed, 21 Mar 2018 17:00:59 -0500
Subject: [PATCH] fixes for getMissingRequiredFields function

---
 include/class.ticket.php | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/include/class.ticket.php b/include/class.ticket.php
index 352ef1ea6..7da02a0af 100644
--- a/include/class.ticket.php
+++ b/include/class.ticket.php
@@ -1022,16 +1022,22 @@ implements RestrictedAccess, Threadable, Searchable {
         }
     }
 
-    static function getMissingRequiredFields($ticket) {
+    //if ids passed, function returns only the ids of fields disabled by help topic
+    static function getMissingRequiredFields($ticket, $ids=false) {
         // Check for fields disabled by Help Topic
         $disabled = array();
-        foreach ($ticket->entries as $entry) {
-            $extra = JsonDataParser::decode($entry->extra);
+        foreach (($ticket->getTopic() ? $ticket->getTopic()->forms : $ticket->entries) as $f) {
+            $extra = JsonDataParser::decode($f->extra);
+
             if (!empty($extra['disable']))
                 $disabled[] = $extra['disable'];
         }
+
         $disabled = !empty($disabled) ? call_user_func_array('array_merge', $disabled) : NULL;
 
+        if ($ids)
+          return $disabled;
+
         $criteria = array(
                     'answers__field__flags__hasbit' => DynamicFormField::FLAG_ENABLED,
                     'answers__field__flags__hasbit' => DynamicFormField::FLAG_CLOSE_REQUIRED,
@@ -1042,7 +1048,7 @@ implements RestrictedAccess, Threadable, Searchable {
         if ($disabled)
             array_push($criteria, Q::not(array('answers__field__id__in' => $disabled)));
 
-        return $ticket->getDynamicFields($criteria, $ticket);
+        return $ticket->getDynamicFields($criteria);
     }
 
     function getMissingRequiredField() {
-- 
GitLab