$replies = $ascreplies = array(); $ascreplies[] = array("id" => "", "userid" => $userid, "contactid" => $contactid, "name" => $admin ? $admin : $clientname, "email" => $admin ? "" : $clientemail, "admin" => $admin ? true : false, "user" => $user, "admin" => $admin, "date" => $date, "message" => $message, "attachments" => $attachments, "rating" => $rating); $result = select_query("tblticketreplies", "", array("tid" => $id), "date", "ASC"); while ($data = mysql_fetch_array($result)) { $ids = $data['id']; $userid = $data['userid']; $contactid = $data['contactid']; $admin = $data['admin']; $name = $data['name']; $email = $data['email']; $date = $data['date']; $message = $data['message']; $attachment = $data['attachment']; $rating = $data['rating']; $date = fromMySQLDate($date, 1, 1); $message = ticketMessageFormat($message); if ($admin) { $user = "******" . $admin . "</strong><br />" . $_LANG['supportticketsstaff']; } else { if (0 < $userid) { $clientsdata = get_query_vals("tblclients", "firstname,lastname,email", array("id" => $userid)); $clientname = $clientsdata['firstname'] . " " . $clientsdata['lastname']; $clientemail = $clientsdata['email']; $user = "******" . $clientname . "</strong><br />" . $_LANG['supportticketsclient']; if (0 < $contactid) { $contactdata = get_query_vals("tblcontacts", "firstname,lastname,email", array("id" => $contactid, "userid" => $userid)); $clientname = $contactdata['firstname'] . " " . $contactdata['lastname']; $clientemail = $contactdata['email']; $user = "******" . $clientname . "</strong><br />" . $_LANG['supportticketscontact']; } } else {
function AddReply($ticketid, $userid, $contactid, $message, $admin, $attachfile = "", $from = "", $status = "", $noemail = "", $api = false) { global $CONFIG; if ($admin) { $data = get_query_vals("tbltickets", "userid,contactid,name,email", array("id" => $ticketid)); if (0 < $data['userid']) { if (0 < $data['contactid']) { $data = get_query_vals("tblcontacts", "firstname,lastname,email", array("id" => $data['contactid'], "userid" => $data['userid'])); } else { $data = get_query_vals("tblclients", "firstname,lastname,email", array("id" => $data['userid'])); } $message = str_replace("[NAME]", $data['firstname'] . " " . $data['lastname'], $message); $message = str_replace("[FIRSTNAME]", $data['firstname'], $message); $message = str_replace("[EMAIL]", $data['email'], $message); } else { $message = str_replace("[NAME]", $data['name'], $message); $message = str_replace("[FIRSTNAME]", current(explode(" ", $data['name'])), $message); $message = str_replace("[EMAIL]", $data['email'], $message); } if (!function_exists("getAdminName")) { require ROOTDIR . "/includes/adminfunctions.php"; } $adminname = $api ? $admin : getAdminName(); } $table = "tblticketreplies"; $array = array("tid" => $ticketid, "userid" => $userid, "contactid" => $contactid, "name" => $from['name'], "email" => $from['email'], "date" => "now()", "message" => $message, "admin" => $adminname, "attachment" => $attachfile); $ticketreplyid = insert_query($table, $array); $result = select_query("tbltickets", "tid,did,title,urgency,flag", array("id" => $ticketid)); $data = mysql_fetch_array($result); $tid = $data['tid']; $deptid = $data['did']; $tickettitle = $data['title']; $urgency = $data['urgency']; $flagadmin = $data['flag']; if ($userid) { $result = select_query("tblclients", "firstname,lastname", array("id" => $userid)); $data = mysql_fetch_array($result); $clientname = $data['firstname'] . " " . $data['lastname']; } else { $clientname = $from['name']; } $deptname = getDepartmentName($deptid); if ($admin) { if ($status == "") { $status = "Answered"; } $updateqry = array("status" => $status, "clientunread" => "1", "lastreply" => "now()"); if ($CONFIG['TicketLastReplyUpdateClientOnly']) { unset($updateqry['lastreply']); } update_query("tbltickets", $updateqry, array("id" => $ticketid)); addTicketLog($ticketid, "New Ticket Response"); if (!$noemail) { sendMessage("Support Ticket Reply", $ticketid, $ticketreplyid); } run_hook("TicketAdminReply", array("ticketid" => $ticketid, "replyid" => $ticketreplyid, "deptid" => $deptid, "deptname" => $deptname, "subject" => $tickettitle, "message" => $message, "priority" => $urgency, "admin" => $adminname, "status" => $status)); return null; } $status = "Customer-Reply"; update_query("tbltickets", array("status" => "Customer-Reply", "clientunread" => "1", "adminunread" => "", "lastreply" => "now()"), array("id" => $ticketid)); addTicketLog($ticketid, "New Ticket Response made by User"); if ($flagadmin) { sendAdminMessage("Support Ticket Response", array("ticket_id" => $ticketid, "ticket_tid" => $tid, "client_id" => $userid, "client_name" => $clientname, "ticket_department" => $deptname, "ticket_subject" => $tickettitle, "ticket_priority" => $urgency, "ticket_message" => ticketMessageFormat($message)), "support", "", $flagadmin); } else { if (!$noemail) { sendAdminMessage("Support Ticket Response", array("ticket_id" => $ticketid, "ticket_tid" => $tid, "client_id" => $userid, "client_name" => $clientname, "ticket_department" => $deptname, "ticket_subject" => $tickettitle, "ticket_priority" => $urgency, "ticket_message" => ticketMessageFormat($message)), "support", $deptid, "", true); } } run_hook("TicketUserReply", array("ticketid" => $ticketid, "replyid" => $ticketreplyid, "userid" => $userid, "deptid" => $deptid, "deptname" => $deptname, "subject" => $tickettitle, "message" => $message, "priority" => $urgency, "status" => $status)); }
} if ($flagto) { $updateqry['flag'] = $flagto; sendAdminMessage("Support Ticket Flagged", array("ticket_id" => $ticketid, "ticket_tid" => $tickettid, "client_id" => $ticketuserid, "client_name" => get_query_val("tblclients", "CONCAT(firstname,' ',lastname)", array("id" => $ticketuserid)), "ticket_department" => getDepartmentName($newdepartment ? $newdepartment : $ticketdeptid), "ticket_subject" => $ticketsubject, "ticket_priority" => $newpriority ? $newpriority : $ticketpriority, "ticket_message" => ticketMessageFormat($ticketmsg)), "support", $newdepartment ? $newdepartment : $ticketdeptid, $flagto); } if (count($updateqry)) { update_query("tbltickets", $updateqry, array("id" => $ticketid)); } if ($notify) { $notify = explode(",", $notify); if (in_array("all", $notify)) { sendAdminMessage("Escalation Rule Notification", array("rule_name" => $name, "ticket_id" => $ticketid, "ticket_tid" => $tickettid, "client_id" => $ticketuserid, "client_name" => get_query_val("tblclients", "CONCAT(firstname,' ',lastname)", array("id" => $ticketuserid)), "ticket_department" => getDepartmentName($newdepartment ? $newdepartment : $ticketdeptid), "ticket_subject" => $ticketsubject, "ticket_priority" => $newpriority ? $newpriority : $ticketpriority, "ticket_message" => ticketMessageFormat($ticketmsg)), "support", $newdepartment ? $newdepartment : $ticketdeptid); } foreach ($notify as $notifyid) { if (is_numeric($notifyid)) { sendAdminMessage("Escalation Rule Notification", array("rule_name" => $name, "ticket_id" => $ticketid, "ticket_tid" => $tickettid, "client_id" => $ticketuserid, "client_name" => get_query_val("tblclients", "CONCAT(firstname,' ',lastname)", array("id" => $ticketuserid)), "ticket_department" => getDepartmentName($newdepartment ? $newdepartment : $ticketdeptid), "ticket_subject" => $ticketsubject, "ticket_priority" => $newpriority ? $newpriority : $ticketpriority, "ticket_message" => ticketMessageFormat($ticketmsg), "ticket_status" => $ticketstatus), "support", "", $notifyid); continue; } } } if ($addreply) { if (!$newstatus) { $newstatus = $ticketstatus; } AddReply($ticketid, "", "", $addreply, "System", "", "", $newstatus, "", true); } } } update_query("tblconfiguration", array("value" => date("Y-m-d H:i:s")), array("setting" => "TicketEscalationLastRun")); exit; }