OEModule\PatientTicketing\components\PatientTicketing_API::createTicketForPatient PHP 메소드

createTicketForPatient() 공개 메소드

public createTicketForPatient ( Patient $patient, Queue $initial_queue, CWebUser $user, Firm $firm, $data ) : Ticket
$patient Patient
$initial_queue OEModule\PatientTicketing\models\Queue
$user CWebUser
$firm Firm
$data
리턴 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;
        }
    }