From dc7acae552f2ccd102d1d032a0f8155703f9af91 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Mon, 5 Oct 2015 13:10:53 +0300 Subject: [PATCH] Importers CRUD --- backend/controllers/ImportersController.php | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/models/ImportersSearch.php | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/views/importers/_form.php | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/views/importers/_search.php | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/views/importers/create.php | 21 +++++++++++++++++++++ backend/views/importers/index.php | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/views/importers/update.php | 21 +++++++++++++++++++++ backend/views/importers/view.php | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/views/layouts/column.php | 2 +- 9 files changed, 494 insertions(+), 1 deletion(-) create mode 100644 backend/controllers/ImportersController.php create mode 100644 backend/models/ImportersSearch.php create mode 100644 backend/views/importers/_form.php create mode 100644 backend/views/importers/_search.php create mode 100644 backend/views/importers/create.php create mode 100644 backend/views/importers/index.php create mode 100644 backend/views/importers/update.php create mode 100644 backend/views/importers/view.php diff --git a/backend/controllers/ImportersController.php b/backend/controllers/ImportersController.php new file mode 100644 index 0000000..8d9dd30 --- /dev/null +++ b/backend/controllers/ImportersController.php @@ -0,0 +1,121 @@ + [ + 'class' => VerbFilter::className(), + 'actions' => [ + 'delete' => ['post'], + ], + ], + ]; + } + + /** + * Lists all Importers models. + * @return mixed + */ + public function actionIndex() + { + $searchModel = new ImportersSearch(); + $dataProvider = $searchModel->search(Yii::$app->request->queryParams); + + return $this->render('index', [ + 'searchModel' => $searchModel, + 'dataProvider' => $dataProvider, + ]); + } + + /** + * Displays a single Importers model. + * @param integer $id + * @return mixed + */ + public function actionView($id) + { + return $this->render('view', [ + 'model' => $this->findModel($id), + ]); + } + + /** + * Creates a new Importers model. + * If creation is successful, the browser will be redirected to the 'view' page. + * @return mixed + */ + public function actionCreate() + { + $model = new Importers(); + + if ($model->load(Yii::$app->request->post()) && $model->save()) { + return $this->redirect(['view', 'id' => $model->id]); + } else { + return $this->render('create', [ + 'model' => $model, + ]); + } + } + + /** + * Updates an existing Importers model. + * If update is successful, the browser will be redirected to the 'view' page. + * @param integer $id + * @return mixed + */ + public function actionUpdate($id) + { + $model = $this->findModel($id); + + if ($model->load(Yii::$app->request->post()) && $model->save()) { + return $this->redirect(['view', 'id' => $model->id]); + } else { + return $this->render('update', [ + 'model' => $model, + ]); + } + } + + /** + * Deletes an existing Importers model. + * If deletion is successful, the browser will be redirected to the 'index' page. + * @param integer $id + * @return mixed + */ + public function actionDelete($id) + { + $this->findModel($id)->delete(); + + return $this->redirect(['index']); + } + + /** + * Finds the Importers model based on its primary key value. + * If the model is not found, a 404 HTTP exception will be thrown. + * @param integer $id + * @return Importers the loaded model + * @throws NotFoundHttpException if the model cannot be found + */ + protected function findModel($id) + { + if (($model = Importers::findOne($id)) !== null) { + return $model; + } else { + throw new NotFoundHttpException('The requested page does not exist.'); + } + } +} diff --git a/backend/models/ImportersSearch.php b/backend/models/ImportersSearch.php new file mode 100644 index 0000000..493184c --- /dev/null +++ b/backend/models/ImportersSearch.php @@ -0,0 +1,87 @@ + $query, + ]); + + $this->load($params); + + if (!$this->validate()) { + // uncomment the following line if you do not want to return any records when validation fails + // $query->where('0=1'); + return $dataProvider; + } + + $query->andFilterWhere([ + 'id' => $this->id, + 'currency_id' => $this->currency_id, + 'active' => $this->active, + 'PARSER_IS_ACTIVE' => $this->PARSER_IS_ACTIVE, + 'PARSER_COLUMN_COUNT' => $this->PARSER_COLUMN_COUNT, + 'PARSER_FIELD_BRAND' => $this->PARSER_FIELD_BRAND, + 'PARSER_FIELD_ARTICLE' => $this->PARSER_FIELD_ARTICLE, + 'PARSER_FIELD_ARTICLE_PREFIX' => $this->PARSER_FIELD_ARTICLE_PREFIX, + 'PARSER_FIELD_PRICE' => $this->PARSER_FIELD_PRICE, + 'PARSER_FIELD_DESCR' => $this->PARSER_FIELD_DESCR, + 'PARSER_FIELD_BOX' => $this->PARSER_FIELD_BOX, + 'PARSER_FIELD_ADD_BOX' => $this->PARSER_FIELD_ADD_BOX, + 'PARSER_FIELD_GROUP_RG' => $this->PARSER_FIELD_GROUP_RG, + 'PARSER_FIELD_MULTIPLIER' => $this->PARSER_FIELD_MULTIPLIER, + 'price_date_update' => $this->price_date_update, + ]); + + $query->andFilterWhere(['like', 'code', $this->code]) + ->andFilterWhere(['like', 'name', $this->name]) + ->andFilterWhere(['like', 'name_price', $this->name_price]) + ->andFilterWhere(['like', 'delivery', $this->delivery]) + ->andFilterWhere(['like', 'email', $this->email]) + ->andFilterWhere(['like', 'info', $this->info]) + ->andFilterWhere(['like', 'PARSER_FIELD_SIGN', $this->PARSER_FIELD_SIGN]); + + return $dataProvider; + } +} diff --git a/backend/views/importers/_form.php b/backend/views/importers/_form.php new file mode 100644 index 0000000..bf9036b --- /dev/null +++ b/backend/views/importers/_form.php @@ -0,0 +1,63 @@ + + +
+ + + + field($model, 'code')->textInput(['maxlength' => true]) ?> + + field($model, 'name')->textInput(['maxlength' => true]) ?> + + field($model, 'name_price')->textInput(['maxlength' => true]) ?> + + field($model, 'currency_id')->textInput() ?> + + field($model, 'delivery')->textInput(['maxlength' => true]) ?> + + field($model, 'email')->textInput(['maxlength' => true]) ?> + + field($model, 'info')->textarea(['rows' => 6]) ?> + + field($model, 'active')->textInput() ?> + + field($model, 'PARSER_IS_ACTIVE')->textInput() ?> + + field($model, 'PARSER_COLUMN_COUNT')->textInput() ?> + + field($model, 'PARSER_FIELD_BRAND')->textInput() ?> + + field($model, 'PARSER_FIELD_ARTICLE')->textInput() ?> + + field($model, 'PARSER_FIELD_ARTICLE_PREFIX')->textInput() ?> + + field($model, 'PARSER_FIELD_PRICE')->textInput() ?> + + field($model, 'PARSER_FIELD_DESCR')->textInput() ?> + + field($model, 'PARSER_FIELD_BOX')->textInput() ?> + + field($model, 'PARSER_FIELD_ADD_BOX')->textInput() ?> + + field($model, 'PARSER_FIELD_GROUP_RG')->textInput() ?> + + field($model, 'PARSER_FIELD_SIGN')->textInput(['maxlength' => true]) ?> + + field($model, 'PARSER_FIELD_MULTIPLIER')->textInput() ?> + + field($model, 'price_date_update')->textInput() ?> + +
+ isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?> +
+ + + +
diff --git a/backend/views/importers/_search.php b/backend/views/importers/_search.php new file mode 100644 index 0000000..b8f9b4b --- /dev/null +++ b/backend/views/importers/_search.php @@ -0,0 +1,69 @@ + + + diff --git a/backend/views/importers/create.php b/backend/views/importers/create.php new file mode 100644 index 0000000..05925af --- /dev/null +++ b/backend/views/importers/create.php @@ -0,0 +1,21 @@ +title = 'Create Importers'; +$this->params['breadcrumbs'][] = ['label' => 'Importers', 'url' => ['index']]; +$this->params['breadcrumbs'][] = $this->title; +?> +
+ +

title) ?>

+ + render('_form', [ + 'model' => $model, + ]) ?> + +
diff --git a/backend/views/importers/index.php b/backend/views/importers/index.php new file mode 100644 index 0000000..af6fbe8 --- /dev/null +++ b/backend/views/importers/index.php @@ -0,0 +1,55 @@ +title = 'Importers'; +$this->params['breadcrumbs'][] = $this->title; +?> +
+ +

title) ?>

+ render('_search', ['model' => $searchModel]); ?> + +

+ 'btn btn-success']) ?> +

+ + $dataProvider, + 'filterModel' => $searchModel, + 'columns' => [ + ['class' => 'yii\grid\SerialColumn'], + + 'id', + 'code', + 'name', + 'name_price', + 'currency_id', + // 'delivery', + // 'email:email', + // 'info:ntext', + // 'active', + // 'PARSER_IS_ACTIVE', + // 'PARSER_COLUMN_COUNT', + // 'PARSER_FIELD_BRAND', + // 'PARSER_FIELD_ARTICLE', + // 'PARSER_FIELD_ARTICLE_PREFIX', + // 'PARSER_FIELD_PRICE', + // 'PARSER_FIELD_DESCR', + // 'PARSER_FIELD_BOX', + // 'PARSER_FIELD_ADD_BOX', + // 'PARSER_FIELD_GROUP_RG', + // 'PARSER_FIELD_SIGN', + // 'PARSER_FIELD_MULTIPLIER', + // 'price_date_update', + + ['class' => 'yii\grid\ActionColumn'], + ], + ]); ?> + +
diff --git a/backend/views/importers/update.php b/backend/views/importers/update.php new file mode 100644 index 0000000..462f5c3 --- /dev/null +++ b/backend/views/importers/update.php @@ -0,0 +1,21 @@ +title = 'Update Importers: ' . ' ' . $model->name; +$this->params['breadcrumbs'][] = ['label' => 'Importers', 'url' => ['index']]; +$this->params['breadcrumbs'][] = ['label' => $model->name, 'url' => ['view', 'id' => $model->id]]; +$this->params['breadcrumbs'][] = 'Update'; +?> +
+ +

title) ?>

+ + render('_form', [ + 'model' => $model, + ]) ?> + +
diff --git a/backend/views/importers/view.php b/backend/views/importers/view.php new file mode 100644 index 0000000..ab5321e --- /dev/null +++ b/backend/views/importers/view.php @@ -0,0 +1,56 @@ +title = $model->name; +$this->params['breadcrumbs'][] = ['label' => 'Importers', 'url' => ['index']]; +$this->params['breadcrumbs'][] = $this->title; +?> +
+ +

title) ?>

+ +

+ $model->id], ['class' => 'btn btn-primary']) ?> + $model->id], [ + 'class' => 'btn btn-danger', + 'data' => [ + 'confirm' => 'Are you sure you want to delete this item?', + 'method' => 'post', + ], + ]) ?> +

+ + $model, + 'attributes' => [ + 'id', + 'code', + 'name', + 'name_price', + 'currency_id', + 'delivery', + 'email:email', + 'info:ntext', + 'active', + 'PARSER_IS_ACTIVE', + 'PARSER_COLUMN_COUNT', + 'PARSER_FIELD_BRAND', + 'PARSER_FIELD_ARTICLE', + 'PARSER_FIELD_ARTICLE_PREFIX', + 'PARSER_FIELD_PRICE', + 'PARSER_FIELD_DESCR', + 'PARSER_FIELD_BOX', + 'PARSER_FIELD_ADD_BOX', + 'PARSER_FIELD_GROUP_RG', + 'PARSER_FIELD_SIGN', + 'PARSER_FIELD_MULTIPLIER', + 'price_date_update', + ], + ]) ?> + +
diff --git a/backend/views/layouts/column.php b/backend/views/layouts/column.php index 62e44a0..cc7b1a8 100644 --- a/backend/views/layouts/column.php +++ b/backend/views/layouts/column.php @@ -291,7 +291,7 @@ $this->beginContent('@app/views/layouts/main.php'); ], ['label' => 'Управление ролями', 'url' => ['#'], 'items' => [ ['label' => 'Покупатели', 'url' => ['accounts/index']], - ['label' => 'Поставщики', 'url' => '#'], + ['label' => 'Поставщики', 'url' => ['importers/index']], ['label' => 'Администраторы', 'url' => '#'], ], ], -- libgit2 0.21.4