|
@@ -1,14 +1,9 @@
|
|
|
<?php
|
|
|
-
|
|
|
/* For licensing terms, see /license.txt */
|
|
|
-/**
|
|
|
- * Declaration of TicketManager class
|
|
|
- * @package chamilo.plugin.ticket
|
|
|
- */
|
|
|
|
|
|
/**
|
|
|
* Class TicketManager
|
|
|
- *
|
|
|
+ * @package chamilo.plugin.ticket
|
|
|
*/
|
|
|
class TicketManager
|
|
|
{
|
|
@@ -18,7 +13,7 @@ class TicketManager
|
|
|
*/
|
|
|
function __construct()
|
|
|
{
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -27,15 +22,11 @@ class TicketManager
|
|
|
*/
|
|
|
public static function get_all_tickets_categories()
|
|
|
{
|
|
|
- $table_support_category = Database::get_main_table(
|
|
|
- TABLE_TICKET_CATEGORY
|
|
|
- );
|
|
|
- $table_support_project = Database::get_main_table(
|
|
|
- TABLE_TICKET_PROJECT
|
|
|
- );
|
|
|
+ $table_support_category = Database::get_main_table(TABLE_TICKET_CATEGORY);
|
|
|
+ $table_support_project = Database::get_main_table(TABLE_TICKET_PROJECT);
|
|
|
$sql = "SELECT category.*, project.other_area , project.email
|
|
|
FROM $table_support_category category, $table_support_project project
|
|
|
- WHERE project.project_id = category.project_id
|
|
|
+ WHERE project.project_id = category.project_id
|
|
|
ORDER BY category.total_tickets DESC;";
|
|
|
$result = Database::query($sql);
|
|
|
$types = array();
|
|
@@ -81,12 +72,11 @@ class TicketManager
|
|
|
* @return bool
|
|
|
*/
|
|
|
public static function insert_new_ticket(
|
|
|
- $category_id, $course_id, $project_id, $other_area, $email,
|
|
|
- $subject, $content, $personalEmail = "", $file_attachments,
|
|
|
- $source = 'VRT', $priority = 'NRM', $status = '',
|
|
|
+ $category_id, $course_id, $project_id, $other_area, $email,
|
|
|
+ $subject, $content, $personalEmail = "", $file_attachments,
|
|
|
+ $source = 'VRT', $priority = 'NRM', $status = '',
|
|
|
$request_user = '', $assigned_user = 0
|
|
|
- )
|
|
|
- {
|
|
|
+ ) {
|
|
|
global $plugin;
|
|
|
$table_support_tickets = Database::get_main_table(TABLE_TICKET_TICKET);
|
|
|
$table_support_category = Database::get_main_table(
|
|
@@ -144,7 +134,7 @@ class TicketManager
|
|
|
)";
|
|
|
Database::query($sql_insert_ticket);
|
|
|
$ticket_id = Database::insert_id();
|
|
|
-
|
|
|
+
|
|
|
if ($assigned_user != 0) {
|
|
|
self::assign_ticket_user($ticket_id, $assigned_user);
|
|
|
}
|
|
@@ -159,7 +149,7 @@ class TicketManager
|
|
|
Database::query($sql_update_code);
|
|
|
$data_files = array();
|
|
|
$sql_update_total = "UPDATE $table_support_category
|
|
|
- SET total_tickets = total_tickets +1
|
|
|
+ SET total_tickets = total_tickets +1
|
|
|
WHERE category_id = '$category_id';";
|
|
|
Database::query($sql_update_total);
|
|
|
if (self::insert_message($ticket_id, $subject, $content, $file_attachments, $request_user)) {
|
|
@@ -189,8 +179,8 @@ class TicketManager
|
|
|
</tr>
|
|
|
</table>';
|
|
|
api_mail_html(
|
|
|
- $plugin->get_lang('VirtualSupport'), $email, $plugin->get_lang('IncidentResentToVirtualSupport'),
|
|
|
- $helpDeskMessage, $user['firstname'] . ' ' . $user['lastname'], $personalEmail,
|
|
|
+ $plugin->get_lang('VirtualSupport'), $email, $plugin->get_lang('IncidentResentToVirtualSupport'),
|
|
|
+ $helpDeskMessage, $user['firstname'] . ' ' . $user['lastname'], $personalEmail,
|
|
|
array(), $data_files
|
|
|
);
|
|
|
$studentMessage = sprintf($plugin->get_lang('YourQuestionWasSentToTheResponableAreaX'), $email, $email);
|
|
@@ -271,7 +261,7 @@ class TicketManager
|
|
|
* @return bool
|
|
|
*/
|
|
|
public static function insert_message(
|
|
|
- $ticket_id, $subject, $content, $file_attachments,
|
|
|
+ $ticket_id, $subject, $content, $file_attachments,
|
|
|
$user_id, $status = 'NOL', $sendConfirmation = false
|
|
|
)
|
|
|
{
|
|
@@ -372,9 +362,11 @@ class TicketManager
|
|
|
* @return array
|
|
|
*/
|
|
|
public static function save_message_attachment_file(
|
|
|
- $file_attach, $ticket_id, $message_id, $message_attch_id
|
|
|
- )
|
|
|
- {
|
|
|
+ $file_attach,
|
|
|
+ $ticket_id,
|
|
|
+ $message_id,
|
|
|
+ $message_attch_id
|
|
|
+ ) {
|
|
|
$now = api_get_utc_datetime();
|
|
|
$user_id = api_get_user_id();
|
|
|
$ticket_id = intval($ticket_id);
|
|
@@ -382,21 +374,17 @@ class TicketManager
|
|
|
stripslashes($file_attach['name']), $file_attach['type']
|
|
|
);
|
|
|
$file_name = $file_attach['name'];
|
|
|
- $table_support_message_attachments = Database::get_main_table(
|
|
|
- TABLE_TICKET_MESSAGE_ATTACHMENTS
|
|
|
- );
|
|
|
+ $table_support_message_attachments = Database::get_main_table(TABLE_TICKET_MESSAGE_ATTACHMENTS);
|
|
|
if (!filter_extension($new_file_name)) {
|
|
|
Display :: display_error_message(
|
|
|
- get_lang('UplUnableToSaveFileFilteredExtension')
|
|
|
+ get_lang('UplUnableToSaveFileFilteredExtension')
|
|
|
);
|
|
|
} else {
|
|
|
$new_file_name = uniqid('');
|
|
|
$path_attachment = api_get_path(SYS_ARCHIVE_PATH);
|
|
|
$path_message_attach = $path_attachment . 'plugin_ticket_messageattch/';
|
|
|
if (!file_exists($path_message_attach)) {
|
|
|
- @mkdir(
|
|
|
- $path_message_attach, api_get_permissions_for_new_directories(), true
|
|
|
- );
|
|
|
+ @mkdir($path_message_attach, api_get_permissions_for_new_directories(), true);
|
|
|
}
|
|
|
$new_path = $path_message_attach . $new_file_name;
|
|
|
if (is_uploaded_file($file_attach['tmp_name'])) {
|
|
@@ -516,46 +504,46 @@ class TicketManager
|
|
|
//Search advanced
|
|
|
if (isset($_GET['submit_advanced'])) {
|
|
|
$keyword_category = Database::escape_string(
|
|
|
- trim($_GET['keyword_category'])
|
|
|
+ trim($_GET['keyword_category'])
|
|
|
);
|
|
|
$keyword_request_user = Database::escape_string(
|
|
|
- trim($_GET['keyword_request_user'])
|
|
|
+ trim($_GET['keyword_request_user'])
|
|
|
);
|
|
|
$keyword_admin = Database::escape_string(
|
|
|
- trim($_GET['keyword_admin'])
|
|
|
+ trim($_GET['keyword_admin'])
|
|
|
);
|
|
|
$keyword_start_date_start = Database::escape_string(
|
|
|
- trim($_GET['keyword_start_date_start'])
|
|
|
+ trim($_GET['keyword_start_date_start'])
|
|
|
);
|
|
|
$keyword_start_date_end = Database::escape_string(
|
|
|
- trim($_GET['keyword_start_date_end'])
|
|
|
+ trim($_GET['keyword_start_date_end'])
|
|
|
);
|
|
|
$keyword_status = Database::escape_string(
|
|
|
- trim($_GET['keyword_status'])
|
|
|
+ trim($_GET['keyword_status'])
|
|
|
);
|
|
|
$keyword_source = Database::escape_string(
|
|
|
- trim($_GET['keyword_source'])
|
|
|
+ trim($_GET['keyword_source'])
|
|
|
);
|
|
|
$keyword_priority = Database::escape_string(
|
|
|
- trim($_GET['keyword_priority'])
|
|
|
+ trim($_GET['keyword_priority'])
|
|
|
);
|
|
|
$keyword_range = Database::escape_string(
|
|
|
- trim($_GET['keyword_dates'])
|
|
|
+ trim($_GET['keyword_dates'])
|
|
|
);
|
|
|
$keyword_course = Database::escape_string(
|
|
|
- trim($_GET['keyword_course'])
|
|
|
+ trim($_GET['keyword_course'])
|
|
|
);
|
|
|
|
|
|
if ($keyword_category != '') {
|
|
|
$sql .= " AND ticket.category_id = '$keyword_category' ";
|
|
|
}
|
|
|
if ($keyword_request_user != '') {
|
|
|
- $sql .= " AND (ticket.request_user = '$keyword_request_user'
|
|
|
+ $sql .= " AND (ticket.request_user = '$keyword_request_user'
|
|
|
OR user.firstname LIKE '%$keyword_request_user%'
|
|
|
- OR user.official_code LIKE '%$keyword_request_user%'
|
|
|
- OR user.lastname LIKE '%$keyword_request_user%'
|
|
|
- OR concat(user.firstname,' ',user.lastname) LIKE '%$keyword_request_user%'
|
|
|
- OR concat(user.lastname,' ',user.firstname) LIKE '%$keyword_request_user%'
|
|
|
+ OR user.official_code LIKE '%$keyword_request_user%'
|
|
|
+ OR user.lastname LIKE '%$keyword_request_user%'
|
|
|
+ OR concat(user.firstname,' ',user.lastname) LIKE '%$keyword_request_user%'
|
|
|
+ OR concat(user.lastname,' ',user.firstname) LIKE '%$keyword_request_user%'
|
|
|
OR user.username LIKE '%$keyword_request_user%') ";
|
|
|
}
|
|
|
if ($keyword_admin != '') {
|
|
@@ -620,27 +608,27 @@ class TicketManager
|
|
|
}
|
|
|
$sql .= " ORDER BY col$column $direction";
|
|
|
$sql .= " LIMIT $from,$number_of_items";
|
|
|
-
|
|
|
+
|
|
|
$result = Database::query($sql);
|
|
|
$tickets = array();
|
|
|
$webPath = api_get_path(WEB_PATH);
|
|
|
$webCodePath = api_get_path(WEB_CODE_PATH);
|
|
|
while ($row = Database::fetch_assoc($result)) {
|
|
|
$sql_unread = "SELECT
|
|
|
- COUNT(DISTINCT message.message_id) AS unread
|
|
|
- FROM $table_support_tickets ticket,
|
|
|
+ COUNT(DISTINCT message.message_id) AS unread
|
|
|
+ FROM $table_support_tickets ticket,
|
|
|
$table_support_messages message,
|
|
|
$table_main_user user
|
|
|
- WHERE ticket.ticket_id = message.ticket_id
|
|
|
+ WHERE ticket.ticket_id = message.ticket_id
|
|
|
AND ticket.ticket_id = '{$row['col0']}'
|
|
|
- AND message.status = 'NOL'
|
|
|
+ AND message.status = 'NOL'
|
|
|
AND message.sys_insert_user_id = user.user_id ";
|
|
|
if ($isAdmin) {
|
|
|
- $sql_unread .= " AND user.user_id
|
|
|
+ $sql_unread .= " AND user.user_id
|
|
|
NOT IN (SELECT user_id FROM $table_main_admin)
|
|
|
AND ticket.status_id != 'REE' ";
|
|
|
} else {
|
|
|
- $sql_unread .= " AND user.user_id
|
|
|
+ $sql_unread .= " AND user.user_id
|
|
|
IN (SELECT user_id FROM $table_main_admin) ";
|
|
|
}
|
|
|
$result_unread = Database::query($sql_unread);
|
|
@@ -649,7 +637,7 @@ class TicketManager
|
|
|
$hrefUser = $webPath . 'main/admin/user_information.php?user_id=' . $row['user_id'];
|
|
|
$name = "<a href='$hrefUser'> {$userInfo['username']} </a>";
|
|
|
$actions = "";
|
|
|
-
|
|
|
+
|
|
|
if ($row['responsible'] != 0) {
|
|
|
$hrefResp = $webPath . 'main/admin/user_information.php?user_id=' . $row['responsible']['user_id'];
|
|
|
$row['responsible'] = api_get_user_info($row['responsible']);
|
|
@@ -690,7 +678,7 @@ class TicketManager
|
|
|
if ($row['col7'] == 'PENDIENTE') {
|
|
|
$row['col7'] = '<span style="color: #f00; font-weight:bold;">' . $row['col7'] . '</span>';
|
|
|
}
|
|
|
- //programa: $userInfo['extra']['programa']
|
|
|
+
|
|
|
$ticket = array(
|
|
|
$row['col0'],
|
|
|
api_format_date($row['col1'], '%d/%m/%y - %I:%M:%S %p'),
|
|
@@ -701,9 +689,7 @@ class TicketManager
|
|
|
$row['col7'],
|
|
|
$row['col8'],
|
|
|
$actions,
|
|
|
- eregi_replace(
|
|
|
- "[\n|\r|\n\r|\r\n]", ' ', strip_tags($row['col9'])
|
|
|
- )
|
|
|
+ eregi_replace("[\n|\r|\n\r|\r\n]", ' ', strip_tags($row['col9']))
|
|
|
);
|
|
|
} else {
|
|
|
$actions = "";
|
|
@@ -752,7 +738,7 @@ class TicketManager
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * @param null $user_id
|
|
|
+ * @param int $user_id
|
|
|
* @return mixed
|
|
|
*/
|
|
|
public static function get_total_tickets_by_user_id($user_id = null)
|
|
@@ -776,13 +762,13 @@ class TicketManager
|
|
|
}
|
|
|
$sql = "SELECT COUNT(ticket.ticket_id) AS total
|
|
|
FROM $table_support_tickets ticket ,
|
|
|
- $table_support_category cat ,
|
|
|
+ $table_support_category cat ,
|
|
|
$table_support_priority priority,
|
|
|
- $table_support_status status ,
|
|
|
+ $table_support_status status ,
|
|
|
$table_main_user user
|
|
|
- WHERE cat.category_id = ticket.category_id
|
|
|
- AND ticket.priority_id = priority.priority_id
|
|
|
- AND ticket.status_id = status.status_id
|
|
|
+ WHERE cat.category_id = ticket.category_id
|
|
|
+ AND ticket.priority_id = priority.priority_id
|
|
|
+ AND ticket.status_id = status.status_id
|
|
|
AND user.user_id = ticket.request_user ";
|
|
|
if (!api_is_platform_admin()) {
|
|
|
$sql .= " AND request_user = '$user_id' ";
|
|
@@ -793,47 +779,47 @@ class TicketManager
|
|
|
if ($_GET['keyword'] != '') {
|
|
|
$keyword = Database::escape_string(trim($_GET['keyword']));
|
|
|
$sql .= " AND (ticket.ticket_code = '$keyword'
|
|
|
- OR user.firstname LIKE '%$keyword%'
|
|
|
- OR user.lastname LIKE '%$keyword%'
|
|
|
- OR concat(user.firstname,' ',user.lastname) LIKE '%$keyword%'
|
|
|
- OR concat(user.lastname,' ',user.firstname) LIKE '%$keyword%'
|
|
|
+ OR user.firstname LIKE '%$keyword%'
|
|
|
+ OR user.lastname LIKE '%$keyword%'
|
|
|
+ OR concat(user.firstname,' ',user.lastname) LIKE '%$keyword%'
|
|
|
+ OR concat(user.lastname,' ',user.firstname) LIKE '%$keyword%'
|
|
|
OR user.username LIKE '%$keyword%') ";
|
|
|
}
|
|
|
}
|
|
|
$keyword_unread = Database::escape_string(
|
|
|
- trim($_GET['keyword_unread'])
|
|
|
+ trim($_GET['keyword_unread'])
|
|
|
);
|
|
|
//Search advanced
|
|
|
if (isset($_GET['submit_advanced'])) {
|
|
|
$keyword_category = Database::escape_string(
|
|
|
- trim($_GET['keyword_category'])
|
|
|
+ trim($_GET['keyword_category'])
|
|
|
);
|
|
|
$keyword_request_user = Database::escape_string(
|
|
|
- trim($_GET['keyword_request_user'])
|
|
|
+ trim($_GET['keyword_request_user'])
|
|
|
);
|
|
|
$keyword_admin = Database::escape_string(
|
|
|
- trim($_GET['keyword_admin'])
|
|
|
+ trim($_GET['keyword_admin'])
|
|
|
);
|
|
|
$keyword_start_date_start = Database::escape_string(
|
|
|
- trim($_GET['keyword_start_date_start'])
|
|
|
+ trim($_GET['keyword_start_date_start'])
|
|
|
);
|
|
|
$keyword_start_date_end = Database::escape_string(
|
|
|
- trim($_GET['keyword_start_date_end'])
|
|
|
+ trim($_GET['keyword_start_date_end'])
|
|
|
);
|
|
|
$keyword_status = Database::escape_string(
|
|
|
- trim($_GET['keyword_status'])
|
|
|
+ trim($_GET['keyword_status'])
|
|
|
);
|
|
|
$keyword_source = Database::escape_string(
|
|
|
- trim($_GET['keyword_source'])
|
|
|
+ trim($_GET['keyword_source'])
|
|
|
);
|
|
|
$keyword_priority = Database::escape_string(
|
|
|
- trim($_GET['keyword_priority'])
|
|
|
+ trim($_GET['keyword_priority'])
|
|
|
);
|
|
|
$keyword_range = Database::escape_string(
|
|
|
- trim($_GET['keyword_dates'])
|
|
|
+ trim($_GET['keyword_dates'])
|
|
|
);
|
|
|
$keyword_course = Database::escape_string(
|
|
|
- trim($_GET['keyword_course'])
|
|
|
+ trim($_GET['keyword_course'])
|
|
|
);
|
|
|
|
|
|
if ($keyword_category != '') {
|
|
@@ -841,10 +827,10 @@ class TicketManager
|
|
|
}
|
|
|
if ($keyword_request_user != '') {
|
|
|
$sql .= " AND (ticket.request_user = '$keyword_request_user'
|
|
|
- OR user.firstname LIKE '%$keyword_request_user%'
|
|
|
+ OR user.firstname LIKE '%$keyword_request_user%'
|
|
|
OR user.official_code LIKE '%$keyword_request_user%'
|
|
|
- OR user.lastname LIKE '%$keyword_request_user%'
|
|
|
- OR concat(user.firstname,' ',user.lastname) LIKE '%$keyword_request_user%'
|
|
|
+ OR user.lastname LIKE '%$keyword_request_user%'
|
|
|
+ OR concat(user.firstname,' ',user.lastname) LIKE '%$keyword_request_user%'
|
|
|
OR concat(user.lastname,' ',user.firstname) LIKE '%$keyword_request_user%'
|
|
|
OR user.username LIKE '%$keyword_request_user%') ";
|
|
|
}
|
|
@@ -873,8 +859,8 @@ class TicketManager
|
|
|
if ($keyword_course != '') {
|
|
|
$course_table = Database :: get_main_table(TABLE_MAIN_COURSE);
|
|
|
$sql .= " AND ticket.course_id IN ( ";
|
|
|
- $sql .= "SELECT id
|
|
|
- FROM $course_table
|
|
|
+ $sql .= "SELECT id
|
|
|
+ FROM $course_table
|
|
|
WHERE (title LIKE '%$keyword_course%'
|
|
|
OR code LIKE '%$keyword_course%'
|
|
|
OR visual_code LIKE '%$keyword_course%' )) ";
|
|
@@ -882,29 +868,29 @@ class TicketManager
|
|
|
}
|
|
|
if ($keyword_unread == 'yes') {
|
|
|
$sql .= " AND ticket.ticket_id IN ( ";
|
|
|
- $sql .= "SELECT ticket.ticket_id
|
|
|
+ $sql .= "SELECT ticket.ticket_id
|
|
|
FROM $table_support_tickets ticket,
|
|
|
$table_support_messages message,
|
|
|
$table_main_user user
|
|
|
- WHERE ticket.ticket_id = message.ticket_id
|
|
|
- AND message.status = 'NOL'
|
|
|
- AND message.sys_insert_user_id = user.user_id
|
|
|
+ WHERE ticket.ticket_id = message.ticket_id
|
|
|
+ AND message.status = 'NOL'
|
|
|
+ AND message.sys_insert_user_id = user.user_id
|
|
|
AND user.user_id NOT IN (
|
|
|
SELECT user_id FROM $table_main_admin
|
|
|
- ) AND ticket.status_id != 'REE'
|
|
|
+ ) AND ticket.status_id != 'REE'
|
|
|
GROUP BY ticket.ticket_id)";
|
|
|
} else {
|
|
|
if ($keyword_unread == 'no') {
|
|
|
$sql .= " AND ticket.ticket_id NOT IN ( ";
|
|
|
- $sql .= " SELECT ticket.ticket_id
|
|
|
+ $sql .= " SELECT ticket.ticket_id
|
|
|
FROM $table_support_tickets ticket,
|
|
|
$table_support_messages message,
|
|
|
- $table_main_user user
|
|
|
- WHERE ticket.ticket_id = message.ticket_id
|
|
|
- AND message.status = 'NOL'
|
|
|
- AND message.sys_insert_user_id = user.user_id
|
|
|
+ $table_main_user user
|
|
|
+ WHERE ticket.ticket_id = message.ticket_id
|
|
|
+ AND message.status = 'NOL'
|
|
|
+ AND message.sys_insert_user_id = user.user_id
|
|
|
AND user.user_id NOT IN (SELECT user_id FROM $table_main_admin)
|
|
|
- AND ticket.status_id != 'REE'
|
|
|
+ AND ticket.status_id != 'REE'
|
|
|
GROUP BY ticket.ticket_id)";
|
|
|
}
|
|
|
}
|
|
@@ -915,38 +901,38 @@ class TicketManager
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * @param $ticket_id
|
|
|
- * @param $user_id
|
|
|
+ * @param int $ticket_id
|
|
|
+ * @param int $user_id
|
|
|
* @return array
|
|
|
*/
|
|
|
public static function get_ticket_detail_by_id($ticket_id, $user_id)
|
|
|
{
|
|
|
$table_support_category = Database::get_main_table(
|
|
|
- TABLE_TICKET_CATEGORY
|
|
|
+ TABLE_TICKET_CATEGORY
|
|
|
);
|
|
|
$table_support_tickets = Database::get_main_table(TABLE_TICKET_TICKET);
|
|
|
$table_support_priority = Database::get_main_table(
|
|
|
- TABLE_TICKET_PRIORITY
|
|
|
+ TABLE_TICKET_PRIORITY
|
|
|
);
|
|
|
$table_support_status = Database::get_main_table(TABLE_TICKET_STATUS);
|
|
|
$table_support_messages = Database::get_main_table(
|
|
|
- TABLE_TICKET_MESSAGE
|
|
|
+ TABLE_TICKET_MESSAGE
|
|
|
);
|
|
|
$table_support_message_attachments = Database::get_main_table(
|
|
|
- TABLE_TICKET_MESSAGE_ATTACHMENTS
|
|
|
+ TABLE_TICKET_MESSAGE_ATTACHMENTS
|
|
|
);
|
|
|
$table_main_user = Database::get_main_table(TABLE_MAIN_USER);
|
|
|
|
|
|
$sql = "SELECT
|
|
|
- ticket.* ,cat.name ,
|
|
|
- status.name as status, priority.priority
|
|
|
+ ticket.* ,cat.name ,
|
|
|
+ status.name as status, priority.priority
|
|
|
FROM $table_support_tickets ticket,
|
|
|
- $table_support_category cat ,
|
|
|
+ $table_support_category cat ,
|
|
|
$table_support_priority priority ,
|
|
|
$table_support_status status
|
|
|
- WHERE ticket.ticket_id = '$ticket_id'
|
|
|
- AND cat.category_id = ticket.category_id
|
|
|
- AND priority.priority_id = ticket.priority_id
|
|
|
+ WHERE ticket.ticket_id = '$ticket_id'
|
|
|
+ AND cat.category_id = ticket.category_id
|
|
|
+ AND priority.priority_id = ticket.priority_id
|
|
|
AND status.status_id = ticket.status_id ";
|
|
|
if (!UserManager::is_admin($user_id)) {
|
|
|
$sql .= "AND ticket.request_user = '$user_id'";
|
|
@@ -983,7 +969,7 @@ class TicketManager
|
|
|
}
|
|
|
$sql = "SELECT * FROM $table_support_messages message,
|
|
|
$table_main_user user
|
|
|
- WHERE message.ticket_id = '$ticket_id'
|
|
|
+ WHERE message.ticket_id = '$ticket_id'
|
|
|
AND message.sys_insert_user_id = user.user_id ";
|
|
|
$result = Database::query($sql);
|
|
|
$ticket['messages'] = array();
|
|
@@ -1003,7 +989,7 @@ class TicketManager
|
|
|
if (Database::num_rows($result_admin) > 0) {
|
|
|
$message['admin'] = true;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
$message['user_created'] = "<a href='$href'> $completeName </a>";
|
|
|
$sql_atachment = "SELECT * FROM $table_support_message_attachments
|
|
|
WHERE message_id = " . $row['message_id'] . "
|
|
@@ -1035,7 +1021,7 @@ class TicketManager
|
|
|
$now = api_get_utc_datetime();
|
|
|
$sql = "UPDATE " . $table_support_messages . "
|
|
|
SET status = 'LEI', sys_lastedit_user_id ='" . api_get_user_id() . "',
|
|
|
- sys_lastedit_datetime ='" . $now . "'
|
|
|
+ sys_lastedit_datetime ='" . $now . "'
|
|
|
WHERE ticket_id ='$ticket_id' ";
|
|
|
|
|
|
if (api_is_platform_admin()) {
|
|
@@ -1047,8 +1033,8 @@ class TicketManager
|
|
|
Database::query($sql);
|
|
|
if (Database::affected_rows() > 0) {
|
|
|
Database::query(
|
|
|
- "UPDATE $table_support_tickets SET status_id = 'PND'
|
|
|
- WHERE ticket_id ='$ticket_id' AND status_id = 'NAT'"
|
|
|
+ "UPDATE $table_support_tickets SET status_id = 'PND'
|
|
|
+ WHERE ticket_id ='$ticket_id' AND status_id = 'NAT'"
|
|
|
);
|
|
|
return true;
|
|
|
} else {
|
|
@@ -1063,15 +1049,14 @@ class TicketManager
|
|
|
* @return bool
|
|
|
*/
|
|
|
public static function update_ticket_status(
|
|
|
- $status_id, $ticket_id, $user_id
|
|
|
- )
|
|
|
- {
|
|
|
+ $status_id,
|
|
|
+ $ticket_id,
|
|
|
+ $user_id
|
|
|
+ ) {
|
|
|
$table_support_tickets = Database::get_main_table(TABLE_TICKET_TICKET);
|
|
|
- $table_support_messages = Database::get_main_table(
|
|
|
- TABLE_TICKET_MESSAGE
|
|
|
- );
|
|
|
+
|
|
|
$now = api_get_utc_datetime();
|
|
|
- $sql = "UPDATE " . $table_support_tickets . "
|
|
|
+ $sql = "UPDATE " . $table_support_tickets . "
|
|
|
SET status_id = '$status_id', sys_lastedit_user_id ='$user_id',
|
|
|
sys_lastedit_datetime ='" . $now . "'
|
|
|
WHERE ticket_id ='$ticket_id'";
|
|
@@ -1096,12 +1081,12 @@ class TicketManager
|
|
|
$table_main_admin = Database::get_main_table(TABLE_MAIN_ADMIN);
|
|
|
$user_info = api_get_user_info();
|
|
|
$user_id = $user_info['user_id'];
|
|
|
- $sql = "SELECT COUNT( DISTINCT ticket.ticket_id) AS unread
|
|
|
- FROM $table_support_tickets ticket,
|
|
|
- $table_support_messages message ,
|
|
|
- $table_main_user user
|
|
|
- WHERE ticket.ticket_id = message.ticket_id
|
|
|
- AND message.status = 'NOL'
|
|
|
+ $sql = "SELECT COUNT( DISTINCT ticket.ticket_id) AS unread
|
|
|
+ FROM $table_support_tickets ticket,
|
|
|
+ $table_support_messages message ,
|
|
|
+ $table_main_user user
|
|
|
+ WHERE ticket.ticket_id = message.ticket_id
|
|
|
+ AND message.status = 'NOL'
|
|
|
AND user.user_id = message.sys_insert_user_id ";
|
|
|
if (!api_is_platform_admin()) {
|
|
|
$sql .= " AND ticket.request_user = '$user_id'
|
|
@@ -1154,11 +1139,11 @@ class TicketManager
|
|
|
$table_support_tickets = Database::get_main_table(TABLE_TICKET_TICKET);
|
|
|
$now = api_get_utc_datetime();
|
|
|
$userId = api_get_user_id();
|
|
|
- $sql = "UPDATE $table_support_tickets
|
|
|
+ $sql = "UPDATE $table_support_tickets
|
|
|
SET status_id = 'CLS', sys_lastedit_user_id ='$userId',
|
|
|
- sys_lastedit_datetime ='$now', end_date ='$now'
|
|
|
- WHERE DATEDIFF('$now',sys_lastedit_datetime) > 7
|
|
|
- AND status_id != 'CLS' AND status_id != 'NAT'
|
|
|
+ sys_lastedit_datetime ='$now', end_date ='$now'
|
|
|
+ WHERE DATEDIFF('$now',sys_lastedit_datetime) > 7
|
|
|
+ AND status_id != 'CLS' AND status_id != 'NAT'
|
|
|
AND status_id != 'REE'";
|
|
|
Database::query($sql);
|
|
|
}
|
|
@@ -1170,8 +1155,8 @@ class TicketManager
|
|
|
public static function get_assign_log($ticket_id)
|
|
|
{
|
|
|
$table_support_assigned_log = Database::get_main_table(TABLE_TICKET_ASSIGNED_LOG);
|
|
|
- $sql = "SELECT log.* FROM $table_support_assigned_log log
|
|
|
- WHERE log.ticket_id = '$ticket_id'
|
|
|
+ $sql = "SELECT log.* FROM $table_support_assigned_log log
|
|
|
+ WHERE log.ticket_id = '$ticket_id'
|
|
|
ORDER BY log.assigned_date";
|
|
|
$result = Database::query($sql);
|
|
|
$history = array();
|
|
@@ -1204,19 +1189,22 @@ class TicketManager
|
|
|
* @return array
|
|
|
*/
|
|
|
public static function export_tickets_by_user_id(
|
|
|
- $from, $number_of_items, $column, $direction, $user_id = null
|
|
|
- )
|
|
|
- {
|
|
|
+ $from,
|
|
|
+ $number_of_items,
|
|
|
+ $column,
|
|
|
+ $direction,
|
|
|
+ $user_id = null
|
|
|
+ ) {
|
|
|
$table_support_category = Database::get_main_table(
|
|
|
- TABLE_TICKET_CATEGORY
|
|
|
+ TABLE_TICKET_CATEGORY
|
|
|
);
|
|
|
$table_support_tickets = Database::get_main_table(TABLE_TICKET_TICKET);
|
|
|
$table_support_priority = Database::get_main_table(
|
|
|
- TABLE_TICKET_PRIORITY
|
|
|
+ TABLE_TICKET_PRIORITY
|
|
|
);
|
|
|
$table_support_status = Database::get_main_table(TABLE_TICKET_STATUS);
|
|
|
$table_support_messages = Database::get_main_table(
|
|
|
- TABLE_TICKET_MESSAGE
|
|
|
+ TABLE_TICKET_MESSAGE
|
|
|
);
|
|
|
$table_main_user = Database::get_main_table(TABLE_MAIN_USER);
|
|
|
if (is_null($direction)) {
|
|
@@ -1226,78 +1214,78 @@ class TicketManager
|
|
|
$user_id = api_get_user_id();
|
|
|
}
|
|
|
|
|
|
- $sql = "SELECT ticket.ticket_code, ticket.sys_insert_datetime ,
|
|
|
- ticket.sys_lastedit_datetime , cat.name as category ,
|
|
|
- CONCAT(user.lastname,' ', user.firstname) AS fullname ,
|
|
|
- status.name as status , ticket.total_messages as messages ,
|
|
|
+ $sql = "SELECT ticket.ticket_code, ticket.sys_insert_datetime ,
|
|
|
+ ticket.sys_lastedit_datetime , cat.name as category ,
|
|
|
+ CONCAT(user.lastname,' ', user.firstname) AS fullname ,
|
|
|
+ status.name as status , ticket.total_messages as messages ,
|
|
|
ticket.assigned_last_user as responsable
|
|
|
- FROM $table_support_tickets ticket,
|
|
|
- $table_support_category cat ,
|
|
|
- $table_support_priority priority,
|
|
|
- $table_support_status status ,
|
|
|
+ FROM $table_support_tickets ticket,
|
|
|
+ $table_support_category cat ,
|
|
|
+ $table_support_priority priority,
|
|
|
+ $table_support_status status ,
|
|
|
$table_main_user user
|
|
|
- WHERE cat.category_id = ticket.category_id
|
|
|
- AND ticket.priority_id = priority.priority_id
|
|
|
- AND ticket.status_id = status.status_id
|
|
|
+ WHERE cat.category_id = ticket.category_id
|
|
|
+ AND ticket.priority_id = priority.priority_id
|
|
|
+ AND ticket.status_id = status.status_id
|
|
|
AND user.user_id = ticket.request_user ";
|
|
|
//Search simple
|
|
|
if (isset($_GET['submit_simple'])) {
|
|
|
if ($_GET['keyword'] != '') {
|
|
|
$keyword = Database::escape_string(trim($_GET['keyword']));
|
|
|
- $sql .= " AND (ticket.ticket_code = '$keyword'
|
|
|
- OR user.firstname LIKE '%$keyword%'
|
|
|
+ $sql .= " AND (ticket.ticket_code = '$keyword'
|
|
|
+ OR user.firstname LIKE '%$keyword%'
|
|
|
OR user.lastname LIKE '%$keyword%'
|
|
|
OR concat(user.firstname,' ',user.lastname) LIKE '%$keyword%'
|
|
|
- OR concat(user.lastname,' ',user.firstname) LIKE '%$keyword%'
|
|
|
+ OR concat(user.lastname,' ',user.firstname) LIKE '%$keyword%'
|
|
|
OR user.username LIKE '%$keyword%') ";
|
|
|
}
|
|
|
}
|
|
|
//Search advanced
|
|
|
if (isset($_GET['submit_advanced'])) {
|
|
|
$keyword_category = Database::escape_string(
|
|
|
- trim($_GET['keyword_category'])
|
|
|
+ trim($_GET['keyword_category'])
|
|
|
);
|
|
|
$keyword_request_user = Database::escape_string(
|
|
|
- trim($_GET['keyword_request_user'])
|
|
|
+ trim($_GET['keyword_request_user'])
|
|
|
);
|
|
|
$keyword_admin = Database::escape_string(
|
|
|
- trim($_GET['keyword_admin'])
|
|
|
+ trim($_GET['keyword_admin'])
|
|
|
);
|
|
|
$keyword_start_date_start = Database::escape_string(
|
|
|
- trim($_GET['keyword_start_date_start'])
|
|
|
+ trim($_GET['keyword_start_date_start'])
|
|
|
);
|
|
|
$keyword_start_date_end = Database::escape_string(
|
|
|
- trim($_GET['keyword_start_date_end'])
|
|
|
+ trim($_GET['keyword_start_date_end'])
|
|
|
);
|
|
|
$keyword_status = Database::escape_string(
|
|
|
- trim($_GET['keyword_status'])
|
|
|
+ trim($_GET['keyword_status'])
|
|
|
);
|
|
|
$keyword_source = Database::escape_string(
|
|
|
- trim($_GET['keyword_source'])
|
|
|
+ trim($_GET['keyword_source'])
|
|
|
);
|
|
|
$keyword_priority = Database::escape_string(
|
|
|
- trim($_GET['keyword_priority'])
|
|
|
+ trim($_GET['keyword_priority'])
|
|
|
);
|
|
|
$keyword_range = Database::escape_string(
|
|
|
- trim($_GET['keyword_dates'])
|
|
|
+ trim($_GET['keyword_dates'])
|
|
|
);
|
|
|
$keyword_unread = Database::escape_string(
|
|
|
- trim($_GET['keyword_unread'])
|
|
|
+ trim($_GET['keyword_unread'])
|
|
|
);
|
|
|
$keyword_course = Database::escape_string(
|
|
|
- trim($_GET['keyword_course'])
|
|
|
+ trim($_GET['keyword_course'])
|
|
|
);
|
|
|
|
|
|
if ($keyword_category != '') {
|
|
|
$sql .= " AND ticket.category_id = '$keyword_category' ";
|
|
|
}
|
|
|
if ($keyword_request_user != '') {
|
|
|
- $sql .= " AND (ticket.request_user = '$keyword_request_user'
|
|
|
- OR user.firstname LIKE '%$keyword_request_user%'
|
|
|
+ $sql .= " AND (ticket.request_user = '$keyword_request_user'
|
|
|
+ OR user.firstname LIKE '%$keyword_request_user%'
|
|
|
OR user.official_code LIKE '%$keyword_request_user%'
|
|
|
- OR user.lastname LIKE '%$keyword_request_user%'
|
|
|
- OR concat(user.firstname,' ',user.lastname) LIKE '%$keyword_request_user%'
|
|
|
- OR concat(user.lastname,' ',user.firstname) LIKE '%$keyword_request_user%'
|
|
|
+ OR user.lastname LIKE '%$keyword_request_user%'
|
|
|
+ OR concat(user.firstname,' ',user.lastname) LIKE '%$keyword_request_user%'
|
|
|
+ OR concat(user.lastname,' ',user.firstname) LIKE '%$keyword_request_user%'
|
|
|
OR user.username LIKE '%$keyword_request_user%') ";
|
|
|
}
|
|
|
if ($keyword_admin != '') {
|
|
@@ -1310,7 +1298,7 @@ class TicketManager
|
|
|
$sql .= " AND DATE_FORMAT( ticket.start_date,'%d/%m/%Y') = '$keyword_start_date_start' ";
|
|
|
}
|
|
|
if ($keyword_range == '1' && $keyword_start_date_start != '' && $keyword_start_date_end != '') {
|
|
|
- $sql .= " AND DATE_FORMAT( ticket.start_date,'%d/%m/%Y') >= '$keyword_start_date_start'
|
|
|
+ $sql .= " AND DATE_FORMAT( ticket.start_date,'%d/%m/%Y') >= '$keyword_start_date_start'
|
|
|
AND DATE_FORMAT( ticket.start_date,'%d/%m/%Y') <= '$keyword_start_date_end'";
|
|
|
}
|
|
|
if ($keyword_priority != '') {
|
|
@@ -1325,35 +1313,35 @@ class TicketManager
|
|
|
if ($keyword_course != '') {
|
|
|
$course_table = Database :: get_main_table(TABLE_MAIN_COURSE);
|
|
|
$sql .= " AND ticket.course_id IN ( ";
|
|
|
- $sql .= "SELECT id
|
|
|
- FROM $course_table
|
|
|
- WHERE (title LIKE '%$keyword_course%'
|
|
|
- OR code LIKE '%$keyword_course%'
|
|
|
+ $sql .= "SELECT id
|
|
|
+ FROM $course_table
|
|
|
+ WHERE (title LIKE '%$keyword_course%'
|
|
|
+ OR code LIKE '%$keyword_course%'
|
|
|
OR visual_code LIKE '%$keyword_course%' )) ";
|
|
|
}
|
|
|
if ($keyword_unread == 'yes') {
|
|
|
$sql .= " AND ticket.ticket_id IN (
|
|
|
- SELECT ticket.ticket_id
|
|
|
- FROM $table_support_tickets ticket,
|
|
|
- $table_support_messages message,
|
|
|
- $table_main_user user
|
|
|
- WHERE ticket.ticket_id = message.ticket_id
|
|
|
- AND message.status = 'NOL'
|
|
|
- AND message.sys_insert_user_id = user.user_id
|
|
|
- AND user.status != 1 AND ticket.status_id != 'REE'
|
|
|
+ SELECT ticket.ticket_id
|
|
|
+ FROM $table_support_tickets ticket,
|
|
|
+ $table_support_messages message,
|
|
|
+ $table_main_user user
|
|
|
+ WHERE ticket.ticket_id = message.ticket_id
|
|
|
+ AND message.status = 'NOL'
|
|
|
+ AND message.sys_insert_user_id = user.user_id
|
|
|
+ AND user.status != 1 AND ticket.status_id != 'REE'
|
|
|
GROUP BY ticket.ticket_id)";
|
|
|
} else {
|
|
|
if ($keyword_unread == 'no') {
|
|
|
$sql .= " AND ticket.ticket_id NOT IN (
|
|
|
- SELECT ticket.ticket_id
|
|
|
- FROM $table_support_tickets ticket,
|
|
|
- $table_support_messages message,
|
|
|
- $table_main_user user
|
|
|
- WHERE ticket.ticket_id = message.ticket_id
|
|
|
- AND message.status = 'NOL'
|
|
|
- AND message.sys_insert_user_id = user.user_id
|
|
|
- AND user.status != 1
|
|
|
- AND ticket.status_id != 'REE'
|
|
|
+ SELECT ticket.ticket_id
|
|
|
+ FROM $table_support_tickets ticket,
|
|
|
+ $table_support_messages message,
|
|
|
+ $table_main_user user
|
|
|
+ WHERE ticket.ticket_id = message.ticket_id
|
|
|
+ AND message.status = 'NOL'
|
|
|
+ AND message.sys_insert_user_id = user.user_id
|
|
|
+ AND user.status != 1
|
|
|
+ AND ticket.status_id != 'REE'
|
|
|
GROUP BY ticket.ticket_id)";
|
|
|
}
|
|
|
}
|