[ 'class' => VerbFilter::className(), 'actions' => [ 'delete' => [ 'POST' ], ], ], ]; } public function actionDev() { foreach(ProductVariant::find() ->where([ '>', 'price_old', 0, ]) ->all() as $item) { if($item->price >= $item->price_old || $item->price == 0) { print $item->price . ' | ' . $item->price_old . "
\n"; } } print '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'; } /** * Lists all Product models. * @return mixed */ public function actionIndex() { $searchModel = new ProductSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); return $this->render('index', [ 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, ]); } /** * Displays a single Product model. * * @param integer $id * * @return mixed */ public function actionView($id) { return $this->render('view', [ 'model' => $this->findModel($id), ]); } /** * Creates a new Product model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { $model = new Product(); if($model->load(Yii::$app->request->post())) { $model->imagesUpload = UploadedFile::getInstances($model, 'imagesUpload'); if($model->save()) { if(!empty( $model->imagesUpload ) && ( ( $images = $model->imagesUpload() ) !== false )) { foreach($images as $image) { $imageModel = new ProductImage(); $imageModel->product_id = $model->product_id; $imageModel->image = $image; $imageModel->save(); } } return $this->redirect([ 'view', 'id' => $model->product_id, ]); } } return $this->render('create', [ 'model' => $model, ]); } /** * Updates an existing Product 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->imagesUpload = UploadedFile::getInstances($model, 'imagesUpload'); if($model->save()) { if(!empty( $model->imagesUpload ) && ( ( $images = $model->imagesUpload() ) !== false )) { foreach($images as $image) { $imageModel = new ProductImage(); $imageModel->product_id = $model->product_id; $imageModel->image = $image; $imageModel->save(); } } return $this->redirect([ 'view', 'id' => $model->product_id, ]); } } $groups = $model->getTaxGroupsByLevel(0); return $this->render('update', [ 'model' => $model, 'groups' => $groups, ]); } /** * Deletes an existing Product 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' ]); } public function actionDelimg($id) { $image = ProductImage::findOne($id); if($image) { $image->delete(); } print '1'; exit; } public function actionIs_top($id) { $model = $this->findModel($id); $model->is_top = intval(empty( $model->is_top )); $model->save(false, [ 'is_top' ]); return $this->redirect([ 'index' ]); } public function actionIs_new($id) { $model = $this->findModel($id); $model->is_new = intval(empty( $model->is_new )); $model->save(false, [ 'is_new' ]); return $this->redirect([ 'index' ]); } public function actionAkciya($id) { $model = $this->findModel($id); $model->akciya = intval(empty( $model->akciya )); $model->save(false, [ 'akciya' ]); return $this->redirect([ 'index' ]); } public function actionImport() { $model = new Import(); if($model->load(Yii::$app->request->post())) { $file = UploadedFile::getInstances($model, 'file'); $method = 'go' . ucfirst($model->type); $target = Yii::getAlias('@uploadDir') . '/' . Yii::getAlias('@uploadFile' . ucfirst($model->type)); if(empty( $file )) { $model->errors[] = 'File not upload'; } elseif($method == 'goPrices' && $file[ 0 ]->name != 'file_1.csv') { $model->errors[] = 'File need "file_1.csv"'; } elseif($method == 'goProducts' && $file[ 0 ]->name == 'file_1.csv') { $model->errors[] = 'File can not "file_1.csv"'; } elseif($model->validate() && $file[ 0 ]->saveAs($target)) { // PROCESS PAGE return $this->render('import-process', [ 'model' => $model, 'method' => $model->type, 'target' => $target, ]); // $model->$method(); } else { $model->errors[] = 'File can not be upload or other error'; } } return $this->render('import', [ 'model' => $model, ]); } public function actionProducts() { $from = Yii::$app->request->get('from', 0); $model = new Import(); if(Yii::$app->request->isAjax) { Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; return $model->goProducts($from, 10); } } public function actionPrices() { $from = Yii::$app->request->get('from', 0); $model = new Import(); if(Yii::$app->request->isAjax) { Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; return $model->goPrices($from, 10); } } public function actionExport() { $model = new Export(); if(( $file = $model->process(Yii::getAlias('@uploadDir')) )) { return Yii::$app->response->sendFile($file) ->send(); } throw new NotFoundHttpException('Error'); } /** * Finds the Product model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * * @param integer $id * * @return Product the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if(( $model = Product::findOne($id) ) !== NULL) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } } }