OEModule\PatientTicketing\models\TicketQueueAssignment::model PHP Method

model() public static method

Returns the static model of the specified AR class.
public static model ( $className = __CLASS__ ) : OphTrOperationnote_GlaucomaTube_PlatePosition
return OphTrOperationnote_GlaucomaTube_PlatePosition the static model class
    public static function model($className = __CLASS__)
    {
        return parent::model($className);
    }

Usage Example

Example #1
0
 protected function buildTicketFilterCriteria($filter_options, services\PatientTicketing_QueueSet $queueset)
 {
     $patient_filter = null;
     // build criteria
     $criteria = new \CDbCriteria();
     $qs_svc = Yii::app()->service->getService(self::$QUEUESET_SERVICE);
     if (@$_GET['patient_id']) {
         // this is a simple way of handling this for the sake of demo-ing functionality
         $criteria->addColumnCondition(array('patient_id' => $_GET['patient_id']));
         $patient_filter = \Patient::model()->findByPk($_GET['patient_id']);
     } else {
         // TODO: we probably don't want to have such a gnarly approach to this, we might want to denormalise so that we are able to do eager loading
         // That being said, we might get away with setting together false on the with to do this filtering (multiple query eager loading).
         $criteria->join = 'JOIN ' . models\TicketQueueAssignment::model()->tableName() . ' cqa ON cqa.ticket_id = t.id and cqa.id = (SELECT id from ' . models\TicketQueueAssignment::model()->tableName() . ' qa2 WHERE qa2.ticket_id = t.id order by qa2.created_date desc limit 1)';
         // build queue id list
         $queue_ids = array();
         if (@$filter_options['queue-ids']) {
             $queue_ids = $filter_options['queue-ids'];
             if (@$filter_options['closed-tickets']) {
                 // get all closed tickets regardless of whether queue is active or not
                 foreach (models\Queue::model()->closing()->findAll() as $closed_queue) {
                     $queue_ids[] = $closed_queue->id;
                 }
             }
         } else {
             if ($qs_svc->isQueueSetPermissionedForUser($queueset, Yii::app()->user->id)) {
                 foreach ($qs_svc->getQueueSetQueues($queueset, @$filter_options['closed-tickets'] ? true : false) as $queue) {
                     $queue_ids[] = $queue->id;
                 }
             }
         }
         if (@$filter_options['my-tickets']) {
             $criteria->addColumnCondition(array('assignee_user_id' => Yii::app()->user->id));
         }
         if (@$filter_options['priority-ids']) {
             $criteria->addInCondition('priority_id', $filter_options['priority-ids']);
         }
         if (count($queue_ids)) {
             $criteria->addInCondition('cqa.queue_id', $queue_ids);
         }
         if (@$filter_options['firm-id']) {
             $criteria->addColumnCondition(array('cqa.assignment_firm_id' => $filter_options['firm-id']));
         } elseif (@$filter_options['subspecialty-id']) {
             $criteria->join .= 'JOIN ' . \Firm::model()->tableName() . ' f ON f.id = cqa.assignment_firm_id JOIN ' . \ServiceSubspecialtyAssignment::model()->tableName() . ' ssa ON ssa.id = f.service_subspecialty_assignment_id';
             $criteria->addColumnCondition(array('ssa.subspecialty_id' => $filter_options['subspecialty-id']));
         }
     }
     $criteria->order = 't.created_date desc';
     return array($criteria, $patient_filter);
 }