clear() public static method

public static clear ( )
示例#1
0
 public function testAutoSaveClear()
 {
     $first_patient_id = 1;
     $second_patient_id = 2;
     $first_queue_id = 1;
     $second_queue_id = 1;
     $data = array('key' => 'value');
     AutoSaveTicket::saveFormData($first_patient_id, $first_queue_id, $data);
     AutoSaveTicket::saveFormData($second_patient_id, $second_queue_id, $data);
     $this->assertNotNull(AutoSaveTicket::getFormData($first_patient_id, $first_queue_id));
     $this->assertNotNull(AutoSaveTicket::getFormData($first_patient_id, $second_queue_id));
     AutoSaveTicket::clear();
     $this->assertNull(AutoSaveTicket::getFormData($first_patient_id, $first_queue_id));
     $this->assertNull(AutoSaveTicket::getFormData($first_patient_id, $second_queue_id));
 }
示例#2
0
 /**
  * Handles the moving of a ticket to a new Queue.
  *
  * @param $id
  *
  * @throws \CHttpException
  */
 public function actionMoveTicket($id)
 {
     if (!($ticket = models\Ticket::model()->with('current_queue')->findByPk($id))) {
         throw new \CHttpException(404, 'Invalid ticket id.');
     }
     $qs_svc = Yii::app()->service->getService(self::$QUEUESET_SERVICE);
     $queueset = $qs_svc->getQueueSetForTicket($ticket->id);
     if (!$this->checkQueueSetProcessAccess($queueset)) {
         throw new \CHttpException(403, 'Not authorised to take ticket');
     }
     foreach (array('from_queue_id', 'to_queue_id') as $required_field) {
         if (!@$_POST[$required_field]) {
             throw new \CHttpException(400, "Missing required form field {$required_field}");
         }
     }
     if ($ticket->current_queue->id != $_POST['from_queue_id']) {
         throw new \CHttpException(409, 'Ticket has already moved to a different queue');
     }
     if (!($to_queue = models\Queue::model()->active()->findByPk($_POST['to_queue_id']))) {
         throw new \CHttpException(404, "Cannot find queue with id {$_POST['to_queue_id']}");
     }
     $api = Yii::app()->moduleAPI->get('PatientTicketing');
     list($data, $errs) = $api->extractQueueData($to_queue, $_POST, true);
     if (count($errs)) {
         echo json_encode(array('errors' => array_values($errs)));
         Yii::app()->end();
     }
     $transaction = Yii::app()->db->beginTransaction();
     try {
         if ($to_queue->addTicket($ticket, Yii::app()->user, $this->firm, $data)) {
             if ($ticket->assignee) {
                 $ticket->assignee_user_id = null;
                 $ticket->assignee_date = null;
                 $ticket->save();
             }
             $ticket->audit('ticket', 'move', $ticket->id);
             $transaction->commit();
             $t_svc = Yii::app()->service->getService('PatientTicketing_Ticket');
             AutoSaveTicket::clear();
             $flsh_id = 'patient-ticketing-';
             $flsh_id .= $queueset->getId();
             if ($to_queue->outcomes) {
                 Yii::app()->user->setFlash($flsh_id, $t_svc->getCategoryForTicket($ticket)->name . ' - ' . $ticket->patient->getHSCICName() . ' moved to ' . $to_queue->name);
             } else {
                 Yii::app()->user->setFlash($flsh_id, $t_svc->getCategoryForTicket($ticket)->name . ' - ' . $ticket->patient->getHSCICName() . ' completed');
             }
         } else {
             throw new Exception('unable to assign ticket to queue');
         }
     } catch (Exception $e) {
         $transaction->rollback();
         throw $e;
     }
     $queueset_id = $queueset->getId();
     $queueset_model = models\QueueSet::model()->findByPk($queueset_id);
     $queueset_category_id = $queueset_model->category_id;
     echo json_encode(array('redirectURL' => "/PatientTicketing/default/?queueset_id={$queueset_id}&cat_id={$queueset_category_id}"));
 }