OSDN Git Service

ea231a2c10537e8dcfaed9a63d49eaa8b4c49024
[invent/invent.git] / models / Items.php
1 <?php
2
3 namespace app\models;
4
5 use Yii;
6
7 /**
8  * This is the model class for table 'items'.
9  *
10  * @property int $id                    Идентификатор (неизменяемый)
11 // * @property int $type_id               Идентификатор типа оборудования
12  * @property int $model_id              Идентификатор модели предмета/оборудования
13  * @property string|null  $name         Сетевое имя оборудования
14 // * @property string|null  $model        Модель оборудования
15  * @property string|null  $os           Операционная система
16  * @property string|null  $mac          Сетевой MAC адрес
17  * @property string|null  $serial       Серийный номер
18 // * @property string|null  $product      Код оборудования
19 // * @property string|null  $modelnumber  Номер модели
20  * @property string|null  $invent       Инвентарный номер
21  * @property boolean      $checked      Флаг прохождения инвентаризации
22  * @property string|null  $statusName   Наименование состояния
23  * @property string|null  $typeName     Наименование типа
24  * @property string|null  $locationName Наименование места размещения
25  * @property string|null  $regionName   Наименование региона/подразделения
26  * @property string|null  $modelName    Наименование предмета/оборудования
27  */
28 class Items extends \yii\db\ActiveRecord
29 {
30     public $statusName;
31     public $typeName;
32     public $locationName;
33     public $regionName;
34     public $modelName;
35     public $myMessage;
36      /**
37      * {@inheritdoc}
38      */
39     public static function tableName()
40     {
41         return '{{%items}}';
42     }
43
44     /**
45      * {@inheritdoc}
46      */
47     public function rules()
48     {
49         return [
50             [[ 'name', 'os', 'serial', 'comment' ], 'string', 'max' => 255 ],
51             [[ 'mac' ],    'string', 'max' => 20 ],
52             [[ 'invent' ], 'string', 'max' => 50 ],
53             [[ 'model_id' ], 'integer' ],
54             [[ 'checked' ], 'integer' ],
55         ];
56     }
57
58     /**
59      * {@inheritdoc}
60      */
61     public function attributeLabels()
62     {
63         return [
64             'id'           => Yii::t('app',   'Identifier'),              // Идентификатор
65             'name'         => Yii::t('items', 'Item network name'),       // Сетевое имя оборудования
66             'modelName'    => Yii::t('items', 'Model'),                   // Модель
67             'model_id'     => Yii::t('items', 'Model identifier'),        // Идентификатор модели
68             'typeName'     => Yii::t('items', 'Item type'),               // Название типа
69             'os'           => Yii::t('items', 'Operating system'),        // Операционная система
70             'mac'          => Yii::t('items', 'MAC address'),             // MAC адрес
71             'serial'       => Yii::t('items', 'Serial number'),           // Серийный номер
72             'invent'       => Yii::t('items', 'Inventory number'),        // Инвентарный номер
73             'comment'      => Yii::t('items', 'Additional Information'),  // Дополнительная информация
74             'checked'      => Yii::t('items', 'Location checked'),        // Проинвентаризировано
75             'statusName'   => Yii::t('items', 'State'),                   // Название состояния
76             'locationName' => Yii::t('items', 'Location'),                // Название местоположения
77             'regionName'   => Yii::t('items', 'Region'),                  // Название подразделения
78
79         ];
80     }
81
82     // Получение всех перемещений предмета/оборудования
83     public function getMoving()
84     {
85         return $this->hasMany(Moving::className(), ['item_id' => 'id']);
86     }
87
88     // Получение модели предмета/оборудования
89     public function getModels()
90     {
91         return $this->hasOne(Models::className(), ['id' => 'model_id']);
92     }
93
94     // Получение статусов предмета/оборудования
95     public function getStatus()
96     {
97         return $this->getMoving()->select(Status::tableName() . '.*')->joinWith('status');
98     }
99
100     // Получение места размещения предмета/оборудования
101     public function getLocations()
102     {
103         return $this->getMoving()->select(Locations::tableName() . '.*')->joinWith('locations');
104     }
105
106     // Получение региона/подразделения размещения предмета/оборудования
107     public function getRegions()
108     {
109         return $this->getLocations()->select(Regions::tableName() .'.*')->joinWith('regions');
110     }
111
112     // Получение типа предмета/оборудования
113     public function getTypes()
114     {
115         return $this->getModels()->select(Types::tableName() . '.*')->joinWith('types');
116     }
117 }