addTicket() public méthode

Add the given ticket to the Queue for the user and firm.
public addTicket ( Ticket $ticket, CWebUser $user, Firm $firm, $data )
$ticket Ticket
$user CWebUser
$firm Firm
$data
 /**
  * @param \Patient  $patient
  * @param Queue     $initial_queue
  * @param \CWebUser $user
  * @param \Firm     $firm
  * @param $data
  *
  * @throws \Exception
  *
  * @return \OEModule\PatientTicketing\models\Ticket
  */
 public function createTicketForPatient(\Patient $patient, Queue $initial_queue, \CWebUser $user, \Firm $firm, $data)
 {
     $transaction = Yii::app()->db->getCurrentTransaction() === null ? Yii::app()->db->beginTransaction() : false;
     try {
         $ticket = new Ticket();
         $ticket->patient_id = $patient->id;
         $ticket->created_user_id = $user->id;
         $ticket->last_modified_user_id = $user->id;
         $ticket->priority_id = $data['patientticketing__priority'];
         $ticket->save();
         $ticket->audit('ticket', 'create', $ticket->id);
         $initial_queue->addTicket($ticket, $user, $firm, $data);
         if ($transaction) {
             $transaction->commit();
         }
         return $ticket;
     } catch (\Exception $e) {
         if ($transaction) {
             $transaction->rollback();
         }
         throw $e;
     }
 }