public function executeGetDiscussionThread(\Library\HttpRequest $rq) { $result = $this->InitResponseWS(); $currentSessionTask = \Applications\PMTool\Helpers\TaskHelper::GetCurrentSessionTask($this->user()); $currentDiscussion = \Applications\PMTool\Helpers\DiscussionHelper::GetCurrentDiscussion($this->user); $discussionNames = array(); if ($currentDiscussion) { foreach ($currentDiscussion[\Library\Enums\SessionKeys::DiscussionPeople] as $person) { $manager = $this->managers()->getManagerOf('User'); $userTypeObject = $manager->selectUserTypeObjectByUserId($person->user_id()); $userType = \Applications\PMTool\Helpers\UserHelper::FindUserTypeFromObject($userTypeObject); if ($userType == 'pm_id') { $discussionNames[$person->discussion_person_id()] = $userTypeObject->pm_name(); } else { if ($userType == 'technician_id') { $discussionNames[$person->discussion_person_id()] = $userTypeObject->technician_name(); } else { if ($userType == 'service_id') { $discussionNames[$person->discussion_person_id()] = $userTypeObject->service_name(); } } } if ($person->discussion_person_is_author() != 1) { $result['user_type'] = $userType; } } $thread = \Applications\PMTool\Helpers\DiscussionHelper::GetDiscussionThread($this, $currentDiscussion); $time = $this->dataPost['time']; if (isset($time) && !is_null('time') && $thread) { $thread = \Applications\PMTool\Helpers\DiscussionHelper::SliceThread($thread, $time); } if ($thread) { foreach ($thread as &$content) { foreach ($discussionNames as $id => $name) { if ($id == $content->discussion_person_id()) { $content->user_name = $name; break; } } } $result['thread'] = $thread; } $result['discussion'] = $currentDiscussion[\Library\Enums\SessionKeys::DiscussionObj]; $result['success'] = true; } else { $result['success'] = false; } $this->SendResponseWS($result, array("resx_file" => \Applications\PMTool\Resources\Enums\ResxFileNameKeys::ActiveTask, "resx_key" => $this->action(), "step" => $result['success'] ? "success" : "error")); }