function assignStaff($staffId, $message, $alertstaff = true) { global $thisuser, $cfg; $staff = new Staff($staffId); if (!$staff || !$staff->isAvailable() || !$thisuser) { return false; } if ($this->setStaffId($staff->getId())) { //Reopen the ticket if cloed. if ($this->isClosed()) { //Assigned ticket Must be open. $this->reopen(); } $this->reload(); // //Send Notice + Message to assignee. (if directed) if ($alertstaff && ($thisuser && $staff->getId() != $thisuser->getId())) { //No alerts for self assigned. //Send Notice + Message to assignee. $dept = $this->getDept(); if (!$dept || !($tplId = $dept->getTemplateId())) { $tplId = $cfg->getDefaultTemplateId(); } $sql = 'SELECT assigned_alert_subj,assigned_alert_body FROM ' . EMAIL_TEMPLATE_TABLE . ' WHERE cfg_id=' . db_input($cfg->getId()) . ' AND tpl_id=' . db_input($tplId); if (($resp = db_query($sql)) && db_num_rows($resp) && (list($subj, $body) = db_fetch_row($resp))) { $body = $this->replaceTemplateVars($body); $subj = $this->replaceTemplateVars($subj); $body = str_replace('%note', $message, $body); $body = str_replace("%message", $message, $body); //Previous versions used message. $body = str_replace("%assignee", $staff->getName(), $body); $body = str_replace("%assigner", $thisuser ? $thisuser->getName() : 'System', $body); if (!($email = $cfg->getAlertEmail())) { $email = $cfg->getDefaultEmail(); } if ($email) { $email->send($staff->getEmail(), $subj, $body); } } else { Sys::log(LOG_WARNING, 'Template Fetch Error', "Unable to fetch 'assigned' alert template #{$tplId}"); } } $message = $message ? $message : 'Ticket assigned'; //Save the message as internal note...(record). $this->postNote('Ticket Assigned to ' . $staff->getName(), $message, false); //Notice that we are disabling note alerts! return true; } return false; }
function assignStaff($staffId, $message, $alertstaff = true) { global $thisuser, $cfg; $staff = new Staff($staffId); if (!$staff || !$staff->isAvailable() || !$thisuser) { return false; } if ($this->setStaffId($staff->getId())) { //Reopen the ticket if cloed. if ($this->isClosed()) { //Assigned ticket Must be open. $this->reopen(); } //Send Notice + Message to assignee. (if directed) if ($alertstaff && $staff->getId() != $thisuser->getId()) { //No alerts for self assigned. //Send Notice + Message to assignee. $sql = 'SELECT assigned_alert_subj,assigned_alert_body FROM ' . EMAIL_TEMPLATE_TABLE . ' WHERE cfg_id=' . db_input($cfg->getId()) . ' AND tpl_id=' . db_input($cfg->getDefaultTemplateId()); $resp = db_query($sql); if (db_num_rows($resp) && (list($subj, $body) = db_fetch_row($resp))) { $subj = str_replace("%ticket", $this->getExtId(), $subj); $body = str_replace("%ticket", $this->getExtId(), $body); $body = str_replace("%assignee", $staff->getName(), $body); $body = str_replace("%assigner", $thisuser->getName(), $body); $body = str_replace("%message", $message, $body); $body = str_replace("%url", $cfg->getBaseUrl(), $body); Misc::sendmail($staff->getEmail(), $subj, $body, $cfg->getAlertEmail()); } } //Save the message as internal note...(record). $this->postNote('Ticket Assigned to ' . $staff->getName(), $message); return true; } return false; }