/** * Supporters Reply * * @param int $IDWriter * @param int $IDTicket * @param str $TxMessage * @param str $StMsgType * @param arr $ArFiles * @return boolean * * @author Matheus Ashton <*****@*****.**> */ private function _supporterAnswer($IDWriter, $IDTicket, $TxMessage, $StMsgType, $ArFiles = array()) { #check if message can be released $BoReleased = F1DeskUtils::getPermission('BoReleaseAnswer', $IDWriter); #Get table's User ID $IDUser = array_shift(F1DeskUtils::getUserData($IDWriter)); #Add the reply $this->addMessage($IDUser, $IDTicket, $TxMessage, $BoReleased, $StMsgType); $IDMessage = $this->getID(); if (!empty($ArFiles)) { $this->attachFile($ArFiles, $IDMessage); } if ($StMsgType == '0') { #Changing Tickets's situation $StTableName = DBPREFIX . 'Ticket'; $ArFields = array('StSituation' => 'WAITING_USER', 'IDSupporter' => $IDWriter); $this->updateTable($StTableName, $ArFields, "IDTicket = {$IDTicket}"); } return true; }
foreach ($ArAttached as $IDAttach) { if (!F1DeskUtils::isAttached($IDTicket, $IDAttach)) { $ObjTicket->attachTicket($IDTicket, $IDAttach); } } } } elseif (!empty($_POST) && $_POST['StAction'] == 'addSupporters') { $ArSupporters = F1DeskUtils::getAllSupporters(); if ($ArSupporters[0]['IDSupporter'] == 0) { array_shift($ArSupporters); } } /*************************************** * Create Data * ****************************************/ if (F1DeskUtils::isSupporter()) { $BoCreate = F1DeskUtils::getPermission('BoCreateTicket', getSessionProp('IDSupporter')); if ($BoCreate) { $ArDepartments = F1DeskUtils::getPublicDepartments(false); } else { $ArDepartments = F1DeskUtils::getDepartmentsFormatted(getSessionProp('IDSupporter')); } } else { $ArDepartments = F1DeskUtils::getPublicDepartments(); } $ArTypes = F1DeskUtils::listTicketTypes(); $ArPriorities = F1DeskUtils::listPriorities(); $ArCategories = F1DeskUtils::listCategories(); if (F1DeskUtils::IsSupporter()) { $ArSub = F1DeskUtils::getSubDepartments(getSessionProp('IDSupporter')); }
$IDUser = getSessionProp('IDUser'); $preview = isset($_POST['preview']) ? true : false; $isVisible = false; $ObjTicket = new TicketHandler(); if ($ObjTicket->ticketExists($IDTicket)) { if ($isSupporter || $ObjTicket->isVisible($IDTicket, $IDUser)) { $isVisible = true; } } if ($isVisible) { $ObjTicket->setAsRead(getSessionProp('IDUser'), $IDTicket); $ArHeaders = $ObjTicket->getTicketHeaders($IDTicket); $ArAttachments = $ObjTicket->getAttachments($IDTicket); if ($isSupporter) { $ArSupporters = $ObjUser->listSupporters($IDTicket); $BoCreate = F1DeskUtils::getPermission('BoCreateTicket', $IDSupporter); if ($BoCreate) { $ArDepartments = F1DeskUtils::getPublicDepartments(false); } else { $ArDepartments = F1DeskUtils::getDepartmentsFormatted($IDSupporter); } } else { $ArDepartments = F1DeskUtils::getPublicDepartments(); } # # Ticket Header # $StTitle = $ArHeaders['StTitle']; $IDTicket = $ArHeaders['IDTicket']; if (array_key_exists('IDDepartment', $ArHeaders)) { $IDDepartment = $ArHeaders['IDDepartment'];