];
}
+ public function addIfNeed($options)
+ {
+ $result = [
+ 'id' => FALSE,
+ 'error' => Yii::t('models', 'Models: Key field "model", "type" missing: ') . print_r($options, TRUE),
+ ];
+ // Если указан инвентарный номер
+ if (is_array($options) && isset($options[ 'model' ]))
+ {
+ $model = Models::find()
+ ->where([ 'name' => $options[ 'model' ]])->all(); // Ищем наименование модели предмета/обрудования
+
+ if (count($model) > 0) // Записи найдены, выводим первую совпавшую
+ {
+ $result[ 'id' ] = $model[ 0 ]->id;
+ $result[ 'error' ] = '';
+ }
+ else
+ {
+ $type = TypesController::addIfNeed($options); // Найдём или добавим тип
+ // Если тип не добавили
+ if($type[ 'id' ] === FALSE)
+ {
+ $result[ 'error' ] = '<br />' . $type[ 'error' ];
+ //$type[ 'id' ] = NULL; // сделаем его пустым
+ }
+ else
+ {
+ // Создаём новую запись модели предмета/оборудования
+ $model = new Models();
+ $model->name = $options[ 'model' ]; // Сетевое имя
+ $model->type_id = isset($type[ 'id' ]) ? $type[ 'id' ] : NULL; // Идентификатор типа
+ $model->product = isset($options[ 'product' ]) ? $options[ 'product' ] : NULL; // Код оборудования
+ $model->modelnumber = isset($options[ 'modelnum' ]) ? $options[ 'modelnum' ] : NULL; // Номер модели
+ // Сохраняем запись
+ if ($model->validate() && $model->save())
+ {
+ $result[ 'id' ] = $model->id; // Возвращаем идентификатор записанного оборудования
+ $result[ 'error' ] = '';
+ }
+ else
+ {
+ $result[ 'error' ] .= Yii::t('models', 'Models: Failed to add entry: ') . print_r($model->errors, TRUE);
+ }
+ }
+
+ }
+ }
+ return $result;
+ }
+
/**
* Lists all Models models.
* @return mixed
return $this->redirect(['site/index']);
}
$searchModel = new ModelsSearch();
+ if (isset(Yii::$app->request->queryParams['id']))
+ {
+ $id = Yii::$app->request->queryParams['id'];
+ $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
+ $pageSize = $dataProvider->pagination->pageSize;
+ $dataProvider->pagination = FALSE;
+ $rows = $dataProvider->getModels();
+ $page = 0;
+ foreach ($rows as $key => $val)
+ {
+ if ($id == $val->id)
+ {
+ $page = ceil(($key + 1) / $pageSize);
+ break;
+ }
+ }
+ return $this->redirect(['index', 'page' => $page]);
+ }
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
return $this->render('index', [