set('URI.AllowedSchemes', ['data' => true, 'src' => true, 'http' => true, 'https' => true]); $purifier = new HTMLPurifier($purifier_config); if (isset($_GET['ticket_id'])) { $ticket_id = intval($_GET['ticket_id']); $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 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 WHERE ticket_id = $ticket_id LIMIT 1" ); if (mysqli_num_rows($sql) == 0) { echo "

Nothing to see here

Go Back
"; include_once "footer.php"; } else { $row = mysqli_fetch_array($sql); $client_id = intval($row['client_id']); $client_name = nullable_htmlentities($row['client_name']); $client_type = nullable_htmlentities($row['client_type']); $client_website = nullable_htmlentities($row['client_website']); $client_net_terms = intval($row['client_net_terms']); if ($client_net_terms == 0) { $client_net_terms = $config_default_net_terms; } $client_rate = floatval($row['client_rate']); $ticket_prefix = nullable_htmlentities($row['ticket_prefix']); $ticket_number = intval($row['ticket_number']); $ticket_category = nullable_htmlentities($row['ticket_category']); $ticket_subject = nullable_htmlentities($row['ticket_subject']); $ticket_details = $purifier->purify($row['ticket_details']); $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") { $ticket_priority_display = "$ticket_priority"; } elseif ($ticket_priority == "Medium") { $ticket_priority_display = "$ticket_priority"; } elseif ($ticket_priority == "Low") { $ticket_priority_display = "$ticket_priority"; } else { $ticket_priority_display = "-"; } $ticket_feedback = nullable_htmlentities($row['ticket_feedback']); $ticket_status = nullable_htmlentities($row['ticket_status']); if ($ticket_status == "Pending-Assignment") { $ticket_status_display = "$ticket_status"; } elseif ($ticket_status == "Assigned") { $ticket_status_display = "$ticket_status"; } elseif ($ticket_status == "In-Progress") { $ticket_status_display = "$ticket_status"; } elseif ($ticket_status == "Closed") { $ticket_status_display = "$ticket_status"; } else { $ticket_status_display = "$ticket_status"; } $ticket_vendor_ticket_number = nullable_htmlentities($row['ticket_vendor_ticket_number']); $ticket_created_at = nullable_htmlentities($row['ticket_created_at']); $ticket_date = date('Y-m-d', strtotime($ticket_created_at)); $ticket_updated_at = nullable_htmlentities($row['ticket_updated_at']); $ticket_closed_at = nullable_htmlentities($row['ticket_closed_at']); $ticket_assigned_to = intval($row['ticket_assigned_to']); if (empty($ticket_assigned_to)) { $ticket_assigned_to_display = "Not Assigned"; } else { $ticket_assigned_to_display = nullable_htmlentities($row['user_name']); } $contact_id = intval($row['contact_id']); $contact_name = nullable_htmlentities($row['contact_name']); $contact_title = nullable_htmlentities($row['contact_title']); $contact_email = nullable_htmlentities($row['contact_email']); $contact_phone = formatPhoneNumber($row['contact_phone']); $contact_extension = nullable_htmlentities($row['contact_extension']); $contact_mobile = formatPhoneNumber($row['contact_mobile']); $asset_id = intval($row['asset_id']); $asset_ip = nullable_htmlentities($row['asset_ip']); $asset_name = nullable_htmlentities($row['asset_name']); $asset_type = nullable_htmlentities($row['asset_type']); $asset_uri = nullable_htmlentities($row['asset_uri']); $asset_make = nullable_htmlentities($row['asset_make']); $asset_model = nullable_htmlentities($row['asset_model']); $asset_serial = nullable_htmlentities($row['asset_serial']); $asset_os = nullable_htmlentities($row['asset_os']); $asset_warranty_expire = nullable_htmlentities($row['asset_warranty_expire']); $vendor_id = intval($row['ticket_vendor_id']); $vendor_name = nullable_htmlentities($row['vendor_name']); $vendor_description = nullable_htmlentities($row['vendor_description']); $vendor_account_number = nullable_htmlentities($row['vendor_account_number']); $vendor_contact_name = nullable_htmlentities($row['vendor_contact_name']); $vendor_phone = formatPhoneNumber($row['vendor_phone']); $vendor_extension = nullable_htmlentities($row['vendor_extension']); $vendor_email = nullable_htmlentities($row['vendor_email']); $vendor_website = nullable_htmlentities($row['vendor_website']); $vendor_hours = nullable_htmlentities($row['vendor_hours']); $vendor_sla = nullable_htmlentities($row['vendor_sla']); $vendor_code = nullable_htmlentities($row['vendor_code']); $vendor_notes = nullable_htmlentities($row['vendor_notes']); $location_name = nullable_htmlentities($row['location_name']); $location_address = nullable_htmlentities($row['location_address']); $location_city = nullable_htmlentities($row['location_city']); $location_state = nullable_htmlentities($row['location_state']); $location_zip = nullable_htmlentities($row['location_zip']); $location_phone = formatPhoneNumber($row['location_phone']); if ($contact_id) { //Get Contact Ticket Stats $ticket_related_open = mysqli_query($mysqli, "SELECT COUNT(ticket_id) AS ticket_related_open FROM tickets WHERE ticket_status != 'Closed' AND ticket_contact_id = $contact_id "); $row = mysqli_fetch_array($ticket_related_open); $ticket_related_open = intval($row['ticket_related_open']); $ticket_related_closed = mysqli_query($mysqli, "SELECT COUNT(ticket_id) AS ticket_related_closed FROM tickets WHERE ticket_status = 'Closed' AND ticket_contact_id = $contact_id "); $row = mysqli_fetch_array($ticket_related_closed); $ticket_related_closed = intval($row['ticket_related_closed']); $ticket_related_total = mysqli_query($mysqli, "SELECT COUNT(ticket_id) AS ticket_related_total FROM tickets WHERE ticket_contact_id = $contact_id "); $row = mysqli_fetch_array($ticket_related_total); $ticket_related_total = intval($row['ticket_related_total']); } //Get Total Ticket Time $ticket_total_reply_time = mysqli_query($mysqli, "SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(ticket_reply_time_worked))) AS ticket_total_reply_time FROM ticket_replies WHERE ticket_reply_archived_at IS NULL AND ticket_reply_ticket_id = $ticket_id"); $row = mysqli_fetch_array($ticket_total_reply_time); $ticket_total_reply_time = nullable_htmlentities($row['ticket_total_reply_time']); // Client Tags $client_tag_name_display_array = array(); $client_tag_id_array = array(); $sql_client_tags = mysqli_query($mysqli, "SELECT * FROM client_tags LEFT JOIN tags ON client_tags.client_tag_tag_id = tags.tag_id WHERE client_tags.client_tag_client_id = $client_id ORDER BY tag_name ASC"); while ($row = mysqli_fetch_array($sql_client_tags)) { $client_tag_id = intval($row['tag_id']); $client_tag_name = nullable_htmlentities($row['tag_name']); $client_tag_color = nullable_htmlentities($row['tag_color']); if (empty($client_tag_color)) { $client_tag_color = "dark"; } $client_tag_icon = nullable_htmlentities($row['tag_icon']); if (empty($client_tag_icon)) { $client_tag_icon = "tag"; } $client_tag_id_array[] = $client_tag_id; $client_tag_name_display_array[] = "$client_tag_name"; } $client_tags_display = implode(' ', $client_tag_name_display_array); // Get the number of responses $ticket_responses_sql = mysqli_query($mysqli, "SELECT COUNT(ticket_reply_id) AS ticket_responses FROM ticket_replies WHERE ticket_reply_archived_at IS NULL AND ticket_reply_ticket_id = $ticket_id"); $row = mysqli_fetch_array($ticket_responses_sql); $ticket_responses = intval($row['ticket_responses']); // Get & format asset warranty expiry $date = date('Y-m-d H:i:s'); $dt_value = $asset_warranty_expire; //sample date $warranty_check = date('m/d/Y', strtotime('-8 hours')); if ($dt_value <= $date) { $dt_value = "Expired on $asset_warranty_expire"; $warranty_status_color = 'red'; } else { $warranty_status_color = 'green'; } if ($asset_warranty_expire == "NULL") { $dt_value = "None"; $warranty_status_color = 'red'; } // Get all ticket replies $sql_ticket_replies = mysqli_query($mysqli, "SELECT * FROM ticket_replies LEFT JOIN users ON ticket_reply_by = user_id LEFT JOIN contacts ON ticket_reply_by = contact_id WHERE ticket_reply_ticket_id = $ticket_id AND ticket_reply_archived_at IS NULL ORDER BY ticket_reply_id DESC"); // Get other tickets for this asset if (!empty($asset_id)) { $sql_asset_tickets = mysqli_query($mysqli, "SELECT * FROM tickets WHERE ticket_asset_id = $asset_id ORDER BY ticket_number DESC"); $ticket_asset_count = mysqli_num_rows($sql_asset_tickets); } // Get technicians to assign the ticket to $sql_assign_to_select = mysqli_query( $mysqli, "SELECT users.user_id, user_name FROM users LEFT JOIN user_settings on users.user_id = user_settings.user_id WHERE user_role > 1 AND user_archived_at IS NULL ORDER BY user_name ASC" ); $sql_ticket_attachments = mysqli_query( $mysqli, "SELECT * FROM ticket_attachments WHERE ticket_attachment_reply_id IS NULL AND ticket_attachment_ticket_id = $ticket_id" ); ?>

Ticket

$name | Download | View"; } ?>

Responses ()
purify($row['ticket_reply']); $ticket_reply_type = nullable_htmlentities($row['ticket_reply_type']); $ticket_reply_created_at = nullable_htmlentities($row['ticket_reply_created_at']); $ticket_reply_updated_at = nullable_htmlentities($row['ticket_reply_updated_at']); $ticket_reply_by = intval($row['ticket_reply_by']); if ($ticket_reply_type == "Client") { $ticket_reply_by_display = nullable_htmlentities($row['contact_name']); $user_initials = initials($row['contact_name']); $user_avatar = nullable_htmlentities($row['contact_photo']); $avatar_link = "uploads/clients/$client_id/$user_avatar"; } else { $ticket_reply_by_display = nullable_htmlentities($row['user_name']); $user_id = intval($row['user_id']); $user_avatar = nullable_htmlentities($row['user_avatar']); $user_initials = initials($row['user_name']); $avatar_link = "uploads/users/$user_id/$user_avatar"; $ticket_reply_time_worked = date_create($row['ticket_reply_time_worked']); } $sql_ticket_reply_attachments = mysqli_query( $mysqli, "SELECT * FROM ticket_attachments WHERE ticket_attachment_reply_id = $ticket_reply_id AND ticket_attachment_ticket_id = $ticket_id" ); ?>
mb-3">

User Avatar
Time worked:

$name | Download | View"; } ?>
Contact
$ticket_id ORDER BY ticket_id DESC LIMIT 1"; $prev_ticket_row = mysqli_fetch_assoc(mysqli_query($mysqli, $sql_prev_ticket)); if ($prev_ticket_row) { $prev_ticket_id = intval($prev_ticket_row['ticket_id']); $prev_ticket_subject = nullable_htmlentities($prev_ticket_row['ticket_subject']); $prev_ticket_status = nullable_htmlentities($prev_ticket_row['ticket_status']); ?>
Previous ticket:
Status:
Watchers
Details
Created:
Updated:
Closed by:
Feedback:
Scheduled for:
Scheduled for: Add
Total time worked:
Asset
Model:
Service Tag:
Warranty expires:
0) { ?>
Vendor