Ticketing updates

- Bugfix: Prevent tickets from being assigned to disabled techs
- Bugfix: Un-assign all open tickets when a tech account is disabled
- Allow auto-assignment of recurring/scheduled tickets to an agent/tech (#901)
- Rework layout of recurring/scheduled ticket modal
This commit is contained in:
Marcus Hill
2024-03-17 11:09:53 +00:00
parent cdd16bd460
commit f9a5ca1ef8
15 changed files with 438 additions and 223 deletions

View File

@@ -15,3 +15,8 @@ $contact_id = "0";
if (isset($_POST['contact'])) {
$contact_id = intval($_POST['contact']);
}
$assigned_to = "0";
if (isset($_POST['assigned_to'])) {
$assigned_to = intval($_POST['assigned_to']);
}

View File

@@ -1318,7 +1318,7 @@ if (isset($_POST['export_client_tickets_csv'])) {
exit;
}
if (isset($_POST['add_scheduled_ticket']) || isset($_POST['add_recurring_ticket'])) {
if (isset($_POST['add_recurring_ticket'])) {
validateTechRole();
@@ -1334,7 +1334,7 @@ if (isset($_POST['add_scheduled_ticket']) || isset($_POST['add_recurring_ticket'
}
// Add scheduled ticket
mysqli_query($mysqli, "INSERT INTO scheduled_tickets SET scheduled_ticket_subject = '$subject', scheduled_ticket_details = '$details', scheduled_ticket_priority = '$priority', scheduled_ticket_frequency = '$frequency', scheduled_ticket_start_date = '$start_date', scheduled_ticket_next_run = '$start_date', scheduled_ticket_created_by = $session_user_id, scheduled_ticket_client_id = $client_id, scheduled_ticket_contact_id = $contact_id, scheduled_ticket_asset_id = $asset_id");
mysqli_query($mysqli, "INSERT INTO scheduled_tickets SET scheduled_ticket_subject = '$subject', scheduled_ticket_details = '$details', scheduled_ticket_priority = '$priority', scheduled_ticket_frequency = '$frequency', scheduled_ticket_start_date = '$start_date', scheduled_ticket_next_run = '$start_date', scheduled_ticket_assigned_to = $assigned_to, scheduled_ticket_created_by = $session_user_id, scheduled_ticket_client_id = $client_id, scheduled_ticket_contact_id = $contact_id, scheduled_ticket_asset_id = $asset_id");
$scheduled_ticket_id = mysqli_insert_id($mysqli);
@@ -1346,7 +1346,7 @@ if (isset($_POST['add_scheduled_ticket']) || isset($_POST['add_recurring_ticket'
header("Location: " . $_SERVER["HTTP_REFERER"]);
}
if (isset($_POST['edit_scheduled_ticket']) || isset($_POST['edit_recurring_ticket'])) {
if (isset($_POST['edit_recurring_ticket'])) {
validateTechRole();
@@ -1363,7 +1363,7 @@ if (isset($_POST['edit_scheduled_ticket']) || isset($_POST['edit_recurring_ticke
}
// Edit scheduled ticket
mysqli_query($mysqli, "UPDATE scheduled_tickets SET scheduled_ticket_subject = '$subject', scheduled_ticket_details = '$details', scheduled_ticket_priority = '$priority', scheduled_ticket_frequency = '$frequency', scheduled_ticket_next_run = '$next_run_date', scheduled_ticket_asset_id = $asset_id, scheduled_ticket_contact_id = $contact_id WHERE scheduled_ticket_id = $scheduled_ticket_id");
mysqli_query($mysqli, "UPDATE scheduled_tickets SET scheduled_ticket_subject = '$subject', scheduled_ticket_details = '$details', scheduled_ticket_priority = '$priority', scheduled_ticket_frequency = '$frequency', scheduled_ticket_next_run = '$next_run_date', scheduled_ticket_assigned_to = $assigned_to, scheduled_ticket_asset_id = $asset_id, scheduled_ticket_contact_id = $contact_id WHERE scheduled_ticket_id = $scheduled_ticket_id");
// Logging
mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Recurring Ticket', log_action = 'Modify', log_description = '$session_name modified recurring ticket for $subject - $frequency', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $scheduled_ticket_id");

View File

@@ -207,6 +207,10 @@ if (isset($_GET['disable_user'])) {
mysqli_query($mysqli, "UPDATE users SET user_status = 0 WHERE user_id = $user_id");
// Un-assign tickets
mysqli_query($mysqli, "UPDATE tickets SET ticket_assigned_to = 0 WHERE ticket_assigned_to = $user_id AND ticket_closed_at IS NULL");
mysqli_query($mysqli, "UPDATE scheduled_tickets SET scheduled_ticket_assigned_to = 0 WHERE scheduled_ticket_assigned_to = $user_id");
//Logging
mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'User', log_action = 'Modify', log_description = '$session_name disabled user $user_name', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id, log_entity_id = $user_id");