diff --git a/calendar_events.php b/calendar_events.php
index 73625e5b..93022352 100644
--- a/calendar_events.php
+++ b/calendar_events.php
@@ -125,13 +125,29 @@ while ($row = mysqli_fetch_array($sql)) {
}
//Tickets Scheduled
- $sql = mysqli_query($mysqli, "SELECT * FROM clients LEFT JOIN tickets ON client_id = ticket_client_id WHERE ticket_schedule IS NOT NULL");
+ $sql = mysqli_query($mysqli, "SELECT * FROM clients LEFT JOIN tickets ON client_id = ticket_client_id LEFT JOIN users ON ticket_assigned_to = ticket_client_id WHERE ticket_schedule IS NOT NULL");
while ($row = mysqli_fetch_array($sql)) {
$event_id = intval($row['ticket_id']);
- $event_title = json_encode($row['ticket_prefix'] . $row['ticket_number'] . " " . $row['ticket_subject']);
+ if (!empty($username)) {
+ $username = "Unassigned";
+ } else {
+ $username = $row['user_name'];
+ }
+
+ if (strtotime($row['ticket_schedule']) < time()) {
+ if ($row['ticket_status'] == 'Scheduled') {
+ $event_color = "red";
+ }else {
+ $event_color = "green";
+ }
+ } else {
+ $event_color = "grey";
+ }
+
+ $event_title = json_encode($row['ticket_prefix'] . $row['ticket_number'] . " " . $row['ticket_subject'] . " [" . $username . "]");
$event_start = json_encode($row['ticket_schedule']);
- echo "{ id: $event_id, title: $event_title, start: $event_start, color: 'red', url: 'ticket.php?ticket_id=$event_id' },";
+ echo "{ id: $event_id, title: $event_title, start: $event_start, color: '$event_color', url: 'ticket.php?ticket_id=$event_id' },";
}
//Vendors Added Created
diff --git a/functions.php b/functions.php
index b8e9ec19..f69cf424 100644
--- a/functions.php
+++ b/functions.php
@@ -539,7 +539,54 @@ function sendSingleEmail($config_smtp_host, $config_smtp_username, $config_smtp_
// Content
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = "$subject"; // Subject
- $mail->Body = "$body"; // Content
+ $mail->Body = "
+
+
+
+
+
+ $body
+
+
+
+ "; // Content
// Attachments - todo
//$mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
@@ -983,25 +1030,31 @@ function calculateInvoiceBalance($mysqli, $invoice_id) {
}
-function createCalendarEvent($datetime, $title, $description, $location) {
- //Use The Zap Cal PHP Library to create a calendar event and return the ics feed
-
+function createiCalStr($datetime, $title, $description, $location) {
require_once "plugins/zapcal/zapcallib.php";
+ // Create the iCal object
$cal_event = new ZCiCal();
-
$event = new ZCiCalNode("VEVENT", $cal_event->curnode);
+
+
+ // Set the method to REQUEST to indicate an invite
+ $event->addNode(new ZCiCalDataNode("METHOD:REQUEST"));
$event->addNode(new ZCiCalDataNode("SUMMARY:" . $title));
$event->addNode(new ZCiCalDataNode("DTSTART:" . ZCiCal::fromSqlDateTime($datetime)));
+ // Assuming the end time is the same as start time.
+ // Todo: adjust this for actual duration
$event->addNode(new ZCiCalDataNode("DTEND:" . ZCiCal::fromSqlDateTime($datetime)));
$event->addNode(new ZCiCalDataNode("DTSTAMP:" . ZCiCal::fromSqlDateTime()));
$uid = date('Y-m-d-H-i-s') . "@" . $_SERVER['SERVER_NAME'];
$event->addNode(new ZCiCalDataNode("UID:" . $uid));
$event->addNode(new ZCiCalDataNode("LOCATION:" . $location));
$event->addNode(new ZCiCalDataNode("DESCRIPTION:" . $description));
+ // Todo: add organizer details
+ // $event->addNode(new ZCiCalDataNode("ORGANIZER;CN=Organizer Name:MAILTO:organizer@example.com"));
+ // Export the iCal object to a string
$ics_feed = $cal_event->export();
-
return $ics_feed;
}
diff --git a/post/ticket.php b/post/ticket.php
index bd6756c4..be607124 100644
--- a/post/ticket.php
+++ b/post/ticket.php
@@ -18,7 +18,7 @@ if (isset($_POST['add_ticket'])) {
$contact = intval($_POST['contact']);
$subject = sanitizeInput($_POST['subject']);
$priority = sanitizeInput($_POST['priority']);
- $details = mysqli_real_escape_string($mysqli,$_POST['details']);
+ $details = mysqli_real_escape_string($mysqli, $_POST['details']);
$vendor_ticket_number = sanitizeInput($_POST['vendor_ticket_number']);
$vendor_id = intval($_POST['vendor']);
$asset_id = intval($_POST['asset']);
@@ -27,7 +27,7 @@ if (isset($_POST['add_ticket'])) {
// Add the primary contact as the ticket contact if "Use primary contact" is checked
if ($use_primary_contact == 1) {
- $sql = mysqli_query($mysqli,"SELECT contact_id FROM contacts WHERE contact_client_id = $client_id AND contact_primary = 1");
+ $sql = mysqli_query($mysqli, "SELECT contact_id FROM contacts WHERE contact_client_id = $client_id AND contact_primary = 1");
$row = mysqli_fetch_array($sql);
$contact = intval($row['contact_id']);
}
@@ -41,24 +41,24 @@ if (isset($_POST['add_ticket'])) {
//Get the next Ticket Number and add 1 for the new ticket number
$ticket_number = $config_ticket_next_number;
$new_config_ticket_next_number = $config_ticket_next_number + 1;
-
+
// Sanitize Config Vars from get_settings.php and Session Vars from check_login.php
$config_ticket_prefix = sanitizeInput($config_ticket_prefix);
$config_ticket_from_name = sanitizeInput($config_ticket_from_name);
$config_ticket_from_email = sanitizeInput($config_ticket_from_email);
$config_base_url = sanitizeInput($config_base_url);
- mysqli_query($mysqli,"UPDATE settings SET config_ticket_next_number = $new_config_ticket_next_number WHERE company_id = 1");
+ mysqli_query($mysqli, "UPDATE settings SET config_ticket_next_number = $new_config_ticket_next_number WHERE company_id = 1");
- mysqli_query($mysqli,"INSERT INTO tickets SET ticket_prefix = '$config_ticket_prefix', ticket_number = $ticket_number, ticket_subject = '$subject', ticket_details = '$details', ticket_priority = '$priority', ticket_billable = '$billable', ticket_status = '$ticket_status', ticket_vendor_ticket_number = '$vendor_ticket_number', ticket_vendor_id = $vendor_id, ticket_asset_id = $asset_id, ticket_created_by = $session_user_id, ticket_assigned_to = $assigned_to, ticket_contact_id = $contact, ticket_client_id = $client_id, ticket_invoice_id = 0");
+ mysqli_query($mysqli, "INSERT INTO tickets SET ticket_prefix = '$config_ticket_prefix', ticket_number = $ticket_number, ticket_subject = '$subject', ticket_details = '$details', ticket_priority = '$priority', ticket_billable = '$billable', ticket_status = '$ticket_status', ticket_vendor_ticket_number = '$vendor_ticket_number', ticket_vendor_id = $vendor_id, ticket_asset_id = $asset_id, ticket_created_by = $session_user_id, ticket_assigned_to = $assigned_to, ticket_contact_id = $contact, ticket_client_id = $client_id, ticket_invoice_id = 0");
$ticket_id = mysqli_insert_id($mysqli);
// Add Watchers
if (!empty($_POST['watchers'])) {
- foreach($_POST['watchers'] as $watcher) {
+ foreach ($_POST['watchers'] as $watcher) {
$watcher_email = sanitizeInput($watcher);
- mysqli_query($mysqli,"INSERT INTO ticket_watchers SET watcher_email = '$watcher_email', watcher_ticket_id = $ticket_id");
+ mysqli_query($mysqli, "INSERT INTO ticket_watchers SET watcher_email = '$watcher_email', watcher_ticket_id = $ticket_id");
}
}
@@ -66,7 +66,7 @@ if (isset($_POST['add_ticket'])) {
if (!empty($config_smtp_host) && $config_ticket_client_general_notifications == 1) {
// 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, ticket_created_by, ticket_assigned_to, ticket_client_id FROM tickets
+ $sql = mysqli_query($mysqli, "SELECT contact_name, contact_email, ticket_prefix, ticket_number, ticket_category, ticket_subject, ticket_details, ticket_priority, ticket_status, 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
WHERE ticket_id = $ticket_id");
@@ -86,7 +86,7 @@ if (isset($_POST['add_ticket'])) {
$ticket_assigned_to = intval($row['ticket_assigned_to']);
// Get Company Phone Number
- $sql = mysqli_query($mysqli,"SELECT company_name, company_phone FROM companies WHERE company_id = 1");
+ $sql = mysqli_query($mysqli, "SELECT company_name, company_phone FROM companies WHERE company_id = 1");
$row = mysqli_fetch_array($sql);
$company_name = sanitizeInput($row['company_name']);
$company_phone = sanitizeInput(formatPhoneNumber($row['company_phone']));
@@ -107,7 +107,7 @@ if (isset($_POST['add_ticket'])) {
'recipient' => $contact_email,
'recipient_name' => $contact_name,
'subject' => $subject,
- 'body' => $body
+ 'body' => $body
];
// Also Email all the watchers
@@ -117,7 +117,7 @@ if (isset($_POST['add_ticket'])) {
$watcher_email = sanitizeInput($row['watcher_email']);
// Queue Mail
- $data[] = [
+ $data[] = [
'from' => $config_ticket_from_email,
'from_name' => $config_ticket_from_name,
'recipient' => $watcher_email,
@@ -125,19 +125,17 @@ if (isset($_POST['add_ticket'])) {
'subject' => $subject,
'body' => $body
];
-
}
addToMailQueue($mysqli, $data);
}
}
// Logging
- mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Ticket', log_action = 'Create', log_description = '$session_name created ticket $config_ticket_prefix$ticket_number - $ticket_subject', 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");
+ mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Create', log_description = '$session_name created ticket $config_ticket_prefix$ticket_number - $ticket_subject', 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");
$_SESSION['alert_message'] = "You created Ticket $ticket_subject $config_ticket_prefix$ticket_number ";
header("Location: ticket.php?ticket_id=" . $ticket_id);
-
}
if (isset($_POST['edit_ticket'])) {
@@ -149,7 +147,7 @@ if (isset($_POST['edit_ticket'])) {
$subject = sanitizeInput($_POST['subject']);
$billable = intval($_POST['billable']);
$priority = sanitizeInput($_POST['priority']);
- $details = mysqli_real_escape_string($mysqli,$_POST['details']);
+ $details = mysqli_real_escape_string($mysqli, $_POST['details']);
$vendor_ticket_number = sanitizeInput($_POST['vendor_ticket_number']);
$vendor_id = intval($_POST['vendor']);
$asset_id = intval($_POST['asset']);
@@ -157,15 +155,14 @@ if (isset($_POST['edit_ticket'])) {
$client_id = intval($_POST['client_id']);
$ticket_number = intval($_POST['ticket_number']);
- mysqli_query($mysqli,"UPDATE tickets SET ticket_subject = '$subject', ticket_priority = '$priority', ticket_billable = $billable, ticket_details = '$details', ticket_vendor_ticket_number = '$vendor_ticket_number', ticket_contact_id = $contact_id, ticket_vendor_id = $vendor_id, ticket_asset_id = $asset_id WHERE ticket_id = $ticket_id");
+ mysqli_query($mysqli, "UPDATE tickets SET ticket_subject = '$subject', ticket_priority = '$priority', ticket_billable = $billable, ticket_details = '$details', ticket_vendor_ticket_number = '$vendor_ticket_number', ticket_contact_id = $contact_id, ticket_vendor_id = $vendor_id, ticket_asset_id = $asset_id WHERE ticket_id = $ticket_id");
//Logging
- mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Ticket', log_action = 'Modify', log_description = '$session_name modified ticket $ticket_number - $subject', 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");
+ mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Modify', log_description = '$session_name modified ticket $ticket_number - $subject', 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");
$_SESSION['alert_message'] = "Ticket $ticket_number updated";
header("Location: " . $_SERVER["HTTP_REFERER"]);
-
}
if (isset($_POST['edit_ticket_priority'])) {
@@ -176,15 +173,14 @@ if (isset($_POST['edit_ticket_priority'])) {
$priority = sanitizeInput($_POST['priority']);
$client_id = intval($_POST['client_id']);
- mysqli_query($mysqli,"UPDATE tickets SET ticket_priority = '$priority' WHERE ticket_id = $ticket_id");
+ mysqli_query($mysqli, "UPDATE tickets SET ticket_priority = '$priority' WHERE ticket_id = $ticket_id");
//Logging
- mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Ticket', log_action = 'Modify', log_description = '$session_name edited ticket priority', 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");
+ mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Modify', log_description = '$session_name edited ticket priority', 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");
$_SESSION['alert_message'] = "Ticket priority updated";
header("Location: " . $_SERVER["HTTP_REFERER"]);
-
}
if (isset($_POST['edit_ticket_contact'])) {
@@ -196,15 +192,14 @@ if (isset($_POST['edit_ticket_contact'])) {
$client_id = intval($_POST['client_id']);
$ticket_number = sanitizeInput($_POST['ticket_number']);
- mysqli_query($mysqli,"UPDATE tickets SET ticket_contact_id = $contact_id WHERE ticket_id = $ticket_id");
+ mysqli_query($mysqli, "UPDATE tickets SET ticket_contact_id = $contact_id WHERE ticket_id = $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");
+ 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");
$_SESSION['alert_message'] = "Ticket $ticket_number contact updated";
header("Location: " . $_SERVER["HTTP_REFERER"]);
-
}
if (isset($_POST['add_ticket_watcher'])) {
@@ -216,15 +211,14 @@ if (isset($_POST['add_ticket_watcher'])) {
$ticket_number = sanitizeInput($_POST['ticket_number']);
$watcher_email = sanitizeInput($_POST['watcher_email']);
- mysqli_query($mysqli,"INSERT INTO ticket_watchers SET watcher_email = '$watcher_email', watcher_ticket_id = $ticket_id");
+ mysqli_query($mysqli, "INSERT INTO ticket_watchers SET watcher_email = '$watcher_email', watcher_ticket_id = $ticket_id");
//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");
+ 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");
$_SESSION['alert_message'] = "You added $watcher_email as a watcher to Ticket $ticket_number ";
header("Location: " . $_SERVER["HTTP_REFERER"]);
-
}
if (isset($_POST['edit_ticket_watchers'])) {
@@ -239,22 +233,21 @@ if (isset($_POST['edit_ticket_watchers'])) {
if (!empty($_POST['watchers'])) {
// Remove all watchers first
- mysqli_query($mysqli,"DELETE FROM ticket_watchers WHERE watcher_ticket_id = $ticket_id");
+ mysqli_query($mysqli, "DELETE FROM ticket_watchers WHERE watcher_ticket_id = $ticket_id");
//Add the Watchers
- foreach($_POST['watchers'] as $watcher) {
+ foreach ($_POST['watchers'] as $watcher) {
$watcher_email = sanitizeInput($watcher);
- mysqli_query($mysqli,"INSERT INTO ticket_watchers SET watcher_email = '$watcher_email', watcher_ticket_id = $ticket_id");
+ mysqli_query($mysqli, "INSERT INTO ticket_watchers SET watcher_email = '$watcher_email', watcher_ticket_id = $ticket_id");
}
}
//Logging
- mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Ticket', log_action = 'Edit', log_description = '$session_name added watchers 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");
+ mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Edit', log_description = '$session_name added watchers 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");
$_SESSION['alert_message'] = "Ticket $ticket_number watchers updated";
header("Location: " . $_SERVER["HTTP_REFERER"]);
-
}
if (isset($_GET['delete_ticket_watcher'])) {
@@ -263,13 +256,12 @@ if (isset($_GET['delete_ticket_watcher'])) {
$watcher_id = intval($_GET['delete_ticket_watcher']);
- mysqli_query($mysqli,"DELETE FROM ticket_watchers WHERE watcher_id = $watcher_id");
+ mysqli_query($mysqli, "DELETE FROM ticket_watchers WHERE watcher_id = $watcher_id");
$_SESSION['alert_message'] = "You removed a ticket watcher";
header("Location: " . $_SERVER["HTTP_REFERER"]);
-
}
if (isset($_POST['edit_ticket_asset'])) {
@@ -281,15 +273,14 @@ if (isset($_POST['edit_ticket_asset'])) {
$client_id = intval($_POST['client_id']);
$ticket_number = sanitizeInput($_POST['ticket_number']);
- mysqli_query($mysqli,"UPDATE tickets SET ticket_asset_id = $asset_id WHERE ticket_id = $ticket_id");
+ mysqli_query($mysqli, "UPDATE tickets SET ticket_asset_id = $asset_id WHERE ticket_id = $ticket_id");
//Logging
- mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Ticket', log_action = 'Edit', log_description = '$session_name edited asset 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");
+ mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Edit', log_description = '$session_name edited asset 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");
$_SESSION['alert_message'] = "Ticket $ticket_number asset updated";
header("Location: " . $_SERVER["HTTP_REFERER"]);
-
}
if (isset($_POST['edit_ticket_vendor'])) {
@@ -301,15 +292,14 @@ if (isset($_POST['edit_ticket_vendor'])) {
$client_id = intval($_POST['client_id']);
$ticket_number = sanitizeInput($_POST['ticket_number']);
- mysqli_query($mysqli,"UPDATE tickets SET ticket_vendor_id = $vendor_id WHERE ticket_id = $ticket_id");
+ mysqli_query($mysqli, "UPDATE tickets SET ticket_vendor_id = $vendor_id WHERE ticket_id = $ticket_id");
//Logging
- mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Ticket', log_action = 'Edit', log_description = '$session_name edited vendor 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");
+ mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Edit', log_description = '$session_name edited vendor 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");
$_SESSION['alert_message'] = "Ticket $ticket_number vendor updated";
header("Location: " . $_SERVER["HTTP_REFERER"]);
-
}
if (isset($_POST['edit_ticket_priority'])) {
@@ -320,15 +310,14 @@ if (isset($_POST['edit_ticket_priority'])) {
$priority = sanitizeInput($_POST['priority']);
$client_id = intval($_POST['client_id']);
- mysqli_query($mysqli,"UPDATE tickets SET ticket_priority = '$priority' WHERE ticket_id = $ticket_id");
+ mysqli_query($mysqli, "UPDATE tickets SET ticket_priority = '$priority' WHERE ticket_id = $ticket_id");
//Logging
- mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Ticket', log_action = 'Modify', log_description = '$session_name edited ticket priority', 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");
+ mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Modify', log_description = '$session_name edited ticket priority', 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");
$_SESSION['alert_message'] = "Ticket priority updated";
header("Location: " . $_SERVER["HTTP_REFERER"]);
-
}
if (isset($_POST['assign_ticket'])) {
@@ -340,7 +329,7 @@ if (isset($_POST['assign_ticket'])) {
$ticket_id = intval($_POST['ticket_id']);
$assigned_to = intval($_POST['assigned_to']);
$ticket_status = sanitizeInput($_POST['ticket_status']);
- if($ticket_status == 'Pending-Assignment' && $assigned_to > 0){
+ if ($ticket_status == 'Pending-Assignment' && $assigned_to > 0) {
$ticket_status = 'Assigned';
}
@@ -383,19 +372,19 @@ if (isset($_POST['assign_ticket'])) {
}
// Update ticket & insert reply
- mysqli_query($mysqli,"UPDATE tickets SET ticket_assigned_to = $assigned_to, ticket_status = '$ticket_status' WHERE ticket_id = $ticket_id");
+ mysqli_query($mysqli, "UPDATE tickets SET ticket_assigned_to = $assigned_to, ticket_status = '$ticket_status' WHERE ticket_id = $ticket_id");
- mysqli_query($mysqli,"INSERT INTO ticket_replies SET ticket_reply = '$ticket_reply', ticket_reply_type = 'Internal', ticket_reply_time_worked = '00:01:00', ticket_reply_by = $session_user_id, ticket_reply_ticket_id = $ticket_id");
+ mysqli_query($mysqli, "INSERT INTO ticket_replies SET ticket_reply = '$ticket_reply', ticket_reply_type = 'Internal', ticket_reply_time_worked = '00:01:00', ticket_reply_by = $session_user_id, ticket_reply_ticket_id = $ticket_id");
// Logging
- mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Ticket', log_action = 'Edit', 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");
+ mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Edit', 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");
// Notification
if ($session_user_id != $assigned_to && $assigned_to != 0) {
// App Notification
- 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_action = 'ticket.php?ticket_id=$ticket_id', notification_client_id = $client_id, notification_user_id = $assigned_to");
+ 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_action = 'ticket.php?ticket_id=$ticket_id', notification_client_id = $client_id, notification_user_id = $assigned_to");
// Email Notification
if (!empty($config_smtp_host)) {
@@ -422,13 +411,11 @@ if (isset($_POST['assign_ticket'])) {
];
addToMailQueue($mysqli, $data);
}
-
}
$_SESSION['alert_message'] = "Ticket $ticket_prefix$ticket_number assigned to $agent_name ";
header("Location: " . $_SERVER["HTTP_REFERER"]);
-
}
if (isset($_GET['delete_ticket'])) {
@@ -438,7 +425,7 @@ 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_status, ticket_client_id FROM tickets WHERE ticket_id = $ticket_id");
+ $sql = mysqli_query($mysqli, "SELECT ticket_prefix, ticket_number, ticket_subject, ticket_status, ticket_client_id FROM tickets WHERE ticket_id = $ticket_id");
$row = mysqli_fetch_array($sql);
$ticket_prefix = sanitizeInput($row['ticket_prefix']);
$ticket_number = sanitizeInput($row['ticket_number']);
@@ -447,23 +434,22 @@ if (isset($_GET['delete_ticket'])) {
$client_id = intval($row['ticket_client_id']);
if ($ticket_status !== 'Closed') {
- mysqli_query($mysqli,"DELETE FROM tickets WHERE ticket_id = $ticket_id");
+ mysqli_query($mysqli, "DELETE FROM tickets WHERE ticket_id = $ticket_id");
// Delete all ticket replies
- mysqli_query($mysqli,"DELETE FROM ticket_replies WHERE ticket_reply_ticket_id = $ticket_id");
+ mysqli_query($mysqli, "DELETE FROM ticket_replies WHERE ticket_reply_ticket_id = $ticket_id");
// Delete all ticket views
- mysqli_query($mysqli,"DELETE FROM ticket_views WHERE view_ticket_id = $ticket_id");
+ mysqli_query($mysqli, "DELETE FROM ticket_views WHERE view_ticket_id = $ticket_id");
// 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");
+ 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");
$_SESSION['alert_type'] = "error";
$_SESSION['alert_message'] = "Ticket $ticket_prefix$ticket_number along with all replies deleted";
header("Location: tickets.php");
}
-
}
if (isset($_POST['bulk_assign_ticket'])) {
@@ -476,12 +462,12 @@ if (isset($_POST['bulk_assign_ticket'])) {
// Get a Ticket Count
$ticket_count = count($_POST['ticket_ids']);
-
+
// Assign Tech to Selected Tickets
if (!empty($_POST['ticket_ids'])) {
- foreach($_POST['ticket_ids'] as $ticket_id) {
+ foreach ($_POST['ticket_ids'] as $ticket_id) {
$ticket_id = intval($ticket_id);
-
+
$sql = mysqli_query($mysqli, "SELECT * FROM tickets WHERE ticket_id = $ticket_id");
$row = mysqli_fetch_array($sql);
@@ -491,7 +477,7 @@ if (isset($_POST['bulk_assign_ticket'])) {
$ticket_subject = sanitizeInput($row['ticket_subject']);
$client_id = intval($row['ticket_client_id']);
- if($ticket_status == 'Pending-Assignment' && $assign_to > 0){
+ if ($ticket_status == 'Pending-Assignment' && $assign_to > 0) {
$ticket_status = 'Assigned';
}
@@ -518,22 +504,21 @@ if (isset($_POST['bulk_assign_ticket'])) {
}
// Update ticket & insert reply
- mysqli_query($mysqli,"UPDATE tickets SET ticket_assigned_to = $assign_to, ticket_status = '$ticket_status' WHERE ticket_id = $ticket_id");
-
- mysqli_query($mysqli,"INSERT INTO ticket_replies SET ticket_reply = '$ticket_reply', ticket_reply_type = 'Internal', ticket_reply_time_worked = '00:01:00', ticket_reply_by = $session_user_id, ticket_reply_ticket_id = $ticket_id");
+ mysqli_query($mysqli, "UPDATE tickets SET ticket_assigned_to = $assign_to, ticket_status = '$ticket_status' WHERE ticket_id = $ticket_id");
+
+ mysqli_query($mysqli, "INSERT INTO ticket_replies SET ticket_reply = '$ticket_reply', ticket_reply_type = 'Internal', ticket_reply_time_worked = '00:01:00', ticket_reply_by = $session_user_id, ticket_reply_ticket_id = $ticket_id");
// Logging
- mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Ticket', log_action = 'Edit', 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");
+ mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Edit', 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");
$tickets_assigned_body .= "$ticket_prefix$ticket_number - $ticket_subject ";
-
} // End For Each Ticket ID Loop
// Notification
if ($session_user_id != $assign_to && $assign_to != 0) {
// App Notification
- mysqli_query($mysqli,"INSERT INTO notifications SET notification_type = 'Ticket', notification = '$ticket_count Tickets have been assigned to you by $session_name', notification_action = 'tickets.php?status=Open&assigned=$assign_to', notification_client_id = $client_id, notification_user_id = $assign_to");
+ mysqli_query($mysqli, "INSERT INTO notifications SET notification_type = 'Ticket', notification = '$ticket_count Tickets have been assigned to you by $session_name', notification_action = 'tickets.php?status=Open&assigned=$assign_to', notification_client_id = $client_id, notification_user_id = $assign_to");
// Agent Email Notification
if (!empty($config_smtp_host)) {
@@ -560,14 +545,12 @@ if (isset($_POST['bulk_assign_ticket'])) {
];
addToMailQueue($mysqli, $data);
}
-
}
}
$_SESSION['alert_message'] = "You assigned $ticket_count Tickets to $agent_name ";
header("Location: " . $_SERVER["HTTP_REFERER"]);
-
}
if (isset($_POST['bulk_edit_ticket_priority'])) {
@@ -580,12 +563,12 @@ if (isset($_POST['bulk_edit_ticket_priority'])) {
// Get a Ticket Count
$ticket_count = count($_POST['ticket_ids']);
-
+
// Assign Tech to Selected Tickets
if (!empty($_POST['ticket_ids'])) {
- foreach($_POST['ticket_ids'] as $ticket_id) {
+ foreach ($_POST['ticket_ids'] as $ticket_id) {
$ticket_id = intval($ticket_id);
-
+
$sql = mysqli_query($mysqli, "SELECT * FROM tickets WHERE ticket_id = $ticket_id");
$row = mysqli_fetch_array($sql);
@@ -597,20 +580,18 @@ if (isset($_POST['bulk_edit_ticket_priority'])) {
$client_id = intval($row['ticket_client_id']);
// Update ticket & insert reply
- mysqli_query($mysqli,"UPDATE tickets SET ticket_priority = '$priority' WHERE ticket_id = $ticket_id");
-
- mysqli_query($mysqli,"INSERT INTO ticket_replies SET ticket_reply = '$session_name updated the priority from $current_ticket_priority to $priority', ticket_reply_type = 'Internal', ticket_reply_time_worked = '00:01:00', ticket_reply_by = $session_user_id, ticket_reply_ticket_id = $ticket_id");
+ mysqli_query($mysqli, "UPDATE tickets SET ticket_priority = '$priority' WHERE ticket_id = $ticket_id");
+
+ mysqli_query($mysqli, "INSERT INTO ticket_replies SET ticket_reply = '$session_name updated the priority from $current_ticket_priority to $priority', ticket_reply_type = 'Internal', ticket_reply_time_worked = '00:01:00', ticket_reply_by = $session_user_id, ticket_reply_ticket_id = $ticket_id");
// Logging
- mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Ticket', log_action = 'Edit', log_description = '$session_name updated the priority on ticket $ticket_prefix$ticket_number - $ticket_subject from $current_ticket_priority to $priority', 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");
-
+ mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Edit', log_description = '$session_name updated the priority on ticket $ticket_prefix$ticket_number - $ticket_subject from $current_ticket_priority to $priority', 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");
} // End For Each Ticket ID Loop
}
$_SESSION['alert_message'] = "You updated the priority for $ticket_count Tickets to $priority ";
header("Location: " . $_SERVER["HTTP_REFERER"]);
-
}
if (isset($_POST['bulk_close_tickets'])) {
@@ -621,7 +602,7 @@ if (isset($_POST['bulk_close_tickets'])) {
// POST variables
$details = mysqli_escape_string($mysqli, $_POST['bulk_details']);
$private_note = intval($_POST['bulk_private_note']);
- if($private_note == 1){
+ if ($private_note == 1) {
$ticket_reply_type = 'Internal';
} else {
$ticket_reply_type = 'Public';
@@ -629,12 +610,12 @@ if (isset($_POST['bulk_close_tickets'])) {
// Get a Ticket Count
$ticket_count = count($_POST['ticket_ids']);
-
+
// Assign Tech to Selected Tickets
if (!empty($_POST['ticket_ids'])) {
- foreach($_POST['ticket_ids'] as $ticket_id) {
+ foreach ($_POST['ticket_ids'] as $ticket_id) {
$ticket_id = intval($ticket_id);
-
+
$sql = mysqli_query($mysqli, "SELECT * FROM tickets WHERE ticket_id = $ticket_id");
$row = mysqli_fetch_array($sql);
@@ -646,18 +627,18 @@ if (isset($_POST['bulk_close_tickets'])) {
$client_id = intval($row['ticket_client_id']);
// Update ticket & insert reply
- mysqli_query($mysqli,"UPDATE tickets SET ticket_status = 'Closed' WHERE ticket_id = $ticket_id");
-
- mysqli_query($mysqli,"INSERT INTO ticket_replies SET ticket_reply = '$details', ticket_reply_type = '$ticket_reply_type', ticket_reply_time_worked = '00:01:00', ticket_reply_by = $session_user_id, ticket_reply_ticket_id = $ticket_id");
+ mysqli_query($mysqli, "UPDATE tickets SET ticket_status = 'Closed' WHERE ticket_id = $ticket_id");
+
+ mysqli_query($mysqli, "INSERT INTO ticket_replies SET ticket_reply = '$details', ticket_reply_type = '$ticket_reply_type', ticket_reply_time_worked = '00:01:00', ticket_reply_by = $session_user_id, ticket_reply_ticket_id = $ticket_id");
// Logging
- mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Ticket', log_action = 'Close', log_description = '$session_name closed $ticket_prefix$ticket_number - $ticket_subject in a bulk action', 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");
+ mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Close', log_description = '$session_name closed $ticket_prefix$ticket_number - $ticket_subject in a bulk action', 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");
// Client notification email
if (!empty($config_smtp_host) && $config_ticket_client_general_notifications == 1 && $private_note == 0) {
// Get Contact details
- $ticket_sql = mysqli_query($mysqli,"SELECT contact_name, contact_email FROM tickets
+ $ticket_sql = mysqli_query($mysqli, "SELECT contact_name, contact_email FROM tickets
LEFT JOIN contacts ON ticket_contact_id = contact_id
WHERE ticket_id = $ticket_id
");
@@ -672,7 +653,7 @@ if (isset($_POST['bulk_close_tickets'])) {
$base_url = sanitizeInput($config_base_url);
// Get Company Info
- $sql = mysqli_query($mysqli,"SELECT company_name, company_phone FROM companies WHERE company_id = 1");
+ $sql = mysqli_query($mysqli, "SELECT company_name, company_phone FROM companies WHERE company_id = 1");
$row = mysqli_fetch_array($sql);
$company_name = sanitizeInput($row['company_name']);
$company_phone = sanitizeInput(formatPhoneNumber($row['company_phone']));
@@ -722,7 +703,6 @@ if (isset($_POST['bulk_close_tickets'])) {
$_SESSION['alert_message'] = "You closed $ticket_count Tickets";
header("Location: " . $_SERVER["HTTP_REFERER"]);
-
}
if (isset($_POST['bulk_ticket_reply'])) {
@@ -734,7 +714,7 @@ if (isset($_POST['bulk_ticket_reply'])) {
$ticket_reply = mysqli_escape_string($mysqli, $_POST['bulk_reply_details']);
$ticket_status = sanitizeInput($_POST['bulk_status']);
$private_note = intval($_POST['bulk_private_reply']);
- if($private_note == 1){
+ if ($private_note == 1) {
$ticket_reply_type = 'Internal';
} else {
$ticket_reply_type = 'Public';
@@ -742,10 +722,10 @@ if (isset($_POST['bulk_ticket_reply'])) {
// Get a Ticket Count
$ticket_count = count($_POST['ticket_ids']);
-
+
// Loop Through Tickets and Add Reply along with Email notifications
if (!empty($_POST['ticket_ids'])) {
- foreach($_POST['ticket_ids'] as $ticket_id) {
+ foreach ($_POST['ticket_ids'] as $ticket_id) {
$ticket_id = intval($ticket_id);
$sql = mysqli_query($mysqli, "SELECT * FROM tickets WHERE ticket_id = $ticket_id");
@@ -758,18 +738,20 @@ if (isset($_POST['bulk_ticket_reply'])) {
$client_id = intval($row['ticket_client_id']);
// Add reply
- mysqli_query($mysqli,"INSERT INTO ticket_replies SET ticket_reply = '$ticket_reply', ticket_reply_time_worked = '00:01:00', ticket_reply_type = '$ticket_reply_type', ticket_reply_by = $session_user_id, ticket_reply_ticket_id = $ticket_id");
+ mysqli_query($mysqli, "INSERT INTO ticket_replies SET ticket_reply = '$ticket_reply', ticket_reply_time_worked = '00:01:00', ticket_reply_type = '$ticket_reply_type', ticket_reply_by = $session_user_id, ticket_reply_ticket_id = $ticket_id");
$ticket_reply_id = mysqli_insert_id($mysqli);
// Update Ticket Status
- mysqli_query($mysqli,"UPDATE tickets SET ticket_status = '$ticket_status' WHERE ticket_id = $ticket_id");
+ mysqli_query($mysqli, "UPDATE tickets SET ticket_status = '$ticket_status' WHERE ticket_id = $ticket_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");
+ 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");
// Get Contact Details
- $sql = mysqli_query($mysqli,"SELECT contact_name, contact_email, ticket_created_by, ticket_assigned_to
+ $sql = mysqli_query(
+ $mysqli,
+ "SELECT contact_name, contact_email, ticket_created_by, ticket_assigned_to
FROM tickets
LEFT JOIN contacts ON ticket_contact_id = contact_id
WHERE ticket_id = $ticket_id"
@@ -787,7 +769,7 @@ if (isset($_POST['bulk_ticket_reply'])) {
$from_email = sanitizeInput($config_ticket_from_email);
$base_url = sanitizeInput($config_base_url);
- $sql = mysqli_query($mysqli,"SELECT company_name, company_phone FROM companies WHERE company_id = 1");
+ $sql = mysqli_query($mysqli, "SELECT company_name, company_phone FROM companies WHERE company_id = 1");
$row = mysqli_fetch_array($sql);
$company_name = sanitizeInput($row['company_name']);
$company_phone = sanitizeInput(formatPhoneNumber($row['company_phone']));
@@ -828,7 +810,6 @@ if (isset($_POST['bulk_ticket_reply'])) {
'subject' => $subject,
'body' => $body
];
-
}
}
addToMailQueue($mysqli, $data);
@@ -837,15 +818,14 @@ if (isset($_POST['bulk_ticket_reply'])) {
// Notification for assigned ticket user
if ($session_user_id != $ticket_assigned_to && $ticket_assigned_to != 0) {
- 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_action = 'ticket.php?ticket_id=$ticket_id', notification_client_id = $client_id, notification_user_id = $ticket_assigned_to");
+ 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_action = 'ticket.php?ticket_id=$ticket_id', notification_client_id = $client_id, notification_user_id = $ticket_assigned_to");
}
// Notification for user that opened the ticket
if ($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_action = 'ticket.php?ticket_id=$ticket_id', notification_client_id = $client_id, notification_user_id = $ticket_created_by");
+ 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_action = 'ticket.php?ticket_id=$ticket_id', notification_client_id = $client_id, notification_user_id = $ticket_created_by");
}
-
} // End Ticket Lopp
}
@@ -853,7 +833,6 @@ if (isset($_POST['bulk_ticket_reply'])) {
$_SESSION['alert_message'] = "You updated $ticket_count tickets";
header("Location: " . $_SERVER["HTTP_REFERER"]);
-
}
if (isset($_POST['add_ticket_reply'])) {
@@ -861,7 +840,7 @@ if (isset($_POST['add_ticket_reply'])) {
validateTechRole();
$ticket_id = intval($_POST['ticket_id']);
- $ticket_reply = mysqli_real_escape_string($mysqli,$_POST['ticket_reply']);
+ $ticket_reply = mysqli_real_escape_string($mysqli, $_POST['ticket_reply']);
$ticket_status = sanitizeInput($_POST['status']);
// Handle the time inputs for hours, minutes, and seconds
$hours = intval($_POST['hours']);
@@ -883,19 +862,19 @@ 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");
+ 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");
$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");
+ mysqli_query($mysqli, "UPDATE tickets SET ticket_status = '$ticket_status' WHERE ticket_id = $ticket_id");
if ($ticket_status == 'Closed') {
- mysqli_query($mysqli,"UPDATE tickets SET ticket_closed_at = NOW() WHERE ticket_id = $ticket_id");
+ mysqli_query($mysqli, "UPDATE tickets SET ticket_closed_at = NOW() WHERE ticket_id = $ticket_id");
}
// Get Ticket Details
- $ticket_sql = mysqli_query($mysqli,"SELECT contact_name, contact_email, ticket_prefix, ticket_number, ticket_subject, ticket_client_id, ticket_created_by, ticket_assigned_to
+ $ticket_sql = mysqli_query($mysqli, "SELECT contact_name, contact_email, ticket_prefix, ticket_number, ticket_subject, 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
@@ -918,7 +897,7 @@ if (isset($_POST['add_ticket_reply'])) {
$config_ticket_from_email = sanitizeInput($config_ticket_from_email);
$config_base_url = sanitizeInput($config_base_url);
- $sql = mysqli_query($mysqli,"SELECT company_name, company_phone FROM companies WHERE company_id = 1");
+ $sql = mysqli_query($mysqli, "SELECT company_name, company_phone FROM companies WHERE company_id = 1");
$row = mysqli_fetch_array($sql);
$company_name = sanitizeInput($row['company_name']);
$company_phone = sanitizeInput(formatPhoneNumber($row['company_phone']));
@@ -933,15 +912,12 @@ if (isset($_POST['add_ticket_reply'])) {
if ($ticket_status == 'Closed') {
$subject = "Ticket closed - [$ticket_prefix$ticket_number] - $ticket_subject | (do not reply)";
$body = "Hello $contact_name, Your ticket regarding $ticket_subject has been closed. -------------------------------- $ticket_reply -------------------------------- We hope the issue was resolved to your satisfaction. If you need further assistance, please raise a new ticket using the below details. Please do not reply to this email. Ticket: $ticket_prefix$ticket_number Subject: $ticket_subject Portal: https://$config_base_url/portal/ticket.php?id=$ticket_id -- $company_name - Support $config_ticket_from_email $company_phone";
-
} elseif ($ticket_status == 'Auto Close') {
$subject = "Ticket update - [$ticket_prefix$ticket_number] - $ticket_subject | (pending closure)";
$body = "##- Please type your reply above this line -## Hello $contact_name, Your ticket regarding $ticket_subject has been updated and is pending closure. -------------------------------- $ticket_reply -------------------------------- If your issue is resolved, you can ignore this email. If you need further assistance, please respond! Ticket: $ticket_prefix$ticket_number Subject: $ticket_subject Status: $ticket_status Portal: https://$config_base_url/portal/ticket.php?id=$ticket_id -- $company_name - Support $config_ticket_from_email $company_phone";
-
} else {
$subject = "Ticket update - [$ticket_prefix$ticket_number] - $ticket_subject";
$body = "##- Please type your reply above this line -## Hello $contact_name, Your ticket regarding $ticket_subject has been updated. -------------------------------- $ticket_reply -------------------------------- Ticket: $ticket_prefix$ticket_number Subject: $ticket_subject Status: $ticket_status Portal: https://$config_base_url/portal/ticket.php?id=$ticket_id -- $company_name - Support $config_ticket_from_email $company_phone";
-
}
$data = [];
@@ -972,7 +948,6 @@ if (isset($_POST['add_ticket_reply'])) {
'subject' => $subject,
'body' => $body
];
-
}
addToMailQueue($mysqli, $data);
}
@@ -982,22 +957,21 @@ if (isset($_POST['add_ticket_reply'])) {
// Notification for assigned ticket user
if ($session_user_id != $ticket_assigned_to && $ticket_assigned_to != 0) {
- 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_action = 'ticket.php?ticket_id=$ticket_id', notification_client_id = $client_id, notification_user_id = $ticket_assigned_to");
+ 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_action = 'ticket.php?ticket_id=$ticket_id', notification_client_id = $client_id, notification_user_id = $ticket_assigned_to");
}
// Notification for user that opened the ticket
if ($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_action = 'ticket.php?ticket_id=$ticket_id', notification_client_id = $client_id, notification_user_id = $ticket_created_by");
+ 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_action = 'ticket.php?ticket_id=$ticket_id', notification_client_id = $client_id, notification_user_id = $ticket_created_by");
}
// 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");
+ 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");
$_SESSION['alert_message'] = "Ticket $ticket_prefix$ticket_number has been updated with your reply and was $ticket_reply_type ";
header("Location: " . $_SERVER["HTTP_REFERER"]);
-
}
if (isset($_POST['edit_ticket_reply'])) {
@@ -1005,20 +979,19 @@ if (isset($_POST['edit_ticket_reply'])) {
validateTechRole();
$ticket_reply_id = intval($_POST['ticket_reply_id']);
- $ticket_reply = mysqli_real_escape_string($mysqli,$_POST['ticket_reply']);
+ $ticket_reply = mysqli_real_escape_string($mysqli, $_POST['ticket_reply']);
$ticket_reply_time_worked = sanitizeInput($_POST['time']);
$client_id = intval($_POST['client_id']);
- mysqli_query($mysqli,"UPDATE ticket_replies SET ticket_reply = '$ticket_reply', ticket_reply_time_worked = '$ticket_reply_time_worked' WHERE ticket_reply_id = $ticket_reply_id AND ticket_reply_type != 'Client'") or die(mysqli_error($mysqli));
+ mysqli_query($mysqli, "UPDATE ticket_replies SET ticket_reply = '$ticket_reply', ticket_reply_time_worked = '$ticket_reply_time_worked' WHERE ticket_reply_id = $ticket_reply_id AND ticket_reply_type != 'Client'") or die(mysqli_error($mysqli));
//Logging
- mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Ticket Reply', log_action = 'Modify', log_description = '$session_name modified ticket 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");
+ mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket Reply', log_action = 'Modify', log_description = '$session_name modified ticket 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");
$_SESSION['alert_message'] = "Ticket reply updated";
header("Location: " . $_SERVER["HTTP_REFERER"]);
-
}
if (isset($_GET['archive_ticket_reply'])) {
@@ -1027,16 +1000,15 @@ if (isset($_GET['archive_ticket_reply'])) {
$ticket_reply_id = intval($_GET['archive_ticket_reply']);
- mysqli_query($mysqli,"UPDATE ticket_replies SET ticket_reply_archived_at = NOW() WHERE ticket_reply_id = $ticket_reply_id");
+ mysqli_query($mysqli, "UPDATE ticket_replies SET ticket_reply_archived_at = NOW() WHERE ticket_reply_id = $ticket_reply_id");
//Logging
- mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Ticket Reply', log_action = 'Archive', log_description = '$session_name arhived ticket reply', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id, log_entity_id = $ticket_reply_id");
+ mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket Reply', log_action = 'Archive', log_description = '$session_name arhived ticket reply', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id, log_entity_id = $ticket_reply_id");
$_SESSION['alert_type'] = "error";
$_SESSION['alert_message'] = "Ticket reply archived";
header("Location: " . $_SERVER["HTTP_REFERER"]);
-
}
if (isset($_POST['merge_ticket'])) {
@@ -1078,19 +1050,18 @@ if (isset($_POST['merge_ticket'])) {
}
//Update current ticket
- mysqli_query($mysqli,"INSERT INTO ticket_replies SET ticket_reply = 'Ticket $ticket_prefix$ticket_number merged into $ticket_prefix$merge_into_ticket_number. Comment: $merge_comment', ticket_reply_time_worked = '00:01:00', ticket_reply_type = '$ticket_reply_type', ticket_reply_by = $session_user_id, ticket_reply_ticket_id = $ticket_id") or die(mysqli_error($mysqli));
- mysqli_query($mysqli,"UPDATE tickets SET ticket_status = 'Closed', ticket_closed_at = NOW() WHERE ticket_id = $ticket_id") or die(mysqli_error($mysqli));
+ mysqli_query($mysqli, "INSERT INTO ticket_replies SET ticket_reply = 'Ticket $ticket_prefix$ticket_number merged into $ticket_prefix$merge_into_ticket_number. Comment: $merge_comment', ticket_reply_time_worked = '00:01:00', ticket_reply_type = '$ticket_reply_type', ticket_reply_by = $session_user_id, ticket_reply_ticket_id = $ticket_id") or die(mysqli_error($mysqli));
+ mysqli_query($mysqli, "UPDATE tickets SET ticket_status = 'Closed', ticket_closed_at = NOW() WHERE ticket_id = $ticket_id") or die(mysqli_error($mysqli));
//Update new ticket
- mysqli_query($mysqli,"INSERT INTO ticket_replies SET ticket_reply = 'Ticket $ticket_prefix$ticket_number was merged into this ticket with comment: $merge_comment.$ticket_subject $ticket_details', ticket_reply_time_worked = '00:01:00', ticket_reply_type = '$ticket_reply_type', ticket_reply_by = $session_user_id, ticket_reply_ticket_id = $merge_into_ticket_id") or die(mysqli_error($mysqli));
+ mysqli_query($mysqli, "INSERT INTO ticket_replies SET ticket_reply = 'Ticket $ticket_prefix$ticket_number was merged into this ticket with comment: $merge_comment.$ticket_subject $ticket_details', ticket_reply_time_worked = '00:01:00', ticket_reply_type = '$ticket_reply_type', ticket_reply_by = $session_user_id, ticket_reply_ticket_id = $merge_into_ticket_id") or die(mysqli_error($mysqli));
//Logging
- mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Ticket', log_action = 'Merged', log_description = 'Merged ticket $ticket_prefix$ticket_number into $ticket_prefix$merge_into_ticket_number', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id");
+ mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Merged', log_description = 'Merged ticket $ticket_prefix$ticket_number into $ticket_prefix$merge_into_ticket_number', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id");
$_SESSION['alert_message'] = "Ticket merged into $ticket_prefix$merge_into_ticket_number";
header("Location: " . $_SERVER["HTTP_REFERER"]);
-
}
if (isset($_POST['change_client_ticket'])) {
@@ -1113,7 +1084,6 @@ if (isset($_POST['change_client_ticket'])) {
$_SESSION['alert_message'] = "Ticket client updated";
header("Location: " . $_SERVER["HTTP_REFERER"]);
-
}
if (isset($_GET['close_ticket'])) {
@@ -1122,18 +1092,18 @@ if (isset($_GET['close_ticket'])) {
$ticket_id = intval($_GET['close_ticket']);
- mysqli_query($mysqli,"UPDATE tickets SET ticket_status = 'Closed', ticket_closed_at = NOW(), ticket_closed_by = $session_user_id WHERE ticket_id = $ticket_id") or die(mysqli_error($mysqli));
+ mysqli_query($mysqli, "UPDATE tickets SET ticket_status = 'Closed', ticket_closed_at = NOW(), ticket_closed_by = $session_user_id WHERE ticket_id = $ticket_id") or die(mysqli_error($mysqli));
- mysqli_query($mysqli,"INSERT INTO ticket_replies SET ticket_reply = 'Ticket closed.', ticket_reply_type = 'Internal', ticket_reply_time_worked = '00:01:00', ticket_reply_by = $session_user_id, ticket_reply_ticket_id = $ticket_id");
+ mysqli_query($mysqli, "INSERT INTO ticket_replies SET ticket_reply = 'Ticket closed.', ticket_reply_type = 'Internal', ticket_reply_time_worked = '00:01:00', ticket_reply_by = $session_user_id, ticket_reply_ticket_id = $ticket_id");
//Logging
- mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Ticket', log_action = 'Closed', log_description = 'Ticket ID $ticket_id Closed', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id, log_entity_id = $ticket_id");
+ mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Closed', log_description = 'Ticket ID $ticket_id Closed', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id, log_entity_id = $ticket_id");
// Client notification email
if (!empty($config_smtp_host) && $config_ticket_client_general_notifications == 1) {
// Get details
- $ticket_sql = mysqli_query($mysqli,"SELECT contact_name, contact_email, ticket_prefix, ticket_number, ticket_subject FROM tickets
+ $ticket_sql = mysqli_query($mysqli, "SELECT contact_name, contact_email, ticket_prefix, ticket_number, ticket_subject FROM tickets
LEFT JOIN clients ON ticket_client_id = client_id
LEFT JOIN contacts ON ticket_contact_id = contact_id
WHERE ticket_id = $ticket_id
@@ -1156,7 +1126,7 @@ if (isset($_GET['close_ticket'])) {
$config_base_url = sanitizeInput($config_base_url);
// Get Company Info
- $sql = mysqli_query($mysqli,"SELECT company_name, company_phone FROM companies WHERE company_id = 1");
+ $sql = mysqli_query($mysqli, "SELECT company_name, company_phone FROM companies WHERE company_id = 1");
$row = mysqli_fetch_array($sql);
$company_name = sanitizeInput($row['company_name']);
$company_phone = sanitizeInput(formatPhoneNumber($row['company_phone']));
@@ -1199,13 +1169,11 @@ if (isset($_GET['close_ticket'])) {
}
addToMailQueue($mysqli, $data);
}
-
}
//End Mail IF
$_SESSION['alert_message'] = "Ticket Closed, this cannot not be reopened but you may start another one";
header("Location: " . $_SERVER["HTTP_REFERER"]);
-
}
if (isset($_POST['add_invoice_from_ticket'])) {
@@ -1216,7 +1184,9 @@ if (isset($_POST['add_invoice_from_ticket'])) {
$category = intval($_POST['category']);
$scope = sanitizeInput($_POST['scope']);
- $sql = mysqli_query($mysqli, "SELECT * FROM tickets
+ $sql = mysqli_query(
+ $mysqli,
+ "SELECT * FROM tickets
LEFT JOIN clients ON ticket_client_id = client_id
LEFT JOIN contacts ON ticket_contact_id = contact_id
LEFT JOIN assets ON ticket_asset_id = asset_id
@@ -1252,12 +1222,12 @@ if (isset($_POST['add_invoice_from_ticket'])) {
//Get the last Invoice Number and add 1 for the new invoice number
$invoice_number = $config_invoice_next_number;
$new_config_invoice_next_number = $config_invoice_next_number + 1;
- mysqli_query($mysqli,"UPDATE settings SET config_invoice_next_number = $new_config_invoice_next_number WHERE company_id = 1");
+ mysqli_query($mysqli, "UPDATE settings SET config_invoice_next_number = $new_config_invoice_next_number WHERE company_id = 1");
//Generate a unique URL key for clients to access
$url_key = randomString(156);
- mysqli_query($mysqli,"INSERT INTO invoices SET invoice_prefix = '$config_invoice_prefix', invoice_number = $invoice_number, invoice_scope = '$scope', invoice_date = '$date', invoice_due = DATE_ADD('$date', INTERVAL $client_net_terms day), invoice_currency_code = '$session_company_currency', invoice_category_id = $category, invoice_status = 'Draft', invoice_url_key = '$url_key', invoice_client_id = $client_id");
+ mysqli_query($mysqli, "INSERT INTO invoices SET invoice_prefix = '$config_invoice_prefix', invoice_number = $invoice_number, invoice_scope = '$scope', invoice_date = '$date', invoice_due = DATE_ADD('$date', INTERVAL $client_net_terms day), invoice_currency_code = '$session_company_currency', invoice_category_id = $category, invoice_status = 'Draft', invoice_url_key = '$url_key', invoice_client_id = $client_id");
$invoice_id = mysqli_insert_id($mysqli);
}
@@ -1271,7 +1241,7 @@ if (isset($_POST['add_invoice_from_ticket'])) {
$subtotal = $price * $qty;
if ($tax_id > 0) {
- $sql = mysqli_query($mysqli,"SELECT * FROM taxes WHERE tax_id = $tax_id");
+ $sql = mysqli_query($mysqli, "SELECT * FROM taxes WHERE tax_id = $tax_id");
$row = mysqli_fetch_array($sql);
$tax_percent = floatval($row['tax_percent']);
$tax_amount = $subtotal * $tax_percent / 100;
@@ -1281,25 +1251,25 @@ if (isset($_POST['add_invoice_from_ticket'])) {
$total = $subtotal + $tax_amount;
- mysqli_query($mysqli,"INSERT INTO invoice_items SET item_name = '$item_name', item_description = '$item_description', item_quantity = $qty, item_price = $price, item_subtotal = $subtotal, item_tax = $tax_amount, item_total = $total, item_order = 1, item_tax_id = $tax_id, item_invoice_id = $invoice_id");
+ mysqli_query($mysqli, "INSERT INTO invoice_items SET item_name = '$item_name', item_description = '$item_description', item_quantity = $qty, item_price = $price, item_subtotal = $subtotal, item_tax = $tax_amount, item_total = $total, item_order = 1, item_tax_id = $tax_id, item_invoice_id = $invoice_id");
//Update Invoice Balances
- $sql = mysqli_query($mysqli,"SELECT * FROM invoices WHERE invoice_id = $invoice_id");
+ $sql = mysqli_query($mysqli, "SELECT * FROM invoices WHERE invoice_id = $invoice_id");
$row = mysqli_fetch_array($sql);
$new_invoice_amount = floatval($row['invoice_amount']) + $total;
- mysqli_query($mysqli,"UPDATE invoices SET invoice_amount = $new_invoice_amount WHERE invoice_id = $invoice_id");
+ mysqli_query($mysqli, "UPDATE invoices SET invoice_amount = $new_invoice_amount WHERE invoice_id = $invoice_id");
- mysqli_query($mysqli,"INSERT INTO history SET history_status = 'Draft', history_description = 'Invoice created from Ticket $ticket_prefix$ticket_number', history_invoice_id = $invoice_id");
+ mysqli_query($mysqli, "INSERT INTO history SET history_status = 'Draft', history_description = 'Invoice created from Ticket $ticket_prefix$ticket_number', history_invoice_id = $invoice_id");
// Add internal note to ticket, and link to invoice in database
mysqli_query($mysqli, "INSERT INTO ticket_replies SET ticket_reply = 'Created invoice $config_invoice_prefix$invoice_number for this ticket.', ticket_reply_type = 'Internal', ticket_reply_time_worked = '00:01:00', ticket_reply_by = $session_user_id, ticket_reply_ticket_id = $ticket_id");
mysqli_query($mysqli, "UPDATE tickets SET ticket_invoice_id = $invoice_id WHERE ticket_id = $ticket_id");
// Logging
- mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Invoice', log_action = 'Create', log_description = '$config_invoice_prefix$invoice_number created from Ticket $ticket_prefix$ticket_number', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id");
+ mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Invoice', log_action = 'Create', log_description = '$config_invoice_prefix$invoice_number created from Ticket $ticket_prefix$ticket_number', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id");
$_SESSION['alert_message'] = "Invoice created from ticket";
@@ -1313,12 +1283,12 @@ if (isset($_POST['export_client_tickets_csv'])) {
$client_id = intval($_POST['client_id']);
//get records from database
- $sql = mysqli_query($mysqli,"SELECT * FROM clients WHERE client_id = $client_id");
+ $sql = mysqli_query($mysqli, "SELECT * FROM clients WHERE client_id = $client_id");
$row = mysqli_fetch_array($sql);
$client_name = $row['client_name'];
- $sql = mysqli_query($mysqli,"SELECT * FROM tickets WHERE ticket_client_id = $client_id ORDER BY ticket_number ASC");
+ $sql = mysqli_query($mysqli, "SELECT * FROM tickets WHERE ticket_client_id = $client_id ORDER BY ticket_number ASC");
if ($sql->num_rows > 0) {
$delimiter = ",";
$filename = $client_name . "-Tickets-" . date('Y-m-d') . ".csv";
@@ -1331,7 +1301,7 @@ if (isset($_POST['export_client_tickets_csv'])) {
fputcsv($f, $fields, $delimiter);
//output each row of the data, format line as csv and write to file pointer
- while($row = $sql->fetch_assoc()) {
+ while ($row = $sql->fetch_assoc()) {
$lineData = array($row['ticket_number'], $row['ticket_priority'], $row['ticket_status'], $row['ticket_subject'], $row['ticket_created_at'], $row['ticket_closed_at']);
fputcsv($f, $lineData, $delimiter);
}
@@ -1347,7 +1317,6 @@ if (isset($_POST['export_client_tickets_csv'])) {
fpassthru($f);
}
exit;
-
}
if (isset($_POST['add_scheduled_ticket'])) {
@@ -1360,7 +1329,7 @@ if (isset($_POST['add_scheduled_ticket'])) {
// If no contact is selected automatically choose the primary contact for the client
if ($client_id > 0 && $contact_id == 0) {
- $sql = mysqli_query($mysqli,"SELECT contact_id FROM contacts WHERE contact_client_id = $client_id AND contact_primary = 1");
+ $sql = mysqli_query($mysqli, "SELECT contact_id FROM contacts WHERE contact_client_id = $client_id AND contact_primary = 1");
$row = mysqli_fetch_array($sql);
$contact_id = intval($row['contact_id']);
}
@@ -1376,7 +1345,6 @@ if (isset($_POST['add_scheduled_ticket'])) {
$_SESSION['alert_message'] = "Scheduled ticket $subject - $frequency created";
header("Location: " . $_SERVER["HTTP_REFERER"]);
-
}
if (isset($_POST['edit_scheduled_ticket'])) {
@@ -1390,7 +1358,7 @@ if (isset($_POST['edit_scheduled_ticket'])) {
// If no contact is selected automatically choose the primary contact for the client
if ($client_id > 0 && $contact_id == 0) {
- $sql = mysqli_query($mysqli,"SELECT contact_id FROM contacts WHERE contact_client_id = $client_id AND contact_primary = 1");
+ $sql = mysqli_query($mysqli, "SELECT contact_id FROM contacts WHERE contact_client_id = $client_id AND contact_primary = 1");
$row = mysqli_fetch_array($sql);
$contact_id = intval($row['contact_id']);
}
@@ -1404,7 +1372,6 @@ if (isset($_POST['edit_scheduled_ticket'])) {
$_SESSION['alert_message'] = "Scheduled ticket $subject - $frequency updated";
header("Location: " . $_SERVER["HTTP_REFERER"]);
-
}
if (isset($_GET['delete_scheduled_ticket'])) {
@@ -1455,21 +1422,21 @@ if (isset($_POST['bulk_delete_scheduled_tickets'])) {
mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Scheduled Ticket', log_action = 'Delete', log_description = '$session_name bulk deleted $count scheduled tickets', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id");
$_SESSION['alert_message'] = "Deleted $count scheduled ticket(s)";
-
}
header("Location: " . $_SERVER["HTTP_REFERER"]);
}
-if(isset($_POST['set_billable_status'])) {
+if (isset($_POST['set_billable_status'])) {
validateTechRole();
$ticket_id = intval($_POST['ticket_id']);
$billable_status = sanitizeInput($_POST['billable_status']);
- mysqli_query($mysqli,
- "UPDATE tickets SET
+ mysqli_query(
+ $mysqli,
+ "UPDATE tickets SET
ticket_billable = '$billable_status'
WHERE ticket_id = $ticket_id"
);
@@ -1485,32 +1452,36 @@ if(isset($_POST['set_billable_status'])) {
log_user_agent = '$session_user_agent',
log_user_id = $session_user_id,
log_entity_id = $ticket_id"
- );
+ );
$_SESSION['alert_message'] = "Ticket billable status updated";
header("Location: " . $_SERVER["HTTP_REFERER"]);
-
}
if (isset($_POST['edit_ticket_schedule'])) {
+
validateTechRole();
$ticket_id = intval($_POST['ticket_id']);
+ $onsite = intval($_POST['onsite']);
$schedule = sanitizeInput($_POST['scheduled_date_time']);
$ticket_link = "ticket.php?ticket_id=$ticket_id";
$full_ticket_url = "https://$config_base_url/portal/ticket.php?ticket_id=$ticket_id";
$ticket_link_html = "$ticket_link ";
- mysqli_query($mysqli,
- "UPDATE tickets SET
+ mysqli_query(
+ $mysqli,
+ "UPDATE tickets SET
ticket_schedule = '$schedule',
ticket_status = 'Scheduled'
WHERE ticket_id = $ticket_id"
);
+
// Check for other conflicting scheduled items based on 2 hr window
+ //TODO make this configurable
$start = date('Y-m-d H:i:s', strtotime($schedule) - 7200);
$end = date('Y-m-d H:i:s', strtotime($schedule) + 7200);
$sql = mysqli_query($mysqli, "SELECT * FROM tickets WHERE ticket_schedule BETWEEN '$start' AND '$end' AND ticket_id != $ticket_id AND ticket_status = 'Scheduled'");
@@ -1519,78 +1490,118 @@ if (isset($_POST['edit_ticket_schedule'])) {
while ($row = mysqli_fetch_array($sql)) {
$conflicting_tickets[] = $row['ticket_id'] . " - " . $row['ticket_subject'] . " @ " . $row['ticket_schedule'];
}
- $_SESSION['alert_message'] = "Ticket scheduled, but there are other tickets scheduled within 2 hours of this time. Please check the schedule for tickets: " . implode(", ", $conflicting_tickets);
- header("Location: " . $_SERVER["HTTP_REFERER"]);
-
- }else {
- //Send email to client and assigned user
-
- $sql = mysqli_query($mysqli,"SELECT * FROM tickets
- LEFT JOIN clients ON ticket_client_id = client_id
- LEFT JOIN contacts ON ticket_contact_id = contact_id
- LEFT JOIN users ON ticket_assigned_to = user_id
- WHERE ticket_id = $ticket_id
- ");
-
- $row = mysqli_fetch_array($sql);
-
- $client_id = intval($row['ticket_client_id']);
- $client_name = sanitizeInput($row['client_name']);
- $ticket_details = sanitizeInput($row['ticket_details']);
- $contact_name = sanitizeInput($row['contact_name']);
- $contact_email = sanitizeInput($row['contact_email']);
- $ticket_prefix = sanitizeInput($row['ticket_prefix']);
- $ticket_number = intval($row['ticket_number']);
- $ticket_subject = sanitizeInput($row['ticket_subject']);
+ }
+ $sql = mysqli_query($mysqli, "SELECT * FROM tickets
+ LEFT JOIN clients ON ticket_client_id = client_id
+ LEFT JOIN contacts ON ticket_contact_id = contact_id
+ LEFT JOIN locations on contact_location_id = location_id
+ LEFT JOIN users ON ticket_assigned_to = user_id
+ WHERE ticket_id = $ticket_id
+ ");
- $cal_subject = $ticket_number . ": " .$client_name . " - " . $ticket_subject;
- $cal_description = $ticket_details . " - " . $full_ticket_url;
+ $row = mysqli_fetch_array($sql);
- $cal_str = createCalendarEvent($schedule, $cal_subject, $cal_description, $cal_location);
-
- $data = [
- [
- 'from' => $config_ticket_from_email,
- 'from_name' => $config_ticket_from_name,
- 'recipient' => $contact_email,
- 'recipient_name' => $contact_name,
- 'subject' => "Ticket Scheduled - [$ticket_prefix$ticket_number] - $ticket_subject",
- 'body' => "Hello, $contact_name Your ticket regarding $ticket_subject has been scheduled for $schedule. --------------------------------$ticket_link -------------------------------- Please do not reply to this email. Ticket: $ticket_prefix$ticket_number Subject: $ticket_subject Portal: https://$config_base_url/portal/ticket.php?id=$ticket_id ~ $session_company_name Support Department $config_ticket_from_email $company_phone",
- 'cal_str' => $cal_str
- ],
- [
- 'from' => $config_ticket_from_email,
- 'from_name' => $config_ticket_from_name,
- 'recipient' => $row['user_email'],
- 'recipient_name' => $row['user_first_name'] . ' ' . $row['user_last_name'],
- 'subject' => "Ticket Scheduled - [$ticket_prefix$ticket_number] - $ticket_subject",
- 'body' => "Hello, " . $row['user_first_name'] . " The ticket regarding $ticket_subject has been scheduled for $schedule. --------------------------------$ticket_link -------------------------------- Please do not reply to this email. Ticket: $ticket_prefix$ticket_number Subject: $ticket_subject Portal: https://$config_base_url/portal/ticket.php?id=$ticket_id ~ $session_company_name Support Department $config_ticket_from_email $company_phone",
- 'cal_str' => $cal_str
- ]
+ $client_id = intval($row['ticket_client_id']);
+ $client_name = sanitizeInput($row['client_name']);
+ $ticket_details = sanitizeInput($row['ticket_details']);
+ $contact_name = sanitizeInput($row['contact_name']);
+ $contact_email = sanitizeInput($row['contact_email']);
+ $ticket_prefix = sanitizeInput($row['ticket_prefix']);
+ $ticket_number = intval($row['ticket_number']);
+ $ticket_subject = sanitizeInput($row['ticket_subject']);
+ $user_name = sanitizeInput($row['user_name']);
+ $user_email = sanitizeInput($row['user_email']);
+ $cal_subject = $ticket_number . ": " . $client_name . " - " . $ticket_subject;
+ $cal_description = $ticket_details . " - " . $full_ticket_url;
+ $cal_location = sanitizeInput($row["location_address"]);
+ $email_datetime = date('l, F j, Y \a\t g:ia', strtotime($schedule));
+
+ /// Create iCal event
+ $cal_str = createiCalStr($schedule, $cal_subject, $cal_description, $cal_location);
+
+ $data = [
+ [ //Client Contact Email
+ 'from' => $config_ticket_from_email,
+ 'from_name' => $config_ticket_from_name,
+ 'recipient' => $contact_email,
+ 'recipient_name' => $contact_name,
+ 'subject' => "Ticket Scheduled - [$ticket_prefix$ticket_number] - $ticket_subject",
+ 'body' => mysqli_escape_string($mysqli, "
+ Your ticket regarding $ticket_subject has been scheduled for $email_datetime.
+
+ Access your ticket here
+
+ Please do not reply to this email.
+
+ Ticket: $ticket_prefix$ticket_number
+ Subject: $ticket_subject
+
+
+
+ This is an automated message. Please do not reply directly to this email.
+
"),
+ 'cal_str' => $cal_str
+ ],
+ [
+ // User Email
+ 'from' => $config_ticket_from_email,
+ 'from_name' => $config_ticket_from_name,
+ 'recipient' => $user_email,
+ 'recipient_name' => $user_name,
+ 'subject' => "Ticket Scheduled - [$ticket_prefix$ticket_number] - $ticket_subject",
+ 'body' => "Hello, " . $user_name . " The ticket regarding $ticket_subject has been scheduled for $email_datetime. --------------------------------$ticket_link -------------------------------- Please do not reply to this email. Ticket: $ticket_prefix$ticket_number Subject: $ticket_subject Portal: https://$config_base_url/ticket.php?id=$ticket_id ~ $session_company_name Support Department $config_ticket_from_email",
+ 'cal_str' => $cal_str
+ ]
+ ];
+
+ //Send all watchers an email
+ $sql_watchers = mysqli_query($mysqli, "SELECT watcher_email FROM ticket_watchers WHERE watcher_ticket_id = $ticket_id");
+
+ while ($row = mysqli_fetch_array($sql_watchers)) {
+ $watcher_email = sanitizeInput($row['watcher_email']);
+ $data[] = [
+ 'from' => $config_ticket_from_email,
+ 'from_name' => $config_ticket_from_name,
+ 'recipient' => $watcher_email,
+ 'recipient_name' => $watcher_email,
+ 'subject' => "Ticket Scheduled - [$ticket_prefix$ticket_number] - $ticket_subject",
+ 'body' => mysqli_escape_string($mysqli, nullable_htmlentities("
+ Your ticket regarding $ticket_subject has been scheduled for $email_datetime.
+
+ $ticket_link
+
+ Please do not reply to this email.
+
+ Ticket: $ticket_prefix$ticket_number
+ Subject: $ticket_subject
+ Portal: Access your ticket here
+
+
+
+ This is an automated message. Please do not reply directly to this email.
+
")),
+ 'cal_str' => $cal_str
];
- //Send all watchers an email
- $sql_watchers = mysqli_query($mysqli, "SELECT watcher_email FROM ticket_watchers WHERE watcher_ticket_id = $ticket_id");
-
- while ($row = mysqli_fetch_array($sql_watchers)) {
- $watcher_email = sanitizeInput($row['watcher_email']);
- $data[] = [
- 'from' => $config_ticket_from_email,
- 'from_name' => $config_ticket_from_name,
- 'recipient' => $watcher_email,
- 'recipient_name' => $watcher_email,
- 'subject' => "Ticket Scheduled - [$ticket_prefix$ticket_number] - $ticket_subject",
- 'body' => "Hello, " . $watcher_email . " The ticket regarding $ticket_subject has been scheduled for $schedule. --------------------------------$ticket_link -------------------------------- Please do not reply to this email. Ticket: $ticket_prefix$ticket_number Subject: $ticket_subject Portal: https://$config_base_url/portal/ticket.php?id=$ticket_id ~ $session_company_name Support Department $config_ticket_from_email $company_phone",
- 'cal_str' => $cal_str
- ];
}
+
$response = addToMailQueue($mysqli, $data);
- // if response is not empty, then there was an error
- if (!empty($response)) {
- $_SESSION['alert_message'] = "Error sending email: " . $response;
- } else {
- $_SESSION['alert_message'] = "Ticket scheduled";
- }
+
+
// Update ticket reply
mysqli_query($mysqli, "INSERT INTO ticket_replies SET ticket_reply = 'Ticket scheduled for $schedule', ticket_reply_type = 'Internal', ticket_reply_time_worked = '00:05:00', ticket_reply_by = $session_user_id, ticket_reply_ticket_id = $ticket_id");
@@ -1605,12 +1616,18 @@ if (isset($_POST['edit_ticket_schedule'])) {
log_user_agent = '$session_user_agent',
log_user_id = $session_user_id,
log_entity_id = $ticket_id"
- );
+ );
- $_SESSION['alert_message'] = "Ticket schedule updated";
- header("Location: " . $_SERVER["HTTP_REFERER"]);
+ if(empty($conflicting_tickets)){
+ $_SESSION['alert_message'] = "Ticket scheduled for $email_datetime";
+ header("Location: " . $_SERVER["HTTP_REFERER"]);
+ } else {
+ $_SESSION['alert_type'] = "error";
+ $_SESSION['alert_message'] = "Ticket scheduled for $email_datetime. Yet there are conflicting tickets scheduled for the same time: " . implode(", ", $conflicting_tickets);
+ header("Location: calendar_events.php");
+ }
- }
+ exit;
+}
-}
\ No newline at end of file
diff --git a/ticket.php b/ticket.php
index 3b00376c..d678cd7b 100644
--- a/ticket.php
+++ b/ticket.php
@@ -59,6 +59,7 @@ if (isset($_GET['ticket_id'])) {
$ticket_priority = nullable_htmlentities($row['ticket_priority']);
$ticket_billable = intval($row['ticket_billable']);
$ticket_scheduled_for = nullable_htmlentities($row['ticket_schedule']);
+ $ticket_onsite = nullable_htmlentities($row['ticket_onsite']);
//Set Ticket Bage Color based of priority
if ($ticket_priority == "High") {
diff --git a/ticket_edit_schedule_modal.php b/ticket_edit_schedule_modal.php
index 2f510ddd..85bfa2cc 100644
--- a/ticket_edit_schedule_modal.php
+++ b/ticket_edit_schedule_modal.php
@@ -24,6 +24,13 @@
+
+ Onsite
+
+ >No
+ >Yes
+
+