@ -53,13 +53,13 @@ class TicketManager
$order = Database::escape_string($order);
$order = Database::escape_string($order);
$projectId = (int) $projectId;
$projectId = (int) $projectId;
$sql = "SELECT
$sql = "SELECT
category.*,
category.*,
category.id category_id,
category.id category_id,
project.other_area,
project.other_area,
project.email
project.email
FROM
FROM
$table_support_category category
$table_support_category category
INNER JOIN $table_support_project project
INNER JOIN $table_support_project project
ON project.id = category.project_id
ON project.id = category.project_id
WHERE project.id = $projectId
WHERE project.id = $projectId
@ -220,7 +220,7 @@ class TicketManager
$table = Database::get_main_table(TABLE_TICKET_CATEGORY_REL_USER);
$table = Database::get_main_table(TABLE_TICKET_CATEGORY_REL_USER);
$userId = (int) $userId;
$userId = (int) $userId;
$categoryId = (int) $categoryId;
$categoryId = (int) $categoryId;
$sql = "SELECT * FROM $table
$sql = "SELECT * FROM $table
WHERE category_id = $categoryId AND user_id = $userId";
WHERE category_id = $categoryId AND user_id = $userId";
$result = Database::query($sql);
$result = Database::query($sql);
@ -287,6 +287,8 @@ class TicketManager
* @param string $priority
* @param string $priority
* @param string $status
* @param string $status
* @param int $assignedUserId
* @param int $assignedUserId
* @param int $exerciseId
* @param int $lpId
*
*
* @return bool
* @return bool
*/
*/
@ -303,7 +305,9 @@ class TicketManager
$source = '',
$source = '',
$priority = '',
$priority = '',
$status = '',
$status = '',
$assignedUserId = 0
$assignedUserId = 0,
$exerciseId = null,
$lpId = null
) {
) {
$table_support_tickets = Database::get_main_table(TABLE_TICKET_TICKET);
$table_support_tickets = Database::get_main_table(TABLE_TICKET_TICKET);
$table_support_category = Database::get_main_table(TABLE_TICKET_CATEGORY);
$table_support_category = Database::get_main_table(TABLE_TICKET_CATEGORY);
@ -365,6 +369,14 @@ class TicketManager
'message' => $content,
'message' => $content,
];
];
if (!empty($exerciseId)) {
$params['exercise_id'] = $exerciseId;
}
if (!empty($lpId)) {
$params['lp_id'] = $lpId;
}
if (!empty($course_id)) {
if (!empty($course_id)) {
$params['course_id'] = $course_id;
$params['course_id'] = $course_id;
}
}
@ -372,6 +384,7 @@ class TicketManager
if (!empty($sessionId)) {
if (!empty($sessionId)) {
$params['session_id'] = $sessionId;
$params['session_id'] = $sessionId;
}
}
$ticketId = Database::insert($table_support_tickets, $params);
$ticketId = Database::insert($table_support_tickets, $params);
if ($ticketId) {
if ($ticketId) {
@ -670,7 +683,7 @@ class TicketManager
if ($messageId) {
if ($messageId) {
// update_total_message
// update_total_message
$sql = "UPDATE $table_support_tickets
$sql = "UPDATE $table_support_tickets
SET
SET
sys_lastedit_user_id = $userId,
sys_lastedit_user_id = $userId,
sys_lastedit_datetime = '$now',
sys_lastedit_datetime = '$now',
total_messages = (
total_messages = (
@ -827,26 +840,26 @@ class TicketManager
$column = 'ticket_id';
$column = 'ticket_id';
}
}
$sql = "SELECT DISTINCT
$sql = "SELECT DISTINCT
ticket.*,
ticket.*,
ticket.id ticket_id,
ticket.id ticket_id,
status.name AS status_name,
status.name AS status_name,
ticket.start_date,
ticket.start_date,
ticket.sys_lastedit_datetime,
ticket.sys_lastedit_datetime,
cat.name AS category_name,
cat.name AS category_name,
priority.name AS priority_name,
priority.name AS priority_name,
ticket.total_messages AS total_messages,
ticket.total_messages AS total_messages,
ticket.message AS message,
ticket.message AS message,
ticket.subject AS subject,
ticket.subject AS subject,
ticket.assigned_last_user
ticket.assigned_last_user
FROM $table_support_tickets ticket
FROM $table_support_tickets ticket
INNER JOIN $table_support_category cat
INNER JOIN $table_support_category cat
ON (cat.id = ticket.category_id)
ON (cat.id = ticket.category_id)
INNER JOIN $table_support_priority priority
INNER JOIN $table_support_priority priority
ON (ticket.priority_id = priority.id)
ON (ticket.priority_id = priority.id)
INNER JOIN $table_support_status status
INNER JOIN $table_support_status status
ON (ticket.status_id = status.id)
ON (ticket.status_id = status.id)
WHERE 1=1
WHERE 1=1
";
";
$projectId = (int) $_GET['project_id'];
$projectId = (int) $_GET['project_id'];
@ -870,7 +883,7 @@ class TicketManager
cat.name LIKE '%$keyword%' OR
cat.name LIKE '%$keyword%' OR
status.name LIKE '%$keyword%' OR
status.name LIKE '%$keyword%' OR
priority.name LIKE '%$keyword%' OR
priority.name LIKE '%$keyword%' OR
ticket.personal_email LIKE '%$keyword%'
ticket.personal_email LIKE '%$keyword%'
)";
)";
}
}
@ -908,11 +921,11 @@ class TicketManager
if ($keyword_course != '') {
if ($keyword_course != '') {
$course_table = Database::get_main_table(TABLE_MAIN_COURSE);
$course_table = Database::get_main_table(TABLE_MAIN_COURSE);
$sql .= " AND ticket.course_id IN (
$sql .= " AND ticket.course_id IN (
SELECT id FROM $course_table
SELECT id FROM $course_table
WHERE (
WHERE (
title LIKE '%$keyword_course%' OR
title LIKE '%$keyword_course%' OR
code LIKE '%$keyword_course%' OR
code LIKE '%$keyword_course%' OR
visual_code LIKE '%$keyword_course%'
visual_code LIKE '%$keyword_course%'
)
)
)";
)";
@ -1091,12 +1104,12 @@ class TicketManager
}
}
if ($keyword_course != '') {
if ($keyword_course != '') {
$course_table = Database::get_main_table(TABLE_MAIN_COURSE);
$course_table = Database::get_main_table(TABLE_MAIN_COURSE);
$sql .= " AND ticket.course_id IN (
$sql .= " AND ticket.course_id IN (
SELECT id
SELECT id
FROM $course_table
FROM $course_table
WHERE (
WHERE (
title LIKE '%$keyword_course%' OR
title LIKE '%$keyword_course%' OR
code LIKE '%$keyword_course%' OR
code LIKE '%$keyword_course%' OR
visual_code LIKE '%$keyword_course%'
visual_code LIKE '%$keyword_course%'
)
)
) ";
) ";
@ -1159,9 +1172,9 @@ class TicketManager
$table_main_user = Database::get_main_table(TABLE_MAIN_USER);
$table_main_user = Database::get_main_table(TABLE_MAIN_USER);
$sql = "SELECT
$sql = "SELECT
ticket.*,
ticket.*,
cat.name,
cat.name,
status.name as status,
status.name as status,
priority.name priority
priority.name priority
FROM $table_support_tickets ticket
FROM $table_support_tickets ticket
INNER JOIN $table_support_category cat
INNER JOIN $table_support_category cat
@ -1205,6 +1218,35 @@ class TicketManager
if ($course) {
if ($course) {
$row['course_url'] = '< a href = "'.$course['course_public_url'].'?id_session='.$sessionId.'" > '.$course['name'].'< / a > ';
$row['course_url'] = '< a href = "'.$course['course_public_url'].'?id_session='.$sessionId.'" > '.$course['name'].'< / a > ';
}
}
$row['exercise_url'] = null;
if (!empty($row['exercise_id'])) {
$exerciseTitle = ExerciseLib::getExerciseTitleById($row['exercise_id']);
$dataExercise = [
'cidReq' => $course['code'],
'id_session' => $sessionId,
'exerciseId' => $row['exercise_id']
];
$urlParamsExercise = http_build_query($dataExercise);
$row['exercise_url'] = '< a href = "'.api_get_path(WEB_CODE_PATH).'exercise/overview.php?'.$urlParamsExercise.'" > '.$exerciseTitle.'< / a > ';
}
$row['lp_url'] = null;
if (!empty($row['lp_id'])) {
$lpName = learnpath::getLpNameById($row['lp_id']);
$dataLp = [
'cidReq' => $course['code'],
'id_session' => $sessionId,
'lp_id' => $row['lp_id'],
'action' => 'view'
];
$urlParamsLp = http_build_query($dataLp);
$row['lp_url'] = '< a href = "'.api_get_path(WEB_CODE_PATH).'lp/lp_controller.php?'.$urlParamsLp.'" > '.$lpName.'< / a > ';
}
}
}
$userInfo = api_get_user_info($row['sys_insert_user_id']);
$userInfo = api_get_user_info($row['sys_insert_user_id']);
@ -1214,8 +1256,8 @@ class TicketManager
$ticket['ticket'] = $row;
$ticket['ticket'] = $row;
}
}
$sql = "SELECT *, message.id as message_id
$sql = "SELECT *, message.id as message_id
FROM $table_support_messages message
FROM $table_support_messages message
INNER JOIN $table_main_user user
INNER JOIN $table_main_user user
ON (message.sys_insert_user_id = user.user_id)
ON (message.sys_insert_user_id = user.user_id)
WHERE
WHERE