Helpdesk da PluGzOne, baseado no osTicket
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.
 
 
 
 

110 lines
4.0 KiB

/**
* @signature e69781546e08be96d787199a911d0ffe
* @version v1.14.0
* @title Thread Type
*
* This patch adds a new field to the Thread Event table called thread_type
* it allows us to be able to delete threads and thread entries when a ticket
* is deleted while still maintaining dashboard statistics
*
*/
-- Create a blank temporary table with thread_event indexes
CREATE TABLE `%TABLE_PREFIX%thread_event_new` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`thread_id` int(11) unsigned NOT NULL default '0',
`thread_type` char(1) DEFAULT '',
`event_id` int(11) unsigned DEFAULT NULL,
`staff_id` int(11) unsigned NOT NULL,
`team_id` int(11) unsigned NOT NULL,
`dept_id` int(11) unsigned NOT NULL,
`topic_id` int(11) unsigned NOT NULL,
`data` varchar(1024) DEFAULT NULL COMMENT 'Encoded differences',
`username` varchar(128) NOT NULL default 'SYSTEM',
`uid` int(11) unsigned DEFAULT NULL,
`uid_type` char(1) NOT NULL DEFAULT 'S',
`annulled` tinyint(1) unsigned NOT NULL default '0',
`timestamp` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY `ticket_state` (`thread_id`, `event_id`, `timestamp`),
KEY `ticket_stats` (`timestamp`, `event_id`)
) DEFAULT CHARSET=utf8;
-- Insert thread_events into `%TABLE_PREFIX%thread_event_new`
INSERT `%TABLE_PREFIX%thread_event_new`
SELECT id, thread_id, ' ', event_id, staff_id, team_id, dept_id, topic_id, data, username, uid, uid_type, annulled, timestamp
FROM `%TABLE_PREFIX%thread_event`;
-- Update thread_type column
UPDATE `%TABLE_PREFIX%thread_event_new` A1
JOIN `%TABLE_PREFIX%thread` A2 ON A1.thread_id = A2.id
SET A1.thread_type = A2.object_type;
-- Delete unneeded threads
DELETE A1
FROM `%TABLE_PREFIX%thread` A1
JOIN `%TABLE_PREFIX%thread_event` A2 ON A2.thread_id = A1.id
WHERE A2.event_id = 14;
-- Delete unneeded thread entries
DELETE A1
FROM `%TABLE_PREFIX%thread_entry` A1
LEFT JOIN `%TABLE_PREFIX%thread` A2 ON(A2.id=A1.thread_id)
WHERE A2.id IS NULL;
-- Set deleted threads to 0 in `%TABLE_PREFIX%thread_event_new`
UPDATE `%TABLE_PREFIX%thread_event_new` A1
JOIN `%TABLE_PREFIX%thread_event_new` A2 ON A2.thread_id = A1.thread_id
SET A2.thread_id = 0
WHERE A1.event_id = 14;
-- Rename old thread_event table
RENAME TABLE `%TABLE_PREFIX%thread_event` TO `%TABLE_PREFIX%thread_event_old`;
-- Change tmp_table to thread_event
RENAME TABLE `%TABLE_PREFIX%thread_event_new` TO `%TABLE_PREFIX%thread_event`;
-- Drop old thread_event table
DROP TABLE `%TABLE_PREFIX%thread_event_old`;
-- Organization / Name
UPDATE `%TABLE_PREFIX%form_field` A1
JOIN `%TABLE_PREFIX%form` A2 ON (A1.`form_id` = A2.`id` AND A2.`type` = 'O')
SET A1.`flags` = A1.`flags` | 16, A1.`type` = 'text'
WHERE A1.`name` = 'name';
-- Contact Information / Name, Email
UPDATE `%TABLE_PREFIX%form_field` A1
JOIN `%TABLE_PREFIX%form` A2 ON (A1.`form_id` = A2.`id` AND A2.`type` = 'U')
SET A1.`flags` = A1.`flags` | 16
WHERE (A1.`name` = 'name' OR A1.`name` = 'email')
AND A1.`type` = 'text';
-- Ticket Details / Issue Summary
UPDATE `%TABLE_PREFIX%form_field` A1
JOIN `%TABLE_PREFIX%form` A2 ON (A1.`form_id` = A2.`id` AND A2.`type` = 'T')
SET A1.`flags` = A1.`flags` | 16
WHERE A1.`name` = 'subject' AND A1.`type` = 'text';
-- Task Details / Title
UPDATE `%TABLE_PREFIX%form_field` A1
JOIN `%TABLE_PREFIX%form` A2 ON (A1.`form_id` = A2.`id` AND A2.`type` = 'A')
SET A1.`flags` = A1.`flags` | 16
WHERE A1.`name` = 'title' AND A1.`type` = 'text';
-- Company Information / Name
UPDATE `%TABLE_PREFIX%form_field` A1
JOIN `%TABLE_PREFIX%form` A2 ON (A1.`form_id` = A2.`id` AND A2.`type` = 'C')
SET A1.`flags` = A1.`flags` | 16
WHERE A1.`name` = 'name' AND A1.`type` = 'text';
-- Company Information / Website, Phone Number
UPDATE `%TABLE_PREFIX%form_field` A1
JOIN `%TABLE_PREFIX%form` A2 ON (A1.`form_id` = A2.`id` AND A2.`type` = 'C')
SET A1.`flags` = A1.`flags` | 262160
WHERE (A1.`name` = 'website' AND A1.`type` = 'text') OR (A1.`name` = 'phone' AND A1.`type` = 'phone');
-- Finished with patch
UPDATE `%TABLE_PREFIX%config`
SET `value` = 'e69781546e08be96d787199a911d0ffe', `updated` = NOW()
WHERE `key` = 'schema_signature' AND `namespace` = 'core';