diff --git a/post/user/ticket.php b/post/user/ticket.php
index fc2d6368..9ce150d9 100644
--- a/post/user/ticket.php
+++ b/post/user/ticket.php
@@ -298,18 +298,36 @@ if (isset($_POST['edit_ticket_contact'])) {
$ticket_number = sanitizeInput($_POST['ticket_number']);
$notify = intval($_POST['contact_notify']);
+ // Get Original contact, and ticket details
+ $sql = mysqli_query($mysqli, "SELECT
+ contact_name, contact_email, ticket_prefix, ticket_number, ticket_status_name, ticket_client_id
+ FROM tickets
+ LEFT JOIN contacts ON ticket_contact_id = contact_id
+ LEFT JOIN ticket_statuses ON ticket_status = ticket_status_id
+ WHERE ticket_id = $ticket_id"
+ );
+ $row = mysqli_fetch_array($sql);
+ $original_contact_name = sanitizeInput($row['contact_name']);
+ $original_contact_email = sanitizeInput($row['contact_email']);
+ $ticket_prefix = sanitizeInput($row['ticket_prefix']);
+ $ticket_number = intval($row['ticket_number']);
+ $ticket_status = sanitizeInput($row['ticket_status_name']);
+ $client_id = intval($row['ticket_client_id']);
+
mysqli_query($mysqli, "UPDATE tickets SET ticket_contact_id = $contact_id WHERE ticket_id = $ticket_id");
// Notify new contact if selected
if ($notify && !empty($config_smtp_host)) {
- // Get contact/ticket details
- $sql = mysqli_query($mysqli, "SELECT contact_name, contact_email, ticket_prefix, ticket_number, ticket_category, ticket_subject, ticket_details, ticket_priority, ticket_status_name, ticket_url_key, ticket_created_by, ticket_assigned_to, ticket_client_id FROM tickets
+ // Get New contact/ticket details
+ $sql = mysqli_query($mysqli, "SELECT contact_name, contact_email, ticket_prefix, ticket_number, ticket_category, ticket_subject, ticket_details, ticket_priority, ticket_status_name, ticket_url_key, ticket_created_by, ticket_assigned_to, ticket_client_id
+ FROM tickets
LEFT JOIN clients ON ticket_client_id = client_id
LEFT JOIN contacts ON ticket_contact_id = contact_id
- LEFT JOIN ticket_statuses ON ticket_status = ticket_status_id
+ LEFT JOIN ticket_statuses ON ticket_status = ticket_status_id
WHERE ticket_id = $ticket_id
- AND ticket_closed_at IS NULL");
+ AND ticket_closed_at IS NULL"
+ );
$row = mysqli_fetch_array($sql);
$contact_name = sanitizeInput($row['contact_name']);
@@ -332,6 +350,9 @@ if (isset($_POST['edit_ticket_contact'])) {
$company_name = sanitizeInput($row['company_name']);
$company_phone = sanitizeInput(formatPhoneNumber($row['company_phone']));
+ $config_ticket_from_email = sanitizeInput($config_ticket_from_email);
+ $config_ticket_from_name = sanitizeInput($config_ticket_from_name);
+
// Email content
$data = []; // Queue array
@@ -357,10 +378,13 @@ if (isset($_POST['edit_ticket_contact'])) {
// Custom action/notif handler
customAction('ticket_update', $ticket_id);
- //Logging
- mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Modify', log_description = '$session_name changed contact for ticket $ticket_number', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $ticket_id");
+ // Update Ticket History
+ mysqli_query($mysqli, "INSERT INTO ticket_history SET ticket_history_status = '$ticket_status', ticket_history_description = '$session_name changed the contact from $original_contact_name to $contact_name', ticket_history_ticket_id = $ticket_id");
- $_SESSION['alert_message'] = "Ticket $ticket_number contact updated";
+ // Logging
+ logAction("Ticket", "Edit", "$session_name changed the contact from $original_contact_name to $contact_name for ticket $ticket_prefix$ticket_number", $client_id, $ticket_id);
+
+ $_SESSION['alert_message'] = "Contact changed from $original_contact_name to $contact_name";
header("Location: " . $_SERVER["HTTP_REFERER"]);
}
@@ -428,8 +452,8 @@ if (isset($_POST['add_ticket_watcher'])) {
addToMailQueue($mysqli, $data);
}
- //Logging
- mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Edit', log_description = '$session_name added watcher $watcher_email to ticket $ticket_number', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $ticket_id");
+ // Logging
+ logAction("Ticket", "Edit", "$session_name added $watcher_email as a watcher for ticket $ticket_prefix$ticket_number", $client_id, $ticket_id);
$_SESSION['alert_message'] = "You added $watcher_email as a watcher to Ticket $ticket_number";