You are on page 1of 7

Query > Staff (user_type : 4 user fuad)

SELECT
tick.id,
tick.ticket_number,
CAST(
DATE_FORMAT(
tick.ticket_date,
'%m/%d/%Y %H:%i'
) AS CHAR
) AS ticket_date,
tick.topic_id,
IFNULL(topic.topic_name, '') AS topic_name,
topic.department_id AS topic_department_id,
IFNULL(topic_dep.department_name, '') AS topic_department_name,
tick.topic_brand_id,
IFNULL(
topic_brand.topic_brand_name,
''
) AS topic_brand_name,
tick.topic_item_id,
topic_category_name (tick.id) AS topic_item_name,
/*IFNULL(t.topic_item_name,'') AS topic_item_name,*/
IFNULL(tick.priority_id, '') AS priority_id,
IF(
IFNULL(tick.priority_id, 0) = 1,
'Urgency',
IF(
IFNULL(tick.priority_id, 0) = 2,
'High',
IF(
IFNULL(tick.priority_id, 0) = 3,
'Normal',
IF(
IFNULL(tick.priority_id, 0) = 4,
'Low',
'None'
)
)
)
) AS priority_name,
IFNULL(sla.id, '') AS sla_id,
IFNULL(sla.sla_name, '') AS sla_name,
IFNULL(sla.days, 0) AS sla_days,
tick.ticket_subject,
tick.subject_location,
tick.subject_desc,
IFNULL(tick.user_id, 0) AS user_id,
IFNULL(user.full_name, '') AS user_name,
IFNULL(user.email, '') AS user_email,
IFNULL(user.department_id, 0) AS user_dept_id,
IFNULL(user_dep.department_name, '') AS user_dept_name,
IFNULL(user.branch_id, 0) AS user_branch_id,
IFNULL(branch.branch_name, '') AS user_branch_name,
IFNULL(user.phone, '') AS user_phone,
tick.user_collaborator_id,
/*user_collaborator_name(tick.id)*/
'' AS user_collaborator_name,
/*IFNULL(u.user_collaborator_name,'') AS user_collaborator_name,*/
IFNULL(tick.assigned_id, 0) AS assigned_id,
IFNULL(assign.full_name, '') AS assigned_name,
IFNULL(assign.email, '') AS assigned_email,
IFNULL(assign.department_id, 0) AS assigned_dept_id,
IFNULL(assign_dep.department_name, '') AS assigned_dept_name,
CAST(
DATE_FORMAT(
tick.assigned_date,
'%m/%d/%Y %H:%i'
) AS CHAR
) AS assigned_date,
tick.status_flag,
IF(
IFNULL(tick.status_flag, 0) = 0,
'Open',
IF(
IFNULL(tick.status_flag, 0) = 1,
'Closed',
IF(
IFNULL(tick.status_flag, 0) = 2,
'Cancelled',
'None'
)
)
) AS STATUS,
tick.process_flag,
IF(
IFNULL(tick.status_flag, 0) = 0,
IF(
IFNULL(tick.process_flag, 0) = 0,
'No',
'Yes'
),
'No'
) AS PROCESS,
IF(
IFNULL(tick.status_flag, 0) = 0,
IF(tick.due_date < SYSDATE(), 1, 0),
0
) AS overdue_flag,
IF(
IFNULL(tick.status_flag, 0) = 0,
IF(
tick.due_date < SYSDATE(),
'Yes',
'No'
),
'No'
) AS overdue,
tick.answered_flag,
IF(
IFNULL(tick.answered_flag, 0) = 0,
'No',
'Yes'
) AS answered,
IF(
tick.due_date IS NULL,
'',
DATE_FORMAT(
CONCAT(
DATE_FORMAT(tick.due_date, '%Y-%m-%d'),
DATE_FORMAT(tick.ticket_date, ' %H:%i')
),
'%m/%d/%Y %H:%i'
)
) AS due_date,
/*IFNULL(CONCAT( FLOOR(TIMESTAMPDIFF(SECOND, tick.assigned_date,tick.closed_date)
/ 86400), ' days ', FLOOR((TIMESTAMPDIFF(SECOND,
tick.assigned_date,tick.closed_date) % 86400)/3600), ' hours ',
FLOOR((TIMESTAMPDIFF(SECOND, tick.assigned_date,tick.closed_date) % 3600)/60), '
minutes ', (TIMESTAMPDIFF(SECOND, tick.assigned_date,tick.closed_date) % 60), '
seconds' ), '') AS downtime_result, */
IF(
tick.status_flag = 1,
IFNULL(
CONCAT(
(
FLOOR(
TIMESTAMPDIFF(
SECOND,
TIMESTAMP(
DATE_FORMAT(
tick.ticket_date,
'%Y-%m-%d %H:%i:00 %p'
)
),
TIMESTAMP(
DATE_FORMAT(
tick.closed_date,
'%Y-%m-%d %H:%i:00 %p'
)
)
) / 86400
) * 24
) + FLOOR(
(
TIMESTAMPDIFF(
SECOND,
TIMESTAMP(
DATE_FORMAT(
tick.ticket_date,
'%Y-%m-%d %H:%i:00 %p'
)
),
TIMESTAMP(
DATE_FORMAT(
tick.closed_date,
'%Y-%m-%d %H:%i:00 %p'
)
)
) % 86400
) / 3600
),
' hours ',
FLOOR(
(
TIMESTAMPDIFF(
SECOND,
TIMESTAMP(
DATE_FORMAT(
tick.ticket_date,
'%Y-%m-%d %H:%i:00 %p'
)
),
TIMESTAMP(
DATE_FORMAT(
tick.closed_date,
'%Y-%m-%d %H:%i:00 %p'
)
)
) % 3600
) / 60
),
' minutes'
),
''
),
''
) AS downtime_result,
IF(
tick.closed_date = NULL,
'',
CAST(
DATE_FORMAT(
tick.closed_date,
'%m/%d/%Y %H:%i'
) AS CHAR
)
) AS closed_date,
app.approve_desc AS approve_desc,
IF(
tick.voided_date = NULL,
'',
CAST(
DATE_FORMAT(
tick.voided_date,
'%m/%d/%Y %H:%i'
) AS CHAR
)
) AS voided_date,
tick.created_date,
tick.updated_date,
IFNULL(tick_rate.rates, 0) AS rates,
IFNULL(user_rate.full_name, '') AS rates_by_name,
IFNULL(tick_rate.comments, '') AS comments,
IFNULL(r.resp_id, 0) resp_id,
IF(
tick.user_id = 825,
1,
IFNULL(r.is_able_edit_ticket, 0)
) is_able_edit_ticket,
IFNULL(r.is_able_assign_ticket, 0) is_able_assign_ticket,
IF(
tick.user_id = 825,
1,
IFNULL(r.is_able_void_ticket, 0)
) is_able_void_ticket,
IF(
tick.user_id = 825,
1,
IFNULL(r.is_able_approve_ticket, 0)
) is_able_approve_ticket,
IF(
tick.user_id =825,
1,
IFNULL(r.is_able_reopen_ticket, 0)
) is_able_reopen_ticket,
IFNULL(r.is_able_create_post, 1) is_able_create_post,
IFNULL(
r.is_able_create_post_internal,
0
) is_able_create_post_internal,
IFNULL(
r.limited_only_assigned_ticket,
0
) limited_only_assigned_ticket
FROM
(SELECT
tc.id
FROM
hd_ticket tc
LEFT JOIN hd_topic tp
ON tc.topic_id = tp.id
LEFT JOIN hd_department dc
ON tp.department_id = dc.id
INNER JOIN hd_number n
ON LENGTH(
REPLACE(tc.user_collaborator_id, ',', '')
) <= LENGTH(tc.user_collaborator_id) - n.digit
WHERE 1 = 1
AND YEAR(tc.ticket_date) = 2023
AND CAST(
TRIM(
SUBSTRING_INDEX(
SUBSTRING_INDEX(
tc.user_collaborator_id,
',',
n.digit + 1
),
',',
- 1
)
) AS SIGNED
) = 825
AND dc.id = 12
AND tc.status_flag = 0
GROUP BY tc.id
UNION
SELECT
tc.id
FROM
hd_ticket tc
LEFT JOIN hd_topic tp
ON tc.topic_id = tp.id
LEFT JOIN hd_department dc
ON tp.department_id = dc.id
WHERE 1 = 1
AND YEAR(tc.ticket_date) = 2023
AND tc.user_id = 825
AND dc.id = 12
AND tc.status_flag = 0
GROUP BY tc.id
UNION
SELECT
tc.id
FROM
hd_ticket tc
LEFT JOIN hd_topic tp
ON tc.topic_id = tp.id
LEFT JOIN hd_user_resp_brand b
ON tc.topic_id = b.topic_id
AND tc.topic_brand_id = b.topic_brand_id
WHERE YEAR(tc.ticket_date) = 2023
AND tc.status_flag = 0
AND tp.department_id = 12
AND b.user_id = 825
GROUP BY tc.id
UNION
SELECT
tc.id
FROM
hd_ticket tc
INNER JOIN hd_number n
ON LENGTH(REPLACE(tc.topic_item_id, ',', '')) <= LENGTH(tc.topic_item_id) -
n.digit
LEFT JOIN hd_topic tp
ON tc.topic_id = tp.id
LEFT JOIN hd_department dc
ON tp.department_id = dc.id
WHERE YEAR(tc.ticket_date) = 2023
AND tc.status_flag = 0
AND EXISTS
(SELECT
i.user_id
FROM
hd_user_resp_item i
WHERE i.user_id = 825
AND tc.topic_id = i.topic_id
AND tc.topic_item_id = i.topic_item_id)
AND tp.department_id = 12
GROUP BY tc.id) t
LEFT JOIN hd_ticket tick
ON t.id = tick.id
LEFT JOIN
(SELECT
r.resp_id,
r.topic_id,
r.is_able_edit_ticket,
r.is_able_assign_ticket,
r.is_able_void_ticket,
r.is_able_approve_ticket,
r.is_able_reopen_ticket,
r.is_able_create_post,
r.is_able_create_post_internal,
r.limited_only_assigned_ticket
FROM
hd_user_responsibility r
WHERE 1 = 1
AND r.status_id = 1
AND r.user_id = 825) r
ON tick.topic_id = r.topic_id
LEFT JOIN hd_topic topic
ON tick.topic_id = topic.id
LEFT JOIN hd_department topic_dep
ON topic.department_id = topic_dep.id
LEFT JOIN hd_sla sla
ON topic.sla_id = sla.id
LEFT JOIN hd_user USER
ON tick.user_id = user.id
LEFT JOIN hd_department user_dep
ON user.department_id = user_dep.id
LEFT JOIN hd_branch branch
ON user.branch_id = branch.id
LEFT JOIN hd_user assign
ON tick.assigned_id = assign.id
LEFT JOIN hd_department assign_dep
ON assign.department_id = assign_dep.id
LEFT JOIN hd_topic_brand topic_brand
ON tick.topic_brand_id = topic_brand.id
LEFT JOIN hd_ticket_rates tick_rate
ON tick.id = tick_rate.ticket_id
LEFT JOIN hd_user user_rate
ON tick_rate.rates_by_id = user_rate.id
LEFT JOIN
(SELECT
approve_desc,
ticket_id
FROM
hd_ticket_approve
WHERE id IN
(SELECT
MAX(id)
FROM
hd_ticket_approve
GROUP BY ticket_id)) app
ON tick.id = app.ticket_id
WHERE 1 = 1
AND IF(
IFNULL(
r.limited_only_assigned_ticket,
0
) = 1,
825,
IFNULL(tick.assigned_id, 0)
) = IFNULL(tick.assigned_id, 0)
ORDER BY tick.status_flag,
IF(IFNULL(tick.assigned_id, 0) = 0, 0, 1),
tick.answered_flag,
tick.ticket_number DESC

You might also like