Membatasi Tiket Berdasarkan Departemen Aktif di Pilihan Gabung Tiket osTicket v1.6 RC5

Jika Anda sudah pernah mengimplementasikan modifikasi yang saya buat berjudul Menambahkan Fitur Penggabungan Tiket ke osTicket v1.6 RC5, lalu Anda ingin membatasi tiket yang ditampilkan pada daftar pilihan di bagian Merge Ticket pada halaman viewticket, maka modifikasi ini untuk Anda! Perlu mendapat perhatian, bahwa modifikasi di artikel ini dapat diimplementasikan setelah Anda mengimplementasikan modifikasi yang saya sebutkan pada tautan di atas.

Buka file \include\staff\viewticket.inc.php Anda, dan cari kode ini:

493
494
495
			   $sql = 'SELECT ticket_id, concat(ticketid,": ",subject) AS label FROM '.TICKET_TABLE.' WHERE email='.
                                  '(SELECT email FROM ost_ticket WHERE ticket_id = '.$id.') AND status '.
                                  '= "open" AND ticket_id <> '.$id.' ORDER BY `created` DESC ';

lalu timpa kode tersebut dengan kode berikut ini:

493
494
495
496
497
498
499
500
501
502
503
504
505
                           if(!$depts or !is_array($depts) or !count($depts)){
                           //if dept returns nothing...show only orphaned tickets (without dept) which could mean..none...and display an error.
                              $qwhere =' WHERE dept_id IN ( 0 ) ';
                           }else if($thisuser->isadmin()){
                              $qwhere =' WHERE 1 '; 
                           }else{
                              //limited depts....user can access tickets assigned to them regardless of the dept.
                              $qwhere =' WHERE (dept_id IN ('.implode(',',$depts).') OR staff_id='.$thisuser->getId().') ';
                           }
 
                           $sql = 'SELECT ticket_id, concat(ticketid,": ",subject) AS label FROM '.TICKET_TABLE.' '.$qwhere.' AND email='.
                                  '(SELECT email FROM ost_ticket WHERE ticket_id = '.$id.') AND status '.
                                  '= "open" AND ticket_id <> '.$id.' ORDER BY `created` DESC ';

Sebenarnya, kode tambahan di atas diambil dari klausa WHERE yang terdapat di dalam file \include\staff\tickets.inc.php (kode di sekitar baris ke-85) untuk memverifikasi bahwa tiket-tiket yang ditampilkan untuk: berbasiskan pada departemen, berbasiskan pada user groups, dan atau juga berbasiskan pada tiket yang ditugaskan. Yang dimaksud dengan Berbasiskan pada Tiket yang Ditugaskan adalah: jika seandainya pun ada tiket yang ditugaskan untuk staf yang berada di departmen yang berbeda dengan departemen di mana staf yang sedang login saat itu berada, maka tiket tersebut akan tetap ditampilkan di bagian pilihan tiket pada Merge Ticket.

Share

297 kali dibacaCetak Artikel Ini Cetak Artikel Ini

Utarakan pikiran Anda

*


*