public function createNewTransaction($process_id, $transaction_id, $user_id, $role_id)
 {
     $request = ApprovalRequest::model()->findByForeign($process_id, $role_id);
     if (count($request) > 0) {
         try {
             $model = new ApprovalTransaction();
             $model->process_id = $process_id;
             $model->transaction_id = $transaction_id;
             $model->user_id = $user_id;
             $model->request_role_id = $role_id;
             $model->approval_request_id = $request->id;
             //$transaction = $model->dbConnection->beginTransaction();
             $model->save();
             $this->createNewTransactionLevel($model);
             return $model;
         } catch (Exception $e) {
             //$transaction->rollback();
             throw $e;
         }
     } else {
         return NULL;
     }
 }
 public function findByForeign($process_id, $role_id)
 {
     return ApprovalRequest::model()->find(array('condition' => 'process_id=:process_id AND role_id = :role_id', 'params' => array(':process_id' => $process_id, ':role_id' => $role_id)));
 }