You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							225 lines
						
					
					
						
							8.3 KiB
						
					
					
				
			
		
		
	
	
							225 lines
						
					
					
						
							8.3 KiB
						
					
					
				<?php
 | 
						|
/**
 | 
						|
 * Contains the SQL for the tickets management plugin database structure
 | 
						|
 */
 | 
						|
 | 
						|
$objPlugin = TicketPlugin::create();
 | 
						|
 | 
						|
$table = Database::get_main_table(TABLE_TICKET_ASSIGNED_LOG);
 | 
						|
$sql = "CREATE TABLE IF NOT EXISTS ".$table." (
 | 
						|
        id int UNSIGNED NOT NULL AUTO_INCREMENT,
 | 
						|
        ticket_id int UNSIGNED DEFAULT NULL,
 | 
						|
        user_id int UNSIGNED DEFAULT NULL,
 | 
						|
        assigned_date datetime DEFAULT NULL,
 | 
						|
        sys_insert_user_id int UNSIGNED DEFAULT NULL,
 | 
						|
        PRIMARY KEY PK_ticket_assigned_log (id),
 | 
						|
        KEY FK_ticket_assigned_log (ticket_id))";
 | 
						|
Database::query($sql);
 | 
						|
 | 
						|
//Category
 | 
						|
$table = Database::get_main_table(TABLE_TICKET_CATEGORY);
 | 
						|
$sql = "CREATE TABLE IF NOT EXISTS ".$table." (
 | 
						|
        id int UNSIGNED NOT NULL AUTO_INCREMENT,
 | 
						|
        category_id char(3) NOT NULL,
 | 
						|
        project_id char(3) NOT NULL,
 | 
						|
        name varchar(100) NOT NULL,
 | 
						|
        description varchar(255) NOT NULL,
 | 
						|
        total_tickets int UNSIGNED NOT NULL DEFAULT '0',
 | 
						|
        course_required char(1) NOT NULL,
 | 
						|
        sys_insert_user_id int UNSIGNED DEFAULT NULL,
 | 
						|
        sys_insert_datetime datetime DEFAULT NULL,
 | 
						|
        sys_lastedit_user_id int UNSIGNED DEFAULT NULL,
 | 
						|
        sys_lastedit_datetime datetime DEFAULT NULL,
 | 
						|
        PRIMARY KEY (id))";
 | 
						|
Database::query($sql);
 | 
						|
 | 
						|
//Default Categories
 | 
						|
$categoRow = array(
 | 
						|
    $objPlugin->get_lang('Enrollment') => $objPlugin->get_lang('TicketsAboutEnrollment'),
 | 
						|
    $objPlugin->get_lang('GeneralInformation') => $objPlugin->get_lang('TicketsAboutGeneralInformation'),
 | 
						|
    $objPlugin->get_lang('RequestAndPapework') => $objPlugin->get_lang('TicketsAboutRequestAndPapework'),
 | 
						|
    $objPlugin->get_lang('AcademicIncidence') => $objPlugin->get_lang('TicketsAboutAcademicIncidence'),
 | 
						|
    $objPlugin->get_lang('VirtualCampus') => $objPlugin->get_lang('TicketsAboutVirtualCampus'),
 | 
						|
    $objPlugin->get_lang('OnlineEvaluation') => $objPlugin->get_lang('TicketsAboutOnlineEvaluation')
 | 
						|
);
 | 
						|
$i = 1;
 | 
						|
foreach ($categoRow as $category => $description) {
 | 
						|
    //Online evaluation requires a course
 | 
						|
    if ($i == 6) {
 | 
						|
        $attributes = array(
 | 
						|
            'id' => $i,
 | 
						|
            'category_id' => $i,
 | 
						|
            'name' => $category,
 | 
						|
            'description' => $description,
 | 
						|
            'project_id' => 1,
 | 
						|
            'course_required' => 1
 | 
						|
        );
 | 
						|
    } else {
 | 
						|
        $attributes = array(
 | 
						|
            'id' => $i,
 | 
						|
            'category_id' => $i,
 | 
						|
            'project_id' => 1,
 | 
						|
            'description' => $description,
 | 
						|
            'name' => $category
 | 
						|
        );
 | 
						|
    }
 | 
						|
 | 
						|
    Database::insert($table, $attributes);
 | 
						|
    $i++;
 | 
						|
}
 | 
						|
//END default categories
 | 
						|
$table = Database::get_main_table(TABLE_TICKET_MESSAGE);
 | 
						|
$sql = "CREATE TABLE IF NOT EXISTS ".$table." (
 | 
						|
        id int UNSIGNED NOT NULL AUTO_INCREMENT,
 | 
						|
        message_id int UNSIGNED NOT NULL,
 | 
						|
        ticket_id int UNSIGNED NOT NULL,
 | 
						|
        subject varchar(150) DEFAULT NULL,
 | 
						|
        message text NOT NULL,
 | 
						|
        status char(3) NOT NULL,
 | 
						|
        ip_address varchar(16) DEFAULT NULL,
 | 
						|
        sys_insert_user_id int UNSIGNED DEFAULT NULL,
 | 
						|
        sys_insert_datetime datetime DEFAULT NULL,
 | 
						|
        sys_lastedit_user_id int UNSIGNED DEFAULT NULL,
 | 
						|
        sys_lastedit_datetime datetime DEFAULT NULL,
 | 
						|
        PRIMARY KEY (id),
 | 
						|
        KEY FK_tick_message (ticket_id) )";
 | 
						|
Database::query($sql);
 | 
						|
 | 
						|
$table = Database::get_main_table(TABLE_TICKET_MESSAGE_ATTACHMENTS);
 | 
						|
$sql = "CREATE TABLE IF NOT EXISTS ".$table." (
 | 
						|
        id int UNSIGNED NOT NULL AUTO_INCREMENT,
 | 
						|
        message_attch_id char(2) NOT NULL,
 | 
						|
        message_id char(2) NOT NULL,
 | 
						|
        ticket_id int UNSIGNED NOT NULL,
 | 
						|
        path varchar(255) NOT NULL,
 | 
						|
        filename varchar(255) NOT NULL,
 | 
						|
        size varchar(25) DEFAULT NULL,
 | 
						|
        sys_insert_user_id int UNSIGNED DEFAULT NULL,
 | 
						|
        sys_insert_datetime datetime DEFAULT NULL,
 | 
						|
        sys_lastedit_user_id int UNSIGNED DEFAULT NULL,
 | 
						|
        sys_lastedit_datetime datetime DEFAULT NULL,
 | 
						|
        PRIMARY KEY (id),
 | 
						|
        KEY ticket_message_id_fk (message_id))";
 | 
						|
Database::query($sql);
 | 
						|
 | 
						|
//Priority
 | 
						|
$table = Database::get_main_table(TABLE_TICKET_PRIORITY);
 | 
						|
$sql = "CREATE TABLE IF NOT EXISTS ".$table." (
 | 
						|
        id int UNSIGNED NOT NULL AUTO_INCREMENT,
 | 
						|
        priority_id char(3) NOT NULL,
 | 
						|
        priority varchar(20) DEFAULT NULL,
 | 
						|
        priority_desc varchar(250) DEFAULT NULL,
 | 
						|
        priority_color varchar(25) DEFAULT NULL,
 | 
						|
        priority_urgency tinyint DEFAULT NULL,
 | 
						|
        sys_insert_user_id int UNSIGNED DEFAULT NULL,
 | 
						|
        sys_insert_datetime datetime DEFAULT NULL,
 | 
						|
        sys_lastedit_user_id int UNSIGNED DEFAULT NULL,
 | 
						|
        sys_lastedit_datetime datetime DEFAULT NULL,
 | 
						|
        PRIMARY KEY (id))";
 | 
						|
Database::query($sql);
 | 
						|
//Default Priorities
 | 
						|
$defaultPriorities = array(
 | 
						|
    'NRM' => $objPlugin->get_lang('PriorityNormal'),
 | 
						|
    'HGH' => $objPlugin->get_lang('PriorityHigh'),
 | 
						|
    'LOW' => $objPlugin->get_lang('PriorityLow')
 | 
						|
);
 | 
						|
$i = 1;
 | 
						|
foreach ($defaultPriorities as $pId => $priority) {
 | 
						|
    $attributes = array(
 | 
						|
        'id' => $i,
 | 
						|
        'priority_id' => $pId,
 | 
						|
        'priority' => $priority,
 | 
						|
        'priority_desc' => $priority
 | 
						|
    );
 | 
						|
    Database::insert($table, $attributes);
 | 
						|
    $i++;
 | 
						|
}
 | 
						|
//End
 | 
						|
 | 
						|
$table = Database::get_main_table(TABLE_TICKET_PROJECT);
 | 
						|
$sql = "CREATE TABLE IF NOT EXISTS ".$table." (
 | 
						|
        id int UNSIGNED NOT NULL AUTO_INCREMENT,
 | 
						|
        project_id char(3) NOT NULL,
 | 
						|
        name varchar(50) DEFAULT NULL,
 | 
						|
        description varchar(250) DEFAULT NULL,
 | 
						|
        email varchar(50) DEFAULT NULL,
 | 
						|
        other_area tinyint NOT NULL DEFAULT '0',
 | 
						|
        sys_insert_user_id int UNSIGNED DEFAULT NULL,
 | 
						|
        sys_insert_datetime datetime DEFAULT NULL,
 | 
						|
        sys_lastedit_user_id int UNSIGNED DEFAULT NULL,
 | 
						|
        sys_lastedit_datetime datetime DEFAULT NULL,
 | 
						|
        PRIMARY KEY (id))";
 | 
						|
Database::query($sql);
 | 
						|
//Default Project Table Ticket
 | 
						|
$attributes = array(
 | 
						|
    'id' => 1,
 | 
						|
    'project_id' => 1,
 | 
						|
    'name' => 'Ticket System'
 | 
						|
);
 | 
						|
Database::insert($table, $attributes);
 | 
						|
//END
 | 
						|
 | 
						|
//STATUS
 | 
						|
$table = Database::get_main_table(TABLE_TICKET_STATUS);
 | 
						|
$sql = "CREATE TABLE IF NOT EXISTS ".$table." (
 | 
						|
        id int UNSIGNED NOT NULL AUTO_INCREMENT,
 | 
						|
        status_id char(3) NOT NULL,
 | 
						|
        name varchar(100) NOT NULL,
 | 
						|
        description varchar(255) DEFAULT NULL,
 | 
						|
        PRIMARY KEY (id))";
 | 
						|
Database::query($sql);
 | 
						|
//Default status
 | 
						|
$defaultStatus = array(
 | 
						|
    'NAT' => $objPlugin->get_lang('StatusNew'),
 | 
						|
    'PND' => $objPlugin->get_lang('StatusPending'),
 | 
						|
    'XCF' => $objPlugin->get_lang('StatusUnconfirmed'),
 | 
						|
    'CLS' => $objPlugin->get_lang('StatusClose'),
 | 
						|
    'REE' => $objPlugin->get_lang('StatusForwarded')
 | 
						|
);
 | 
						|
 | 
						|
$i = 1;
 | 
						|
foreach ($defaultStatus as $abr => $status) {
 | 
						|
    $attributes = array(
 | 
						|
        'id' => $i,
 | 
						|
        'status_id' => $abr,
 | 
						|
        'name' => $status
 | 
						|
    );
 | 
						|
    Database::insert($table, $attributes);
 | 
						|
    $i ++;
 | 
						|
}
 | 
						|
//END
 | 
						|
 | 
						|
$table = Database::get_main_table(TABLE_TICKET_TICKET);
 | 
						|
$sql = "CREATE TABLE IF NOT EXISTS ".$table." (
 | 
						|
        ticket_id int UNSIGNED NOT NULL AUTO_INCREMENT,
 | 
						|
        ticket_code char(12) DEFAULT NULL,
 | 
						|
        project_id char(3) DEFAULT NULL,
 | 
						|
        category_id char(3) NOT NULL,
 | 
						|
        priority_id char(3) NOT NULL,
 | 
						|
        course_id int UNSIGNED NOT NULL,
 | 
						|
        session_id int UNSIGNED NOT NULL DEFAULT '0',
 | 
						|
        request_user int UNSIGNED NOT NULL,
 | 
						|
        personal_email varchar(150) DEFAULT NULL,
 | 
						|
        assigned_last_user int UNSIGNED NOT NULL DEFAULT '0',
 | 
						|
        status_id char(3) NOT NULL,
 | 
						|
        total_messages int UNSIGNED NOT NULL DEFAULT '0',
 | 
						|
        keyword varchar(250) DEFAULT NULL,
 | 
						|
        source char(3) NOT NULL,
 | 
						|
        start_date datetime NOT NULL,
 | 
						|
        end_date datetime DEFAULT NULL,
 | 
						|
        sys_insert_user_id int UNSIGNED DEFAULT NULL,
 | 
						|
        sys_insert_datetime datetime DEFAULT NULL,
 | 
						|
        sys_lastedit_user_id int UNSIGNED DEFAULT NULL,
 | 
						|
        sys_lastedit_datetime datetime DEFAULT NULL,
 | 
						|
        PRIMARY KEY (ticket_id),
 | 
						|
        UNIQUE KEY UN_ticket_code (ticket_code),
 | 
						|
        KEY FK_ticket_priority (priority_id),
 | 
						|
        KEY FK_ticket_category (project_id,category_id))";
 | 
						|
Database::query($sql);
 | 
						|
 | 
						|
//Menu main tabs
 | 
						|
$rsTab = $objPlugin->addTab('Ticket', 'plugin/ticket/src/myticket.php');
 | 
						|
 | 
						|
if ($rsTab) {
 | 
						|
    echo "<script>location.href = '" . $_SERVER['REQUEST_URI'] . "';</script>";
 | 
						|
}
 | 
						|
 |