<?php
/**
 * IMPORTANT NOTE
 * The code of this system is closed and a private proprietary of Flex Solutions.
 * A written authorization/license from Flex Solutions is required before using or modifying this code.
 * Email: sales@flexsolution.biz, Phone: +962795342585, Website: http://www.flexsolutions.biz
 */
 

 /**
  * This is the model class for table "issuing_reason".
  *
  * The followings are the available columns in table 'issuing_reason':
  * @property integer $id
  * @property string $reason
  * @property string $status
  * @property integer $created_by
  * @property string $created_date
  * @property integer $last_edited_by
  * @property string $last_edited_date
  *
  * The followings are the available model relations:
  * @property Ticket[] $tickets
  */
 class IssuingReason extends LsmsActiveRecord
     {


     /**
      * Returns the static model of the specified AR class.
      * @param string $className active record class name.
      * @return IssuingReason the static model class
      */
     public static function model($className=__CLASS__)
     {
         return parent::model($className);
     }


     /**
      * @return string the associated database table name
      */
     public function tableName()
     {
         return 'issuing_reason';
     }


     /**
      * @return array validation rules for model attributes.
      */
     public function rules()
     {
         // NOTE: you should only define rules for those attributes that
         // will receive user inputs.
         return array(
             array('reason, status', 'required'),
             array('reason', 'unique', 'message' => yii::t('dafault', 'Issuing Reason({value}) already exists.')),
             array('created_by, last_edited_by', 'numerical', 'integerOnly' => true),
             array('reason', 'length', 'max' => 255),
             array('status', 'length', 'max' => 8),
             // The following rule is used by search().
             // Please remove those attributes that should not be searched.
             array('id, reason, status', 'safe', 'on' => 'search'),
         );
     }


     /**
      * @return array relational rules.
      */
     public function relations()
     {
         // NOTE: you may need to adjust the relation name and the related
         // class name for the relations automatically generated below.
         return array(
             'tickets' => array(self::HAS_MANY, 'Ticket', 'issuing_reason_id'),
         );
     }


     /**
      * @return array customized attribute labels (name=>label)
      */
     public function attributeLabels()
     {
         return array(
             'reason' => yii::t('default', 'Reason'),
             'status' => yii::t('default', 'Status'),
         );
     }


     /**
      * @return array customized attribute labels Tooltips (name=>label tooltips)
      */
     public function attributeLabelsPopover()
     {
         return array();
     }


     /**
      * Retrieves a list of models based on the current search/filter conditions.
      * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.
      */
     public function search()
     {
         // Warning: Please modify the following code to remove attributes that
         // should not be searched.

         $criteria = new CDbCriteria;

         $criteria->compare('reason', $this->reason, true);
         $criteria->compare('status', $this->status, false);

         $pageSize = yii::app()->params['pageSize'];
         return new CActiveDataProvider($this, array(
             'pagination' => array('pageSize' => $pageSize,),
             'criteria' => $criteria,
         ));
     }


     public static function getAll($status=null)
     {
         if ($status == "Active")
         {
             return IssuingReason::model()->active()->findAll(array('order' => 'Reason'));
         }
         else
         {
             return IssuingReason::model()->findAll(array('order' => 'Reason'));
         }
     }
     }