Nothing to see here
Go Back";
include_once "footer.php";
exit;
}
$row = mysqli_fetch_array($sql_project);
$project_id = intval($row['project_id']);
$project_prefix = nullable_htmlentities($row['project_prefix']);
$project_number = intval($row['project_number']);
$project_name = nullable_htmlentities($row['project_name']);
$project_description = nullable_htmlentities($row['project_description']);
$project_due = nullable_htmlentities($row['project_due']);
$project_created_at = date("Y-m-d", strtotime($row['project_created_at']));
$project_updated_at = nullable_htmlentities($row['project_updated_at']);
$project_completed_at = nullable_htmlentities($row['project_completed_at']);
$project_archived_at = nullable_htmlentities($row['project_archived_at']);
$client_id = intval($row['client_id']);
$client_name = nullable_htmlentities($row['client_name']);
if ($client_name) {
$client_name_display = "$client_name
";
} else {
$client_name_display = "";
}
$project_manager = intval($row['user_id']);
$project_manager_name = nullable_htmlentities($row['user_name']);
if ($project_manager) {
$project_manager_display = "$project_manager_name
";
} else {
$project_manager_display = "-";
}
if ($project_completed_at) {
$project_status_display = "Closed";
$project_completed_date_display = "" . date('Y-m-d', strtotime($project_completed_at)) . "
";
} else {
$project_status_display = "Open";
$project_completed_date_display = "";
}
// Get Tickets
$sql_tickets = mysqli_query($mysqli, "SELECT * FROM tickets
LEFT JOIN ticket_statuses ON ticket_status = ticket_status_id
LEFT JOIN clients ON ticket_client_id = client_id
LEFT JOIN users ON ticket_assigned_to = user_id
WHERE ticket_project_id = $project_id ORDER BY ticket_number ASC"
);
$ticket_count = mysqli_num_rows($sql_tickets);
// Get Closed Ticket Count
$sql_closed_tickets = mysqli_query($mysqli, "SELECT * FROM tickets WHERE ticket_project_id = $project_id AND ticket_closed_at IS NOT NULL");
$closed_ticket_count = mysqli_num_rows($sql_closed_tickets);
$tickets_closed_percent = 100; //Default
if ($ticket_count) {
$tickets_closed_percent = round(($closed_ticket_count / $ticket_count) * 100);
}
// Get All Tasks
$sql_tasks = mysqli_query($mysqli,
"SELECT * FROM tickets, tasks
WHERE ticket_id = task_ticket_id
AND ticket_project_id = $project_id
ORDER BY task_created_at ASC"
);
$task_count = mysqli_num_rows($sql_tasks);
// Get Completed Task Count
$sql_tasks_completed = mysqli_query($mysqli,
"SELECT * FROM tickets, tasks
WHERE ticket_id = task_ticket_id
AND ticket_project_id = $project_id
AND task_completed_at IS NOT NULL"
);
$completed_task_count = mysqli_num_rows($sql_tasks_completed);
// Tasks Completed Percent
if ($task_count) {
$tasks_completed_percent = round(($completed_task_count / $task_count) * 100);
}
//Get Total Ticket Time
$sql_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
LEFT JOIN tickets ON ticket_id = ticket_reply_ticket_id
WHERE ticket_reply_archived_at IS NULL AND ticket_project_id = $project_id");
$row = mysqli_fetch_array($sql_ticket_total_reply_time);
$ticket_total_reply_time = nullable_htmlentities($row['ticket_total_reply_time']);
// Get all Assigned ticket Users as a comma-separated string
$sql_project_collaborators = mysqli_query($mysqli, "
SELECT GROUP_CONCAT(DISTINCT user_name SEPARATOR ', ') AS user_names
FROM users
LEFT JOIN ticket_replies ON user_id = ticket_reply_by
LEFT JOIN tickets ON ticket_id = ticket_reply_ticket_id
WHERE ticket_reply_archived_at IS NULL AND ticket_project_id = $project_id
");
// Fetch the result
$row = mysqli_fetch_assoc($sql_project_collaborators);
// The user names in a comma-separated string
$ticket_collaborators = nullable_htmlentities($row['user_names']);
?>
-
Projects
- Project Details
0) { ?>
Project Tickets
| Ticket |
Priority |
Status |
Assigned |
Last Response |
Client |
Never";
} else {
$ticket_updated_at_display = "Never
";
}
} else {
$ticket_updated_at_display = "$ticket_updated_at_time_ago
$ticket_updated_at";
}
$ticket_closed_at = nullable_htmlentities($row['ticket_closed_at']);
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_assigned_to = intval($row['ticket_assigned_to']);
if (empty($ticket_assigned_to)) {
if ($ticket_status == 5) {
$ticket_assigned_to_display = "Not Assigned
";
} else {
$ticket_assigned_to_display = "Not Assigned
";
}
} else {
$ticket_assigned_to_display = nullable_htmlentities($row['user_name']);
}
$project_id = intval($row['ticket_project_id']);
$client_id = intval($row['client_id']);
$client_name = nullable_htmlentities($row['client_name']);
$contact_name = nullable_htmlentities($row['contact_name']);
$contact_email = nullable_htmlentities($row['contact_email']);
$contact_archived_at = nullable_htmlentities($row['contact_archived_at']);
if (empty($contact_archived_at)) {
$contact_archived_display = "";
} else {
$contact_archived_display = "Archived - ";
}
if (empty($contact_name)) {
$contact_display = "-";
} else {
$contact_display = "$contact_archived_display$contact_name
$contact_email";
}
// Get who last updated the ticket - to be shown in the last Response column
$ticket_reply_type = "Client"; // Default to client for unreplied tickets
$ticket_reply_by_display = ""; // Default none
$sql_ticket_reply = mysqli_query($mysqli, "SELECT ticket_reply_type, contact_name, user_name 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 LIMIT 1"
);
$row = mysqli_fetch_array($sql_ticket_reply);
if ($row) {
$ticket_reply_type = nullable_htmlentities($row['ticket_reply_type']);
if ($ticket_reply_type == "Client") {
$ticket_reply_by_display = nullable_htmlentities($row['contact_name']);
} else {
$ticket_reply_by_display = nullable_htmlentities($row['user_name']);
}
}
?>
|
|
|
|
|
|
|