diff --git a/post.php b/post.php index cf882755..a779beae 100644 --- a/post.php +++ b/post.php @@ -6842,14 +6842,11 @@ if(isset($_POST['assign_ticket'])){ // Logging mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Ticket', log_action = 'Modify', log_description = '$session_name reassigned ticket $ticket_prefix$ticket_number - $ticket_subject to $agent_name', 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, company_id = $session_company_id"); - - // Email notification if (intval($session_user_id) !== $assigned_to || $assigned_to !== 0) { mysqli_query($mysqli,"INSERT INTO notifications SET notification_type = 'Ticket', notification = 'Ticket $ticket_prefix$ticket_number - Subject: $ticket_subject has been assigned to you by $session_name', notification_client_id = $client_id, notification_user_id = $assigned_to, company_id = $session_company_id"); - $subject = "$config_app_name ticket $ticket_prefix$ticket_number assigned to you"; $body = "Hi $agent_name,

A ticket has been assigned to you!

Ticket Number: $ticket_prefix$ticket_number
Subject: $ticket_subject

Thanks,
$session_name
$session_company_name"; @@ -6859,7 +6856,6 @@ if(isset($_POST['assign_ticket'])){ $subject, $body); } - $_SESSION['alert_message'] = "Ticket $ticket_prefix$ticket_number assigned to $agent_name"; header("Location: " . $_SERVER["HTTP_REFERER"]); @@ -6872,14 +6868,29 @@ if(isset($_GET['delete_ticket'])){ $ticket_id = intval($_GET['delete_ticket']); + // Get Ticket and Client ID for logging and alert message + $sql = mysqli_query($mysqli,"SELECT ticket_prefix, ticket_number, ticket_subject, ticket_client_id FROM tickets WHERE ticket_id = $ticket_id AND company_id = $session_company_id"); + $row = mysqli_fetch_array($sql); + $ticket_prefix = strip_tags(mysqli_real_escape_string($mysqli,$row['ticket_prefix'])); + $ticket_number = strip_tags(mysqli_real_escape_string($mysqli,$row['ticket_number'])); + $ticket_subject = strip_tags(mysqli_real_escape_string($mysqli,$row['ticket_subject'])); + $client_id = intval($row['ticket_client_id']); + mysqli_query($mysqli,"DELETE FROM tickets WHERE ticket_id = $ticket_id AND company_id = $session_company_id"); - //Logging - mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Ticket', log_action = 'Delete', log_description = '$ticket_id', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id, company_id = $session_company_id"); + // Delete all ticket replies + mysqli_query($mysqli,"DELETE FROM ticket_replies WHERE ticket_reply_ticket_id = $ticket_id AND company_id = $session_company_id"); - $_SESSION['alert_message'] = "Ticket deleted"; + // Delete all ticket views + mysqli_query($mysqli,"DELETE FROM ticket_views WHERE view_ticket_id = $ticket_id"); - header("Location: tickets.php"); + // Logging + mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Ticket', log_action = 'Delete', log_description = '$session_name deleted ticket $ticket_prefix$ticket_number - $ticket_subject along with all replies', 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, company_id = $session_company_id"); + + $_SESSION['alert_type'] = "error"; + $_SESSION['alert_message'] = "Ticket $ticket_prefix$ticket_number along with all replies deleted"; + + header("Location: " . $_SERVER["HTTP_REFERER"]); } @@ -6908,28 +6919,34 @@ if(isset($_POST['add_ticket_reply'])){ // Add reply mysqli_query($mysqli,"INSERT INTO ticket_replies SET ticket_reply = '$ticket_reply', ticket_reply_time_worked = '$ticket_reply_time_worked', ticket_reply_type = '$ticket_reply_type', ticket_reply_by = $session_user_id, ticket_reply_ticket_id = $ticket_id, company_id = $session_company_id") or die(mysqli_error($mysqli)); + $ticket_reply_id = mysqli_insert_id($mysqli); + // Update Ticket Last Response Field mysqli_query($mysqli,"UPDATE tickets SET ticket_status = '$ticket_status' WHERE ticket_id = $ticket_id AND company_id = $session_company_id") or die(mysqli_error($mysqli)); + // Get Ticket Details + $ticket_sql = mysqli_query($mysqli,"SELECT contact_name, contact_email, ticket_prefix, ticket_number, ticket_subject, company_phone, ticket_client_id, ticket_created_by, ticket_assigned_to FROM tickets + LEFT JOIN clients ON ticket_client_id = client_id + LEFT JOIN contacts ON ticket_contact_id = contact_id + LEFT JOIN companies ON tickets.company_id = companies.company_id + WHERE ticket_id = $ticket_id AND tickets.company_id = $session_company_id + "); + + $row = mysqli_fetch_array($ticket_sql); + + $contact_name = $row['contact_name']; + $contact_email = $row['contact_email']; + $ticket_prefix = $row['ticket_prefix']; + $ticket_number = $row['ticket_number']; + $ticket_subject = $row['ticket_subject']; + $client_id = intval($row['ticket_client_id']); + $ticket_created_by = intval($row['ticket_created_by']); + $ticket_assigned_to = intval($row['ticket_assigned_to']); + $company_phone = formatPhoneNumber($row['company_phone']); + // Send e-mail to client if public update & email is set up if($ticket_reply_type == 'Public' && !empty($config_smtp_host)){ - $ticket_sql = mysqli_query($mysqli,"SELECT contact_name, contact_email, ticket_prefix, ticket_number, ticket_subject, company_phone FROM tickets - LEFT JOIN clients ON ticket_client_id = client_id - LEFT JOIN contacts ON ticket_contact_id = contact_id - LEFT JOIN companies ON tickets.company_id = companies.company_id - WHERE ticket_id = $ticket_id AND tickets.company_id = $session_company_id - "); - - $row = mysqli_fetch_array($ticket_sql); - - $contact_name = $row['contact_name']; - $contact_email = $row['contact_email']; - $ticket_prefix = $row['ticket_prefix']; - $ticket_number = $row['ticket_number']; - $ticket_subject = $row['ticket_subject']; - $company_phone = formatPhoneNumber($row['company_phone']); - if(filter_var($contact_email, FILTER_VALIDATE_EMAIL)){ // Slightly different email subject/text depending on if this update closed the ticket or not @@ -6944,7 +6961,6 @@ if(isset($_POST['add_ticket_reply'])){ } - $mail = sendSingleEmail($config_smtp_host, $config_smtp_username, $config_smtp_password, $config_smtp_encryption, $config_smtp_port, $config_ticket_from_email, $config_ticket_from_name, $contact_email, $contact_name, @@ -6958,10 +6974,22 @@ if(isset($_POST['add_ticket_reply'])){ } //End Mail IF - // Logging - mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Ticket Reply', log_action = 'Create', log_description = '$ticket_id', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id, company_id = $session_company_id"); + // Notification for assigned ticket user + if (intval($session_user_id) !== $ticket_assigned_to || $ticket_assigned_to !== 0) { - $_SESSION['alert_message'] = "Posted an update"; + mysqli_query($mysqli,"INSERT INTO notifications SET notification_type = 'Ticket', notification = '$session_name updated Ticket $ticket_prefix$ticket_number - Subject: $ticket_subject that is assigned to you', notification_client_id = $client_id, notification_user_id = $ticket_assigned_to, company_id = $session_company_id"); + } + + // Notification for user that opened the ticket + if (intval($session_user_id) !== $ticket_created_by || $ticket_created_by !== 0) { + + mysqli_query($mysqli,"INSERT INTO notifications SET notification_type = 'Ticket', notification = '$session_name updated Ticket $ticket_prefix$ticket_number - Subject: $ticket_subject that you opened', notification_client_id = $client_id, notification_user_id = $ticket_created_by, company_id = $session_company_id"); + } + + // Logging + mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Ticket Reply', log_action = 'Create', log_description = '$session_name replied to ticket $ticket_prefix$ticket_number - $ticket_subject and was a $ticket_reply_type reply', 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_reply_id, company_id = $session_company_id"); + + $_SESSION['alert_message'] = "Ticket $prefix$ticket_number has been updated with your reply and was $ticket_reply_type"; header("Location: " . $_SERVER["HTTP_REFERER"]);