mirror of https://github.com/itflow-org/itflow
Ticket Statuses from DB / use left join instead of a function, hard-code system statuses
This commit is contained in:
parent
a961b8aa72
commit
7df1d419fa
|
|
@ -38,6 +38,7 @@ $sql = mysqli_query(
|
|||
LEFT JOIN assets ON ticket_asset_id = asset_id
|
||||
LEFT JOIN locations ON ticket_location_id = location_id
|
||||
LEFT JOIN vendors ON ticket_vendor_id = vendor_id
|
||||
LEFT JOIN ticket_statuses ON ticket_status = ticket_status_id
|
||||
WHERE ticket_client_id = $client_id
|
||||
AND $ticket_status_snippet
|
||||
AND $ticket_billable_snippet
|
||||
|
|
@ -140,8 +141,9 @@ $total_scheduled_tickets = intval($row['total_scheduled_tickets']);
|
|||
$ticket_number = nullable_htmlentities($row['ticket_number']);
|
||||
$ticket_subject = nullable_htmlentities($row['ticket_subject']);
|
||||
$ticket_priority = nullable_htmlentities($row['ticket_priority']);
|
||||
$ticket_status_id = intval($row['ticket_status']);
|
||||
$ticket_status_name = sanitizeInput(getTicketStatusName($row['ticket_status']));
|
||||
$ticket_status_id = intval($row['ticket_status_id']);
|
||||
$ticket_status_name = nullable_htmlentities($row['ticket_status_name']);
|
||||
$ticket_status_color = nullable_htmlentities($row['ticket_status_color']);
|
||||
$ticket_billable = intval($row['ticket_billable']);
|
||||
$ticket_created_at = nullable_htmlentities($row['ticket_created_at']);
|
||||
$ticket_created_at_time_ago = timeAgo($row['ticket_created_at']);
|
||||
|
|
@ -158,8 +160,6 @@ $total_scheduled_tickets = intval($row['total_scheduled_tickets']);
|
|||
}
|
||||
$ticket_closed_at = nullable_htmlentities($row['ticket_closed_at']);
|
||||
|
||||
$ticket_status_color = getTicketStatusColor($ticket_status_id);
|
||||
|
||||
if ($ticket_priority == "High") {
|
||||
$ticket_priority_display = "<span class='p-2 badge badge-danger'>$ticket_priority</span>";
|
||||
} elseif ($ticket_priority == "Medium") {
|
||||
|
|
@ -180,7 +180,7 @@ $total_scheduled_tickets = intval($row['total_scheduled_tickets']);
|
|||
} else {
|
||||
$ticket_assigned_to_display = nullable_htmlentities($row['user_name']);
|
||||
}
|
||||
|
||||
|
||||
$project_id = intval($row['ticket_project_id']);
|
||||
|
||||
$contact_name = nullable_htmlentities($row['contact_name']);
|
||||
|
|
|
|||
16
cron.php
16
cron.php
|
|
@ -52,10 +52,6 @@ $config_ticket_client_general_notifications = intval($row['config_ticket_client_
|
|||
$config_ticket_autoclose = intval($row['config_ticket_autoclose']);
|
||||
$config_ticket_autoclose_hours = intval($row['config_ticket_autoclose_hours']);
|
||||
$config_ticket_new_ticket_notification_email = sanitizeInput($row['config_ticket_new_ticket_notification_email']);
|
||||
$config_ticket_status_id_new = intval($row['config_ticket_status_id_new']);
|
||||
$config_ticket_status_id_open = intval($row['config_ticket_status_id_open']);
|
||||
$config_ticket_status_id_autoclose = intval($row['config_ticket_status_id_autoclose']);
|
||||
$config_ticket_status_id_closed = intval($row['config_ticket_status_id_closed']);
|
||||
|
||||
// Get Config for Telemetry
|
||||
$config_theme = $row['config_theme'];
|
||||
|
|
@ -229,7 +225,7 @@ foreach ($warranty_alert_array as $day) {
|
|||
|
||||
// Notify of New Tickets
|
||||
// Get Ticket Pending Assignment
|
||||
$sql_tickets_pending_assignment = mysqli_query($mysqli,"SELECT ticket_id FROM tickets WHERE ticket_status = '$config_ticket_status_id_new'");
|
||||
$sql_tickets_pending_assignment = mysqli_query($mysqli,"SELECT ticket_id FROM tickets WHERE ticket_status = 1");
|
||||
|
||||
$tickets_pending_assignment = mysqli_num_rows($sql_tickets_pending_assignment);
|
||||
|
||||
|
|
@ -260,9 +256,9 @@ if (mysqli_num_rows($sql_scheduled_tickets) > 0) {
|
|||
$contact_id = intval($row['scheduled_ticket_contact_id']);
|
||||
$asset_id = intval($row['scheduled_ticket_asset_id']);
|
||||
|
||||
$ticket_status = $config_ticket_status_id_new; // Default
|
||||
$ticket_status = 1; // Default
|
||||
if ($assigned_id > 0) {
|
||||
$ticket_status = $config_ticket_status_id_open; // Set to open if we've auto-assigned an agent
|
||||
$ticket_status = 2; // Set to open if we've auto-assigned an agent
|
||||
}
|
||||
|
||||
// Assign this new ticket the next ticket number
|
||||
|
|
@ -383,7 +379,7 @@ if ($config_ticket_autoclose == 1) {
|
|||
$sql_tickets_to_chase = mysqli_query(
|
||||
$mysqli,
|
||||
"SELECT * FROM tickets
|
||||
WHERE ticket_status = '$config_ticket_status_id_autoclose'
|
||||
WHERE ticket_status = 4
|
||||
AND ticket_updated_at < NOW() - INTERVAL $config_ticket_autoclose_hours HOUR"
|
||||
);
|
||||
|
||||
|
|
@ -397,7 +393,7 @@ if ($config_ticket_autoclose == 1) {
|
|||
$ticket_assigned_to = sanitizeInput($row['ticket_assigned_to']);
|
||||
$client_id = intval($row['ticket_client_id']);
|
||||
|
||||
mysqli_query($mysqli,"UPDATE tickets SET ticket_status = '$config_ticket_status_id_closed', ticket_closed_at = NOW(), ticket_closed_by = $ticket_assigned_to WHERE ticket_id = $ticket_id");
|
||||
mysqli_query($mysqli,"UPDATE tickets SET ticket_status = 5, ticket_closed_at = NOW(), ticket_closed_by = $ticket_assigned_to WHERE ticket_id = $ticket_id");
|
||||
|
||||
//Logging
|
||||
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Ticket', log_action = 'Closed', log_description = '$ticket_prefix$ticket_number auto closed', log_entity_id = $ticket_id");
|
||||
|
|
@ -412,7 +408,7 @@ if ($config_ticket_autoclose == 1) {
|
|||
"SELECT contact_name, contact_email, ticket_id, ticket_prefix, ticket_number, ticket_subject, ticket_status, 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_status = '$config_ticket_status_id_autoclose'
|
||||
WHERE ticket_status = 4
|
||||
AND ticket_updated_at < NOW() - INTERVAL 48 HOUR"
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -110,7 +110,7 @@ $allowed_extensions = array('jpg', 'jpeg', 'gif', 'png', 'webp', 'pdf', 'txt', '
|
|||
function addTicket($contact_id, $contact_name, $contact_email, $client_id, $date, $subject, $message, $attachments) {
|
||||
|
||||
// Access global variables
|
||||
global $mysqli,$config_app_name, $company_name, $company_phone, $config_ticket_prefix, $config_ticket_client_general_notifications, $config_ticket_new_ticket_notification_email, $config_ticket_status_id_new, $config_ticket_status_id_closed, $config_base_url, $config_ticket_from_name, $config_ticket_from_email, $config_smtp_host, $config_smtp_port, $config_smtp_encryption, $config_smtp_username, $config_smtp_password, $allowed_extensions;
|
||||
global $mysqli,$config_app_name, $company_name, $company_phone, $config_ticket_prefix, $config_ticket_client_general_notifications, $config_ticket_new_ticket_notification_email, $config_base_url, $config_ticket_from_name, $config_ticket_from_email, $config_smtp_host, $config_smtp_port, $config_smtp_encryption, $config_smtp_username, $config_smtp_password, $allowed_extensions;
|
||||
|
||||
// Get the next Ticket Number and add 1 for the new ticket number
|
||||
$ticket_number_sql = mysqli_fetch_array(mysqli_query($mysqli, "SELECT config_ticket_next_number FROM settings WHERE company_id = 1"));
|
||||
|
|
@ -122,7 +122,7 @@ function addTicket($contact_id, $contact_name, $contact_email, $client_id, $date
|
|||
$message = nl2br($message);
|
||||
$message = mysqli_escape_string($mysqli, "<i>Email from: $contact_email at $date:-</i> <br><br>$message");
|
||||
|
||||
mysqli_query($mysqli, "INSERT INTO tickets SET ticket_prefix = '$config_ticket_prefix', ticket_number = $ticket_number, ticket_subject = '$subject', ticket_details = '$message', ticket_priority = 'Low', ticket_status = '$config_ticket_status_id_new', ticket_created_by = 0, ticket_contact_id = $contact_id, ticket_client_id = $client_id");
|
||||
mysqli_query($mysqli, "INSERT INTO tickets SET ticket_prefix = '$config_ticket_prefix', ticket_number = $ticket_number, ticket_subject = '$subject', ticket_details = '$message', ticket_priority = 'Low', ticket_status = 1, ticket_created_by = 0, ticket_contact_id = $contact_id, ticket_client_id = $client_id");
|
||||
$id = mysqli_insert_id($mysqli);
|
||||
|
||||
// Logging
|
||||
|
|
@ -213,7 +213,7 @@ function addReply($from_email, $date, $subject, $ticket_number, $message, $attac
|
|||
// Add email as a comment/reply to an existing ticket
|
||||
|
||||
// Access global variables
|
||||
global $mysqli, $config_app_name, $company_name, $company_phone, $config_ticket_prefix, $config_ticket_status_id_open, $config_ticket_status_id_closed, $config_base_url, $config_ticket_from_name, $config_ticket_from_email, $config_smtp_host, $config_smtp_port, $config_smtp_encryption, $config_smtp_username, $config_smtp_password, $allowed_extensions;
|
||||
global $mysqli, $config_app_name, $company_name, $company_phone, $config_ticket_prefix, $config_base_url, $config_ticket_from_name, $config_ticket_from_email, $config_smtp_host, $config_smtp_port, $config_smtp_encryption, $config_smtp_username, $config_smtp_password, $allowed_extensions;
|
||||
|
||||
// Set default reply type
|
||||
$ticket_reply_type = 'Client';
|
||||
|
|
@ -243,7 +243,7 @@ function addReply($from_email, $date, $subject, $ticket_number, $message, $attac
|
|||
$client_name = sanitizeInput($row['client_name']);
|
||||
|
||||
// Check ticket isn't closed - tickets can't be re-opened
|
||||
if ($ticket_status == $config_ticket_status_id_closed) {
|
||||
if ($ticket_status == 5) {
|
||||
mysqli_query($mysqli, "INSERT INTO notifications SET notification_type = 'Ticket', notification = 'Email parser: $from_email attempted to re-open ticket $config_ticket_prefix$ticket_number (ID $ticket_id) - check inbox manually to see email', notification_action = 'ticket.php?ticket_id=$ticket_id', notification_client_id = $client_id");
|
||||
|
||||
$email_subject = "Action required: This ticket is already closed";
|
||||
|
|
@ -360,7 +360,7 @@ function addReply($from_email, $date, $subject, $ticket_number, $message, $attac
|
|||
}
|
||||
|
||||
// Update Ticket Last Response Field & set ticket to open as client has replied
|
||||
mysqli_query($mysqli, "UPDATE tickets SET ticket_status = '$config_ticket_status_id_open' WHERE ticket_id = $ticket_id AND ticket_client_id = $client_id LIMIT 1");
|
||||
mysqli_query($mysqli, "UPDATE tickets SET ticket_status = 2 WHERE ticket_id = $ticket_id AND ticket_client_id = $client_id LIMIT 1");
|
||||
|
||||
echo "Updated existing ticket.<br>";
|
||||
mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Ticket', log_action = 'Update', log_description = 'Email parser: Client contact $from_email updated ticket $config_ticket_prefix$ticket_number ($subject)', log_client_id = $client_id");
|
||||
|
|
|
|||
|
|
@ -1758,19 +1758,13 @@ if (LATEST_DATABASE_VERSION > CURRENT_DATABASE_VERSION) {
|
|||
PRIMARY KEY (`ticket_status_id`)
|
||||
)");
|
||||
|
||||
// Pre-seed ticket statuses
|
||||
// Pre-seed default system/built-in ticket statuses
|
||||
mysqli_query($mysqli, "INSERT INTO ticket_statuses SET ticket_status_name = 'New', ticket_status_color = 'danger'"); // Default ID for new tickets is 1
|
||||
mysqli_query($mysqli, "INSERT INTO ticket_statuses SET ticket_status_name = 'Open', ticket_status_color = 'primary'"); // 2
|
||||
mysqli_query($mysqli, "INSERT INTO ticket_statuses SET ticket_status_name = 'On Hold', ticket_status_color = 'success'"); // 3
|
||||
mysqli_query($mysqli, "INSERT INTO ticket_statuses SET ticket_status_name = 'Auto Close', ticket_status_color = 'dark'"); // 4
|
||||
mysqli_query($mysqli, "INSERT INTO ticket_statuses SET ticket_status_name = 'Closed', ticket_status_color = 'dark'"); // 5
|
||||
|
||||
// Add default values above to settings
|
||||
mysqli_query($mysqli, "ALTER TABLE `settings` ADD `config_ticket_status_id_new` int(1) NOT NULL DEFAULT '1' AFTER `config_ticket_new_ticket_notification_email`");
|
||||
mysqli_query($mysqli, "ALTER TABLE `settings` ADD `config_ticket_status_id_open` int(1) NOT NULL DEFAULT '2' AFTER `config_ticket_status_id_new`");
|
||||
mysqli_query($mysqli, "ALTER TABLE `settings` ADD `config_ticket_status_id_autoclose` int(1) NOT NULL DEFAULT '4' AFTER `config_ticket_status_id_open`");
|
||||
mysqli_query($mysqli, "ALTER TABLE `settings` ADD `config_ticket_status_id_closed` int(1) NOT NULL DEFAULT '5' AFTER `config_ticket_status_id_autoclose`");
|
||||
|
||||
// Update existing tickets to use new values
|
||||
mysqli_query($mysqli, "UPDATE tickets SET ticket_status = 1 WHERE ticket_status = 'New'"); // New
|
||||
mysqli_query($mysqli, "UPDATE tickets SET ticket_status = 2 WHERE ticket_status = 'Open'"); // Open
|
||||
|
|
|
|||
6
db.sql
6
db.sql
|
|
@ -1317,10 +1317,6 @@ CREATE TABLE `settings` (
|
|||
`config_ticket_autoclose` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`config_ticket_autoclose_hours` int(5) NOT NULL DEFAULT 72,
|
||||
`config_ticket_new_ticket_notification_email` varchar(200) DEFAULT NULL,
|
||||
`config_ticket_status_id_new` int(1) NOT NULL DEFAULT 1,
|
||||
`config_ticket_status_id_open` int(1) NOT NULL DEFAULT 2,
|
||||
`config_ticket_status_id_autoclose` int(1) NOT NULL DEFAULT 4,
|
||||
`config_ticket_status_id_closed` int(1) NOT NULL DEFAULT 5,
|
||||
`config_enable_cron` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`config_cron_key` varchar(255) DEFAULT NULL,
|
||||
`config_recurring_auto_send_invoice` tinyint(1) NOT NULL DEFAULT 1,
|
||||
|
|
@ -1879,4 +1875,4 @@ CREATE TABLE `vendors` (
|
|||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
-- As of 2024 03 29
|
||||
-- As of 2024 03 29
|
||||
|
|
|
|||
|
|
@ -68,10 +68,6 @@ $config_ticket_client_general_notifications = intval($row['config_ticket_client_
|
|||
$config_ticket_autoclose = intval($row['config_ticket_autoclose']);
|
||||
$config_ticket_autoclose_hours = intval($row['config_ticket_autoclose_hours']);
|
||||
$config_ticket_new_ticket_notification_email = $row['config_ticket_new_ticket_notification_email'];
|
||||
$config_ticket_status_id_new = intval($row['config_ticket_status_id_new']);
|
||||
$config_ticket_status_id_open = intval($row['config_ticket_status_id_open']);
|
||||
$config_ticket_status_id_autoclose = intval($row['config_ticket_status_id_autoclose']);
|
||||
$config_ticket_status_id_closed = intval($row['config_ticket_status_id_closed']);
|
||||
|
||||
// Cron
|
||||
$config_enable_cron = intval($row['config_enable_cron']);
|
||||
|
|
|
|||
|
|
@ -11,15 +11,15 @@ function verifyContactTicketAccess($requested_ticket_id, $expected_ticket_state)
|
|||
{
|
||||
|
||||
// Access the global variables
|
||||
global $mysqli, $session_contact_id, $session_contact_primary, $session_contact_is_technical_contact, $session_client_id, $config_ticket_status_id_closed;
|
||||
global $mysqli, $session_contact_id, $session_contact_primary, $session_contact_is_technical_contact, $session_client_id;
|
||||
|
||||
// Setup
|
||||
if ($expected_ticket_state == "Closed") {
|
||||
// Closed tickets
|
||||
$ticket_state_snippet = "ticket_status = 'Closed' OR ticket_status = $config_ticket_status_id_closed";
|
||||
$ticket_state_snippet = "ticket_status = 5";
|
||||
} else {
|
||||
// Open (working/hold) tickets
|
||||
$ticket_state_snippet = "ticket_status != 'Closed' or ticket_status != $config_ticket_status_id_closed";
|
||||
$ticket_state_snippet = "ticket_status != 5";
|
||||
}
|
||||
|
||||
// Verify the contact has access to the provided ticket ID
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ if (isset($_POST['add_ticket'])) {
|
|||
$new_config_ticket_next_number = $config_ticket_next_number + 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_status = $config_ticket_status_id_new, ticket_created_by = 0, ticket_contact_id = $contact, ticket_client_id = $client_id");
|
||||
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_status = 1, ticket_created_by = 0, ticket_contact_id = $contact, ticket_client_id = $client_id");
|
||||
$id = mysqli_insert_id($mysqli);
|
||||
|
||||
// Notify agent DL of the new ticket, if populated with a valid email
|
||||
|
|
@ -86,7 +86,7 @@ if (isset($_POST['add_ticket_comment'])) {
|
|||
$ticket_reply_id = mysqli_insert_id($mysqli);
|
||||
|
||||
// Update Ticket Last Response Field & set ticket to open as client has replied
|
||||
mysqli_query($mysqli, "UPDATE tickets SET ticket_status = $config_ticket_status_id_open WHERE ticket_id = $ticket_id AND ticket_client_id = $session_client_id LIMIT 1");
|
||||
mysqli_query($mysqli, "UPDATE tickets SET ticket_status = 2 WHERE ticket_id = $ticket_id AND ticket_client_id = $session_client_id LIMIT 1");
|
||||
|
||||
|
||||
// Get ticket details & Notify the assigned tech (if any)
|
||||
|
|
@ -201,7 +201,7 @@ if (isset($_GET['close_ticket'])) {
|
|||
if (verifyContactTicketAccess($ticket_id, "Open")) {
|
||||
|
||||
// Close ticket
|
||||
mysqli_query($mysqli, "UPDATE tickets SET ticket_status = $config_ticket_status_id_closed, ticket_closed_at = NOW() WHERE ticket_id = $ticket_id AND ticket_client_id = $session_client_id");
|
||||
mysqli_query($mysqli, "UPDATE tickets SET ticket_status = 5, ticket_closed_at = NOW() WHERE ticket_id = $ticket_id AND ticket_client_id = $session_client_id");
|
||||
|
||||
// Add reply
|
||||
mysqli_query($mysqli, "INSERT INTO ticket_replies SET ticket_reply = 'Ticket closed by $session_contact_name.', ticket_reply_type = 'Client', ticket_reply_by = $session_contact_id, ticket_reply_ticket_id = $ticket_id");
|
||||
|
|
|
|||
|
|
@ -20,10 +20,21 @@ if (isset($_GET['id']) && intval($_GET['id'])) {
|
|||
|
||||
if ($session_contact_primary == 1 || $session_contact_is_technical_contact) {
|
||||
// For a primary / technical contact viewing all tickets
|
||||
$ticket_sql = mysqli_query($mysqli, "SELECT * FROM tickets LEFT JOIN users on ticket_assigned_to = user_id WHERE ticket_id = $ticket_id AND ticket_client_id = $session_client_id");
|
||||
$ticket_sql = mysqli_query($mysqli,
|
||||
"SELECT * FROM tickets
|
||||
LEFT JOIN users on ticket_assigned_to = user_id
|
||||
LEFT JOIN ticket_statuses ON ticket_status = ticket_status_id
|
||||
WHERE ticket_id = $ticket_id AND ticket_client_id = $session_client_id"
|
||||
);
|
||||
|
||||
} else {
|
||||
// For a user viewing their own ticket
|
||||
$ticket_sql = mysqli_query($mysqli, "SELECT * FROM tickets LEFT JOIN users on ticket_assigned_to = user_id WHERE ticket_id = $ticket_id AND ticket_client_id = $session_client_id AND ticket_contact_id = $session_contact_id");
|
||||
$ticket_sql = mysqli_query($mysqli,
|
||||
"SELECT * FROM tickets
|
||||
LEFT JOIN users on ticket_assigned_to = user_id
|
||||
LEFT JOIN ticket_statuses ON ticket_status = ticket_status_id
|
||||
WHERE ticket_id = $ticket_id AND ticket_client_id = $session_client_id AND ticket_contact_id = $session_contact_id"
|
||||
);
|
||||
}
|
||||
|
||||
$ticket_row = mysqli_fetch_array($ticket_sql);
|
||||
|
|
@ -32,11 +43,12 @@ if (isset($_GET['id']) && intval($_GET['id'])) {
|
|||
|
||||
$ticket_prefix = nullable_htmlentities($ticket_row['ticket_prefix']);
|
||||
$ticket_number = intval($ticket_row['ticket_number']);
|
||||
$ticket_status = sanitizeInput(getTicketStatusName($ticket_row['ticket_status']));
|
||||
$ticket_status = nullable_htmlentities($ticket_row['ticket_status_name']);
|
||||
$ticket_priority = nullable_htmlentities($ticket_row['ticket_priority']);
|
||||
$ticket_subject = nullable_htmlentities($ticket_row['ticket_subject']);
|
||||
$ticket_details = $purifier->purify($ticket_row['ticket_details']);
|
||||
$ticket_assigned_to = nullable_htmlentities($ticket_row['user_name']);
|
||||
$ticket_closed_at = nullable_htmlentities($ticket_row['ticket_closed_at']);
|
||||
$ticket_feedback = nullable_htmlentities($ticket_row['ticket_feedback']);
|
||||
|
||||
?>
|
||||
|
|
@ -56,7 +68,7 @@ if (isset($_GET['id']) && intval($_GET['id'])) {
|
|||
<h4 class="mt-1">
|
||||
Ticket <?php echo $ticket_prefix, $ticket_number ?>
|
||||
<?php
|
||||
if ($ticket_status !== $config_ticket_status_id_closed && $ticket_status !== "Closed") { ?>
|
||||
if (empty($ticket_closed_at)) { ?>
|
||||
<a href="portal_post.php?close_ticket=<?php echo $ticket_id; ?>" class="btn btn-sm btn-outline-success float-right text-white confirm-link"><i class="fas fa-fw fa-check text-success"></i> Close ticket</a>
|
||||
<?php } ?>
|
||||
</h4>
|
||||
|
|
@ -70,7 +82,7 @@ if (isset($_GET['id']) && intval($_GET['id'])) {
|
|||
<br>
|
||||
<strong>Priority:</strong> <?php echo $ticket_priority ?>
|
||||
<br>
|
||||
<?php if (!empty($ticket_assigned_to) && $ticket_status !== $config_ticket_status_id_closed && $ticket_status !== "Closed") { ?>
|
||||
<?php if (empty($ticket_closed_at)) { ?>
|
||||
<strong>Assigned to: </strong> <?php echo $ticket_assigned_to ?>
|
||||
<?php } ?>
|
||||
</p>
|
||||
|
|
@ -81,7 +93,7 @@ if (isset($_GET['id']) && intval($_GET['id'])) {
|
|||
|
||||
<!-- Either show the reply comments box, ticket smiley feedback, or thanks for feedback -->
|
||||
|
||||
<?php if ($ticket_status !== "Closed") { ?>
|
||||
<?php if (empty($ticket_closed_at)) { ?>
|
||||
|
||||
<form action="portal_post.php" enctype="multipart/form-data" method="post">
|
||||
<input type="hidden" name="ticket_id" value="<?php echo $ticket_id ?>">
|
||||
|
|
|
|||
|
|
@ -16,19 +16,16 @@ if ($session_contact_primary == 0 && !$session_contact_is_technical_contact) {
|
|||
if (!isset($_GET['status'])) {
|
||||
// If nothing is set, assume we only want to see open tickets
|
||||
$status = 'Open';
|
||||
$ticket_status_snippet = "ticket_status != 'Closed'";
|
||||
} elseif (isset($_GET['status']) && ($_GET['status']) == 'Open') {
|
||||
$status = 'Open';
|
||||
$ticket_status_snippet = "ticket_status != 'Closed'";
|
||||
$ticket_status_snippet = "ticket_status != 5";
|
||||
} elseif (isset($_GET['status']) && ($_GET['status']) == 'Closed') {
|
||||
$status = 'Closed';
|
||||
$ticket_status_snippet = "ticket_status = 'Closed'";
|
||||
$ticket_status_snippet = "ticket_status = 5";
|
||||
} else {
|
||||
$status = '%';
|
||||
$ticket_status_snippet = "ticket_status LIKE '%'";
|
||||
}
|
||||
|
||||
$all_tickets = mysqli_query($mysqli, "SELECT * FROM tickets LEFT JOIN contacts ON ticket_contact_id = contact_id WHERE $ticket_status_snippet AND ticket_client_id = $session_client_id ORDER BY ticket_id DESC");
|
||||
$all_tickets = mysqli_query($mysqli, "SELECT * FROM tickets LEFT JOIN contacts ON ticket_contact_id = contact_id LEFT JOIN ticket_statuses ON ticket_status = ticket_status_id WHERE $ticket_status_snippet AND ticket_client_id = $session_client_id ORDER BY ticket_id DESC");
|
||||
?>
|
||||
|
||||
<h2>All tickets</h2>
|
||||
|
|
@ -61,7 +58,7 @@ $all_tickets = mysqli_query($mysqli, "SELECT * FROM tickets LEFT JOIN contacts O
|
|||
$ticket_prefix = nullable_htmlentities($row['ticket_prefix']);
|
||||
$ticket_number = intval($row['ticket_number']);
|
||||
$ticket_subject = nullable_htmlentities($row['ticket_subject']);
|
||||
$ticket_status = sanitizeInput(getTicketStatusName($row['ticket_status']));
|
||||
$ticket_status = nullable_htmlentities($row['ticket_status_name']);
|
||||
$ticket_contact_name = nullable_htmlentities($row['contact_name']);
|
||||
|
||||
echo "<tr>";
|
||||
|
|
|
|||
|
|
@ -13,32 +13,29 @@ require_once "inc_portal.php";
|
|||
if (!isset($_GET['status'])) {
|
||||
// If nothing is set, assume we only want to see open tickets
|
||||
$status = 'Open';
|
||||
$ticket_status_snippet = "ticket_status != $config_ticket_status_id_closed AND ticket_status != 'Closed'";
|
||||
} elseif (isset($_GET['status']) && ($_GET['status']) == 'Open') {
|
||||
$status = 'Open';
|
||||
$ticket_status_snippet = "ticket_status != $config_ticket_status_id_closed AND ticket_status != 'Closed'";
|
||||
$ticket_status_snippet = "ticket_status != 5 AND ticket_status != 'Closed'";
|
||||
} elseif (isset($_GET['status']) && ($_GET['status']) == 'Closed') {
|
||||
$status = 'Closed';
|
||||
$ticket_status_snippet = "ticket_status = $config_ticket_status_id_closed OR ticket_status = 'Closed'";
|
||||
$ticket_status_snippet = "ticket_status = 5 OR ticket_status = 'Closed'";
|
||||
} else {
|
||||
$status = '%';
|
||||
$ticket_status_snippet = "ticket_status LIKE '%'";
|
||||
}
|
||||
|
||||
$contact_tickets = mysqli_query($mysqli, "SELECT * FROM tickets LEFT JOIN contacts ON ticket_contact_id = contact_id WHERE $ticket_status_snippet AND ticket_contact_id = $session_contact_id AND ticket_client_id = $session_client_id ORDER BY ticket_id DESC");
|
||||
$contact_tickets = mysqli_query($mysqli, "SELECT * FROM tickets LEFT JOIN contacts ON ticket_contact_id = contact_id LEFT JOIN ticket_statuses ON ticket_status = ticket_status_id WHERE $ticket_status_snippet AND ticket_contact_id = $session_contact_id AND ticket_client_id = $session_client_id ORDER BY ticket_id DESC");
|
||||
|
||||
//Get Total tickets closed
|
||||
$sql_total_tickets_closed = mysqli_query($mysqli, "SELECT COUNT(ticket_id) AS total_tickets_closed FROM tickets WHERE ticket_status = $config_ticket_status_id_closed OR ticket_status = 'Closed' AND ticket_client_id = $session_client_id AND ticket_contact_id = $session_contact_id");
|
||||
$sql_total_tickets_closed = mysqli_query($mysqli, "SELECT COUNT(ticket_id) AS total_tickets_closed FROM tickets WHERE ticket_closed_at IS NOT NULL AND ticket_client_id = $session_client_id AND ticket_contact_id = $session_contact_id");
|
||||
$row = mysqli_fetch_array($sql_total_tickets_closed);
|
||||
$total_tickets_closed = intval($row['total_tickets_closed']);
|
||||
|
||||
//Get Total tickets open
|
||||
$sql_total_tickets_open = mysqli_query($mysqli, "SELECT COUNT(ticket_id) AS total_tickets_open FROM tickets WHERE ticket_status != $config_ticket_status_id_closed AND ticket_status != 'Closed' AND ticket_client_id = $session_client_id AND ticket_contact_id = $session_contact_id");
|
||||
$sql_total_tickets_open = mysqli_query($mysqli, "SELECT COUNT(ticket_id) AS total_tickets_open FROM tickets WHERE ticket_closed_at IS NULL AND ticket_client_id = $session_client_id AND ticket_contact_id = $session_contact_id");
|
||||
$row = mysqli_fetch_array($sql_total_tickets_open);
|
||||
$total_tickets_open = intval($row['total_tickets_open']);
|
||||
|
||||
//Get Total tickets
|
||||
$sql_total_tickets = mysqli_query($mysqli, "SELECT COUNT(ticket_id) AS total_tickets FROM tickets WHERE ticket_client_id = $session_client_id AND ticket_contact_id = $session_contact_id");
|
||||
$sql_total_tickets = mysqli_query($mysqli, "SELECT COUNT(ticket_id) AS total_tickets FROM tickets WHERE ticket_client_id = $session_client_id AND ticket_contact_id = $session_contact_id");
|
||||
$row = mysqli_fetch_array($sql_total_tickets);
|
||||
$total_tickets = intval($row['total_tickets']);
|
||||
|
||||
|
|
@ -65,7 +62,7 @@ $total_tickets = intval($row['total_tickets']);
|
|||
$ticket_prefix = nullable_htmlentities($row['ticket_prefix']);
|
||||
$ticket_number = intval($row['ticket_number']);
|
||||
$ticket_subject = nullable_htmlentities($row['ticket_subject']);
|
||||
$ticket_status = sanitizeInput(getTicketStatusName($row['ticket_status']));
|
||||
$ticket_status = nullable_htmlentities($row['ticket_status_name']);
|
||||
?>
|
||||
|
||||
<tr>
|
||||
|
|
|
|||
|
|
@ -11,9 +11,9 @@ if (isset($_POST['add_ticket'])) {
|
|||
$client_id = intval($_POST['client']);
|
||||
$assigned_to = intval($_POST['assigned_to']);
|
||||
if ($assigned_to == 0) {
|
||||
$ticket_status = $config_ticket_status_id_new;
|
||||
$ticket_status = 1;
|
||||
} else {
|
||||
$ticket_status = $config_ticket_status_id_open;
|
||||
$ticket_status = 2;
|
||||
}
|
||||
$contact = intval($_POST['contact']);
|
||||
$subject = sanitizeInput($_POST['subject']);
|
||||
|
|
@ -63,7 +63,7 @@ if (isset($_POST['add_ticket'])) {
|
|||
// Check that task_name is not-empty (For some reason the !empty on the array doesnt work here like in watchers)
|
||||
if (!empty($task_name)) {
|
||||
mysqli_query($mysqli,"INSERT INTO tasks SET task_name = '$task_name', task_ticket_id = $ticket_id");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -345,14 +345,9 @@ if (isset($_POST['assign_ticket'])) {
|
|||
$assigned_to = intval($_POST['assigned_to']);
|
||||
$ticket_status = sanitizeInput($_POST['ticket_status']);
|
||||
|
||||
// TODO: Remove this legacy if
|
||||
if ($ticket_status == 'New' && $assigned_to !== 0) {
|
||||
$ticket_status = $config_ticket_status_id_open;
|
||||
}
|
||||
|
||||
// New
|
||||
if ($ticket_status == $config_ticket_status_id_new && $assigned_to !== 0) {
|
||||
$ticket_status = $config_ticket_status_id_open;
|
||||
// New > Open as assigned
|
||||
if ($ticket_status == 1 && $assigned_to !== 0) {
|
||||
$ticket_status = 2;
|
||||
}
|
||||
|
||||
// Allow for un-assigning tickets
|
||||
|
|
@ -377,7 +372,7 @@ if (isset($_POST['assign_ticket'])) {
|
|||
}
|
||||
|
||||
// Get & verify ticket details
|
||||
$ticket_details_sql = mysqli_query($mysqli, "SELECT ticket_prefix, ticket_number, ticket_subject, ticket_client_id, client_name FROM tickets LEFT JOIN clients ON ticket_client_id = client_id WHERE ticket_id = '$ticket_id' AND ticket_status != $config_ticket_status_id_closed AND ticket_status != 'Closed'");
|
||||
$ticket_details_sql = mysqli_query($mysqli, "SELECT ticket_prefix, ticket_number, ticket_subject, ticket_client_id, client_name FROM tickets LEFT JOIN clients ON ticket_client_id = client_id WHERE ticket_id = '$ticket_id' AND ticket_status != 5");
|
||||
$ticket_details = mysqli_fetch_array($ticket_details_sql);
|
||||
|
||||
$ticket_prefix = sanitizeInput($ticket_details['ticket_prefix']);
|
||||
|
|
@ -447,15 +442,16 @@ 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_closed_at, 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']);
|
||||
$ticket_subject = sanitizeInput($row['ticket_subject']);
|
||||
$ticket_status = sanitizeInput($row['ticket_status']);
|
||||
$ticket_closed_at = sanitizeInput($row['ticket_closed_at']);
|
||||
$client_id = intval($row['ticket_client_id']);
|
||||
|
||||
if ($ticket_status !== $config_ticket_status_id_closed && $ticket_status !== 'Closed') {
|
||||
if (empty($ticket_closed_at)) {
|
||||
mysqli_query($mysqli, "DELETE FROM tickets WHERE ticket_id = $ticket_id");
|
||||
|
||||
// Delete all ticket replies
|
||||
|
|
@ -499,8 +495,8 @@ if (isset($_POST['bulk_assign_ticket'])) {
|
|||
$ticket_subject = sanitizeInput($row['ticket_subject']);
|
||||
$client_id = intval($row['ticket_client_id']);
|
||||
|
||||
if ($ticket_status == 'New' && $assigned_to !== 0) {
|
||||
$ticket_status = $config_ticket_status_id_open;
|
||||
if ($ticket_status == 1 && $assigned_to !== 0) {
|
||||
$ticket_status = 2;
|
||||
}
|
||||
|
||||
// Allow for un-assigning tickets
|
||||
|
|
@ -889,7 +885,8 @@ if (isset($_POST['add_ticket_reply'])) {
|
|||
// Update Ticket Last Response Field
|
||||
mysqli_query($mysqli, "UPDATE tickets SET ticket_status = $ticket_status WHERE ticket_id = $ticket_id");
|
||||
|
||||
if ($ticket_status == $config_ticket_status_id_closed || $ticket_status == 'Closed') {
|
||||
// CLose the ticket, if set
|
||||
if ($ticket_status == 5) {
|
||||
mysqli_query($mysqli, "UPDATE tickets SET ticket_closed_at = NOW() WHERE ticket_id = $ticket_id");
|
||||
}
|
||||
|
||||
|
|
@ -929,10 +926,10 @@ if (isset($_POST['add_ticket_reply'])) {
|
|||
|
||||
// Slightly different email subject/text depending on if this update closed the ticket or not
|
||||
|
||||
if ($ticket_status == $config_ticket_status_id_closed || $ticket_status == 'Closed') {
|
||||
if ($ticket_status == 5) {
|
||||
$subject = "Ticket closed - [$ticket_prefix$ticket_number] - $ticket_subject | (do not reply)";
|
||||
$body = "Hello $contact_name,<br><br>Your ticket regarding $ticket_subject has been closed.<br><br>--------------------------------<br>$ticket_reply<br>--------------------------------<br><br>We hope the request/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. <br><br>Ticket: $ticket_prefix$ticket_number<br>Subject: $ticket_subject<br>Portal: https://$config_base_url/portal/ticket.php?id=$ticket_id<br><br>--<br>$company_name - Support<br>$config_ticket_from_email<br>$company_phone";
|
||||
} elseif ($ticket_status == $config_ticket_status_id_autoclose || $ticket_status == 'Auto Close') {
|
||||
} elseif ($ticket_status == 4) {
|
||||
$subject = "Ticket update - [$ticket_prefix$ticket_number] - $ticket_subject | (pending closure)";
|
||||
$body = "<i style=\'color: #808080\'>##- Please type your reply above this line -##</i><br><br>Hello $contact_name,<br><br>Your ticket regarding $ticket_subject has been updated and is pending closure.<br><br>--------------------------------<br>$ticket_reply<br>--------------------------------<br><br>If your request/issue is resolved, you can simply ignore this email. If you need further assistance, please respond to let us know! <br><br>Ticket: $ticket_prefix$ticket_number<br>Subject: $ticket_subject<br>Status: $ticket_status_name<br>Portal: https://$config_base_url/portal/ticket.php?id=$ticket_id<br><br>--<br>$company_name - Support<br>$config_ticket_from_email<br>$company_phone";
|
||||
} else {
|
||||
|
|
|
|||
36
ticket.php
36
ticket.php
|
|
@ -27,6 +27,7 @@ if (isset($_GET['ticket_id'])) {
|
|||
LEFT JOIN locations ON ticket_location_id = location_id
|
||||
LEFT JOIN assets ON ticket_asset_id = asset_id
|
||||
LEFT JOIN vendors ON ticket_vendor_id = vendor_id
|
||||
LEFT JOIN ticket_statuses ON ticket_status = ticket_status_id
|
||||
WHERE ticket_id = $ticket_id LIMIT 1"
|
||||
);
|
||||
|
||||
|
|
@ -76,8 +77,9 @@ if (isset($_GET['ticket_id'])) {
|
|||
}
|
||||
$ticket_feedback = nullable_htmlentities($row['ticket_feedback']);
|
||||
|
||||
$ticket_status = nullable_htmlentities($row['ticket_status']);
|
||||
$ticket_status_color = getTicketStatusColor($ticket_status);
|
||||
$ticket_status = intval($row['ticket_status_id']);
|
||||
$ticket_status_name = nullable_htmlentities($row['ticket_status_name']);
|
||||
$ticket_status_color = nullable_htmlentities($row['ticket_status_color']);
|
||||
|
||||
$ticket_vendor_ticket_number = nullable_htmlentities($row['ticket_vendor_ticket_number']);
|
||||
$ticket_created_at = nullable_htmlentities($row['ticket_created_at']);
|
||||
|
|
@ -261,11 +263,11 @@ if (isset($_GET['ticket_id'])) {
|
|||
</ol>
|
||||
<div class="card card-body">
|
||||
<div class="row">
|
||||
|
||||
|
||||
<div class="col-7">
|
||||
<h3><i class="fas fa-fw fa-life-ring text-secondary mr-2"></i>Ticket <?php echo "$ticket_prefix$ticket_number"; ?> <span class='p-2 badge badge-<?php echo $ticket_status_color; ?>'><?php echo getTicketStatusName($ticket_status) ?></span></h3>
|
||||
<h3><i class="fas fa-fw fa-life-ring text-secondary mr-2"></i>Ticket <?php echo "$ticket_prefix$ticket_number"; ?> <span class='p-2 badge badge-<?php echo $ticket_status_color; ?>'><?php echo $ticket_status_name ?></span></h3>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-5">
|
||||
|
||||
<div class="btn-group float-right d-print-none">
|
||||
|
|
@ -306,7 +308,7 @@ if (isset($_GET['ticket_id'])) {
|
|||
<a href="post.php?close_ticket=<?php echo $ticket_id; ?>" class="btn btn-secondary btn-sm confirm-link" id="ticket_close">
|
||||
<i class="fas fa-fw fa-gavel mr-2"></i>Close
|
||||
</a>
|
||||
|
||||
|
||||
<div class="dropdown dropleft text-center ml-3">
|
||||
<button class="btn btn-secondary btn-sm" type="button" id="dropdownMenuButton" data-toggle="dropdown">
|
||||
<i class="fas fa-fw fa-ellipsis-v"></i>
|
||||
|
|
@ -391,7 +393,7 @@ if (isset($_GET['ticket_id'])) {
|
|||
<select class="form-control select2" name="status" required>
|
||||
|
||||
<!-- Show all active ticket statuses, apart from new or closed as these are system-managed -->
|
||||
<?php $sql_ticket_status = mysqli_query($mysqli, "SELECT * FROM ticket_statuses WHERE ticket_status_id != $config_ticket_status_id_new AND ticket_status_id != $config_ticket_status_id_closed AND ticket_status_active = 1");
|
||||
<?php $sql_ticket_status = mysqli_query($mysqli, "SELECT * FROM ticket_statuses WHERE ticket_status_id != 1 AND ticket_status_id != 5 AND ticket_status_active = 1");
|
||||
while ($row = mysqli_fetch_array($sql_ticket_status)) {
|
||||
$ticket_status_id = intval($row['ticket_status_id']);
|
||||
$ticket_status_name = nullable_htmlentities($row['ticket_status_name']); ?>
|
||||
|
|
@ -545,7 +547,7 @@ if (isset($_GET['ticket_id'])) {
|
|||
</div>
|
||||
</h3>
|
||||
|
||||
<?php if ($ticket_reply_type !== "Client" && $ticket_status !== "Closed") { ?>
|
||||
<?php if ($ticket_reply_type !== "Client" && empty($ticket_closed_at)) { ?>
|
||||
<div class="card-tools d-print-none">
|
||||
<div class="dropdown dropleft">
|
||||
<button class="btn btn-tool" type="button" id="dropdownMenuButton" data-toggle="dropdown">
|
||||
|
|
@ -608,7 +610,7 @@ if (isset($_GET['ticket_id'])) {
|
|||
|
||||
<!-- Ticket closure info -->
|
||||
<?php
|
||||
if ($ticket_status == "Closed") {
|
||||
if (!empty($ticket_closed_at)) {
|
||||
$sql_closed_by = mysqli_query($mysqli, "SELECT * FROM tickets, users WHERE ticket_closed_by = user_id");
|
||||
$row = mysqli_fetch_array($sql_closed_by);
|
||||
$ticket_closed_by_display = nullable_htmlentities($row['user_name']);
|
||||
|
|
@ -653,7 +655,7 @@ if (isset($_GET['ticket_id'])) {
|
|||
</div>
|
||||
<?php } ?>
|
||||
<hr>
|
||||
|
||||
|
||||
<!-- Assigned to -->
|
||||
<form action="post.php" method="post">
|
||||
<input type="hidden" name="ticket_id" value="<?php echo $ticket_id; ?>">
|
||||
|
|
@ -663,7 +665,7 @@ if (isset($_GET['ticket_id'])) {
|
|||
<div class="input-group-prepend">
|
||||
<span class="input-group-text"><i class="fa fa-fw fa-user"></i></span>
|
||||
</div>
|
||||
<select onchange="this.form.submit()" class="form-control select2" name="assigned_to" <?php if ($ticket_status == "Closed") { echo "disabled"; } ?>>
|
||||
<select onchange="this.form.submit()" class="form-control select2" name="assigned_to" <?php if (!empty($ticket_closed_at)) { echo "disabled"; } ?>>
|
||||
<option value="0">Not Assigned</option>
|
||||
<?php
|
||||
while ($row = mysqli_fetch_array($sql_assign_to_select)) {
|
||||
|
|
@ -672,7 +674,7 @@ if (isset($_GET['ticket_id'])) {
|
|||
<option <?php if ($ticket_assigned_to == $user_id) { echo "selected"; } ?> value="<?php echo $user_id; ?>"><?php echo $user_name; ?></option>
|
||||
<?php } ?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<!-- End Assigned to -->
|
||||
</div>
|
||||
|
|
@ -788,7 +790,7 @@ if (isset($_GET['ticket_id'])) {
|
|||
<?php } ?>
|
||||
</td>
|
||||
<td><?php echo $task_name; ?></td>
|
||||
<td>
|
||||
<td>
|
||||
<div class="float-right">
|
||||
<div class="dropdown dropleft text-center">
|
||||
<button class="btn btn-link text-secondary btn-sm" type="button" data-toggle="dropdown">
|
||||
|
|
@ -814,7 +816,7 @@ if (isset($_GET['ticket_id'])) {
|
|||
|
||||
|
||||
<!-- Ticket watchers card -->
|
||||
<?php if ($ticket_status !== "Closed" && mysqli_num_rows($sql_ticket_watchers) > 0) { ?>
|
||||
<?php if (empty($ticket_closed_at) && mysqli_num_rows($sql_ticket_watchers) > 0) { ?>
|
||||
|
||||
<div class="card card-body card-outline card-dark mb-3">
|
||||
<h5 class="text-secondary">Watchers</h5>
|
||||
|
|
@ -827,7 +829,7 @@ if (isset($_GET['ticket_id'])) {
|
|||
?>
|
||||
<div class='mt-1'>
|
||||
<i class="fa fa-fw fa-eye text-secondary mr-2"></i><?php echo $ticket_watcher_email; ?>
|
||||
<?php if ($ticket_status !== "Closed") { ?>
|
||||
<?php if (empty($ticket_closed_at)) { ?>
|
||||
<a class="confirm-link float-right" href="post.php?delete_ticket_watcher=<?php echo $watcher_id; ?>">
|
||||
<i class="fas fa-fw fa-trash-alt text-secondary"></i>
|
||||
</a>
|
||||
|
|
@ -935,7 +937,7 @@ if (isset($_GET['ticket_id'])) {
|
|||
<?php if ($vendor_id) { ?>
|
||||
<div class="card card-body card-outline card-dark mb-3">
|
||||
<h5 class="text-secondary">Vendor</h5>
|
||||
|
||||
|
||||
<div>
|
||||
<i class="fa fa-fw fa-building text-secondary mr-2"></i><strong><?php echo $vendor_name; ?></strong>
|
||||
</div>
|
||||
|
|
@ -970,7 +972,7 @@ if (isset($_GET['ticket_id'])) {
|
|||
<i class="fa fa-fw fa-globe text-secondary mr-2"></i><?php echo $vendor_website; ?>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
|
||||
</div>
|
||||
<?php } //End Else ?>
|
||||
<!-- End Vendor card -->
|
||||
|
|
|
|||
|
|
@ -60,6 +60,7 @@ $sql = mysqli_query(
|
|||
LEFT JOIN assets ON ticket_asset_id = asset_id
|
||||
LEFT JOIN locations ON ticket_location_id = location_id
|
||||
LEFT JOIN vendors ON ticket_vendor_id = vendor_id
|
||||
LEFT JOIN ticket_statuses ON ticket_status = ticket_status_id
|
||||
WHERE $ticket_status_snippet " . $ticket_assigned_query . "
|
||||
AND DATE(ticket_created_at) BETWEEN '$dtf' AND '$dtt'
|
||||
AND (CONCAT(ticket_prefix,ticket_number) LIKE '%$q%' OR client_name LIKE '%$q%' OR ticket_subject LIKE '%$q%' OR ticket_status LIKE '%$q%' OR ticket_priority LIKE '%$q%' OR user_name LIKE '%$q%' OR contact_name LIKE '%$q%' OR asset_name LIKE '%$q%' OR vendor_name LIKE '%$q%' OR ticket_vendor_ticket_number LIKE '%q%')
|
||||
|
|
@ -313,8 +314,9 @@ $user_active_assigned_tickets = intval($row['total_tickets_assigned']);
|
|||
$ticket_number = intval($row['ticket_number']);
|
||||
$ticket_subject = nullable_htmlentities($row['ticket_subject']);
|
||||
$ticket_priority = nullable_htmlentities($row['ticket_priority']);
|
||||
$ticket_status_id = intval($row['ticket_status']);
|
||||
$ticket_status_name = sanitizeInput(getTicketStatusName($row['ticket_status']));
|
||||
$ticket_status_id = intval($row['ticket_status_id']);
|
||||
$ticket_status_name = nullable_htmlentities($row['ticket_status_name']);
|
||||
$ticket_status_color = nullable_htmlentities($row['ticket_status_color']);
|
||||
$ticket_billable = intval($row['ticket_billable']);
|
||||
$ticket_scheduled_for = nullable_htmlentities($row['ticket_schedule']);
|
||||
$ticket_created_at = nullable_htmlentities($row['ticket_created_at']);
|
||||
|
|
@ -339,8 +341,6 @@ $user_active_assigned_tickets = intval($row['total_tickets_assigned']);
|
|||
$contact_name = nullable_htmlentities($row['contact_name']);
|
||||
$contact_email = nullable_htmlentities($row['contact_email']);
|
||||
|
||||
$ticket_status_color = getTicketStatusColor($ticket_status_id);
|
||||
|
||||
if ($ticket_priority == "High") {
|
||||
$ticket_priority_color = "danger";
|
||||
} elseif ($ticket_priority == "Medium") {
|
||||
|
|
|
|||
Loading…
Reference in New Issue