[ '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())) { if ($model->save()) { return $this->redirect(['view', 'id' => $model->product_id]); } } else { 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->unlinkAll('options',true); if ($model->save()) { return $this->redirect(['view', 'id' => $model->product_id]); } } else { $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 actionExportProcess($from, $filename) { $model = new Export(); if(Yii::$app->request->isAjax) { Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; return $model->process($filename,$from); } } public function actionExport() { $model = new Export(); if($model->load(Yii::$app->request->post())) { // PROCESS PAGE return $this->render('export-process', [ 'model' => $model, 'method' => 'export', ]); } return $this->render('export', [ 'model' => $model, ]); // $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.'); } } }