Ingatkan Anggota Departemen Tujuan akan Tiket yang Ditransfer di osTicket v1.6 RC5

Ada sebuah permintaan yang cukup menarik ditanyakan kepada saya mengenai pengiriman email ke para anggota departemen jika sebuah tiket yang ditransfer dari departemen lain baru saja tiba di departemen mereka. Anda dapat melihat deskripsi permintaan ini selengkapnya melalui Forum Diskusi osTicket. Akhirnya, saya berhasil membuat modifikasi tersebut. Anda sekarang dapat mengaktifkan atau menonaktifkan fitur ini berdasarkan setting Departemen melalui Panel Admin dari Sistem osTicket Anda, siapa tahu ada departemen yang tidak membutuhkan fitur ini.

  1. Pertama sekali, ubah tabel ost_department Anda dengan menggunakan skrip SQL berikut. Mohon diingat bahwa ost_ merupakan awalan nama tabel. Awalan ini bisa saja berbeda dengan awalan nama tabel di sistem osTicket Anda. Jika memang berbeda, silahkan sesuaikan sendiri, harap maklum!

    ALTER TABLE ost_department
    ADD COLUMN `transfer_auto_alert` tinyint(1) default 1 NOT NULL;
  2. Buka file \include\class.dept.php, dan cari kode ini:

    116
    117
    118
    
        function autoRespONNewMessage() {
            return $this->row['message_auto_response']?true:false;
        }

    setelah baris terakhir kode tadi, tambahkan kode di bawah ini:

    119
    120
    121
    122
    123
    
        // MOD Transfer Ticket Auto Alert, by Masino Sinaga, October 30, 2009 
        function autoRespONTransferTicket() {
            return $this->row['transfer_auto_alert']?true:false;
        }
        // MOD Transfer Ticket Auto Alert, by Masino Sinaga, October 30, 2009

    Cari lagi kode ini:

    252
    
                     ',message_auto_response='.db_input($_POST['message_auto_response']).

    lalu timpa dengan kode berikut:

    252
    253
    
                     ',message_auto_response='.db_input($_POST['message_auto_response']).
                     ',transfer_auto_alert='.db_input($_POST['transfer_auto_alert']). // MOD Transfer Ticket Auto Alert, by Masino Sinaga, October 30, 2009
  3. Buka file \include\staff\dept.inc.php Anda, dan cari kode ini:

    126
    127
    128
    
                    <input type="radio" name="message_auto_response"  value="0"   <?=!$info['message_auto_response']?'checked':''?> />Disable
                </td>
            </tr>

    setelah baris terakhir kode tadi, tambahkan kode berikut:

    129
    130
    131
    132
    133
    134
    135
    136
    
            <!-- MOD Transfer Ticket Auto Alert, by Masino Sinaga, October 30, 2009 -->
            <tr><th>Auto Alert Ticket Transfer:</th>
                <td>
                    <input type="radio" name="transfer_auto_alert"  value="1"   <?=$info['transfer_auto_alert']?'checked':''?> />Enable
                    <input type="radio" name="transfer_auto_alert"  value="0"   <?=!$info['transfer_auto_alert']?'checked':''?> />Disable
                </td>
            </tr>
            <!-- MOD Transfer Ticket Auto Alert, by Masino Sinaga, October 30, 2009 -->
  4. Buka file \scp\tickets.php Anda, dan cari kode berikut:

    112
    113
    114
    115
    116
    117
    
                if(!$errors && $ticket->transfer($_POST['dept_id'])){
                     $ticket->reload(); //dept manager changed!
                    //Send out alerts?? - for now yes....part of internal note!
                    $title='Dept. Transfer: '.$ticket->getDeptName().' to '.Dept::getNameById($_POST['dept_id']);
                    $ticket->postNote($title,$_POST['message']);
                    $msg='Ticket Transfered Sucessfully';

    lalu timpa dengan kode berikut:

    112
    113
    114
    115
    116
    117
    118
    119
    
                // MOD Transfer Ticket Auto Alert, by Masino Sinaga, October 30, 2009
                if(!$errors && $ticket->transfer($_POST['dept_id'],$ticket->getDeptName(),Dept::getNameById($_POST['dept_id']))){
                // Send out alerts?? - for now yes....part of internal note!
                // Now department members can also received an alert for incoming transfered ticket!
                    $title='Dept. Transfer: '.$ticket->getDeptName().' to '.Dept::getNameById($_POST['dept_id']);
                    $ticket->reload(); //dept manager changed!
    		$ticket->postNote($title,$_POST['message']);               
                    $msg='Ticket Transfered Sucessfully';
  5. Buka file \include\class.ticket.php Anda, dan cari kode ini:

    492
    493
    494
    495
    496
    497
    498
    499
    500
    501
    502
    503
    
        //Dept Tranfer...with alert..
        function transfer($deptId){
            global $cfg;
            /*
            TODO:
                1) Figure out what to do when ticket is assigned
                    Is the assignee allowed to access target dept?  (At the moment assignee will have access to the ticket anyways regardless of Dept)
                2) Send alerts to new Dept manager/members??
                3) Other crap I don't have time to think about at the moment.
            */
            return $this->setDeptId($deptId)?true:false;
        }

    timpa semua kode tadi dengan kode berikut ini:

    492
    493
    494
    495
    496
    497
    498
    499
    500
    501
    502
    503
    504
    505
    506
    507
    508
    509
    510
    511
    512
    513
    514
    515
    516
    517
    518
    519
    520
    521
    522
    523
    524
    525
    
        //Dept Tranfer...with alert..
        function transfer($deptId,$oldDept,$newDept){
            global $cfg;
            /*
            TODO:
                1) Figure out what to do when ticket is assigned
                    Is the assignee allowed to access target dept?  (At the moment assignee will have access to the ticket anyways regardless of Dept)
                2) Send alerts to new Dept manager/members?? (Yes, now your dreams come true! See MOD created by Masino Sinaga below!)
                3) Other crap I don't have time to think about at the moment.
            */
            //return $this->setDeptId($deptId)?true:false;
     
            // MOD Transfer Ticket Auto Alert, by Masino Sinaga, October 30, 2009
    	if ($this->setDeptId($deptId)) {
    	    $this->dept_id = $deptId;
                $dept=$this->getDept();
                if ($dept->autoRespONTransferTicket()) {
    	      $helpdesk_email=$cfg->getDefaultEmail();
                  $sqls = 'SELECT DISTINCT(email) FROM '.STAFF_TABLE.' WHERE dept_id = '.db_input($deptId);
                  if (($ress=db_query($sqls)) && db_num_rows($ress)) {
                    while(list($email)=db_fetch_row($ress)) {
                      $helpdesk_email->send($email,
    		  'New Transfered Ticket #'.$this->getExtId(),
    		  'A new ticket #'.$this->getExtId().' has been transfered to your department (from '.$oldDept.' to '.$newDept.')!');
                    }
                  }
                }else {
                  Sys::log(LOG_WARNING,'autoRespONTransferTicket','Failed while getting autoRespONTransferTicket setting.');
                }
                return true;					
    	}  
            return false;
            // MOD Transfer Ticket Auto Alert, by Masino Sinaga, October 30, 2009
        }

Semoga dapat membantu.

Share

551 kali dibacaCetak Artikel Ini Cetak Artikel Ini

Komentar

  1. Benjamin mengatakan:

    Great mod! Works perfect, it would be really cool, if you could set a custom text for this alert mail – like you’ve got it for alert mails on staff changement.

    Would this be possible?

  2. Masino Sinaga mengatakan:

    Of course, it is possible. But, since the message does not need to customize further (it only displays the short simple message that inform about an incoming ticket), then I am not too interested to provide the space in order to set a custom message. If you make a modification about it, then let us know. Thanks.

Utarakan pikiran Anda

*


*