Ejemplo n.º 1
0
 public function actionUpdate($id, $quantity)
 {
     $product = Product::findOne($id);
     if ($product) {
         \Yii::$app->cart->update($product, $quantity);
         $this->redirect(['cart/list']);
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
 /**
  * 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.');
     }
 }
Ejemplo n.º 3
0
 /**
  * Updates an existing PurchaseOrder model.
  * If update is successful, the browser will be redirected to the 'view' page.
  * @param integer $id
  * @return mixed
  */
 public function actionUpdate($id)
 {
     $username = Yii::$app->user->identity->username;
     if ($model = $this->findModel($id)) {
         $this->purchase_order_id = $model->id;
         $old_status = $model->status;
         if (Yii::$app->request->isPost && $model->update2(Yii::$app->request->post())) {
             $new_status = $model->status;
             $details = PurchaseOrderDetail::find()->where(['purchase_order_id' => $model->id])->all();
             switch ($old_status) {
                 case PurchaseOrder::STATUS_NEW:
                 case PurchaseOrder::STATUS_PENDING:
                     switch ($new_status) {
                         case PurchaseOrder::STATUS_SUCCESS:
                             foreach ($details as $item) {
                                 if ($product = Product::findOne($item->product_id)) {
                                     $product->order_quantity -= $item->quantity;
                                     $product->sold_quantity += $item->quantity;
                                     $product->total_revenue += $item->quantity * $item->unit_price;
                                     $product->save();
                                 }
                             }
                             break;
                         case PurchaseOrder::STATUS_REJECT:
                         case PurchaseOrder::STATUS_CANCELLED:
                         case PurchaseOrder::STATUS_FAIL:
                             foreach ($details as $item) {
                                 if ($product = Product::findOne($item->product_id)) {
                                     $product->order_quantity -= $item->quantity;
                                     $product->available_quantity += $item->quantity;
                                     $product->save();
                                 }
                             }
                         default:
                     }
                     break;
                 case PurchaseOrder::STATUS_SUCCESS:
                     switch ($new_status) {
                         case PurchaseOrder::STATUS_NEW:
                         case PurchaseOrder::STATUS_PENDING:
                             foreach ($details as $item) {
                                 if ($product = Product::findOne($item->product_id)) {
                                     $product->sold_quantity -= $item->quantity;
                                     $product->order_quantity += $item->quantity;
                                     $product->total_revenue -= $item->quantity * $item->unit_price;
                                     $product->save();
                                 }
                             }
                             break;
                         case PurchaseOrder::STATUS_REJECT:
                         case PurchaseOrder::STATUS_CANCELLED:
                         case PurchaseOrder::STATUS_FAIL:
                             foreach ($details as $item) {
                                 if ($product = Product::findOne($item->product_id)) {
                                     $product->sold_quantity -= $item->quantity;
                                     $product->available_quantity += $item->quantity;
                                     $product->total_revenue -= $item->quantity * $item->unit_price;
                                     $product->save();
                                 }
                             }
                         default:
                     }
                     break;
                 case PurchaseOrder::STATUS_REJECT:
                 case PurchaseOrder::STATUS_CANCELLED:
                 case PurchaseOrder::STATUS_FAIL:
                     switch ($new_status) {
                         case PurchaseOrder::STATUS_NEW:
                         case PurchaseOrder::STATUS_PENDING:
                             foreach ($details as $item) {
                                 if ($product = Product::findOne($item->product_id)) {
                                     $product->available_quantity -= $item->quantity;
                                     $product->order_quantity += $item->quantity;
                                     $product->save();
                                 }
                             }
                             break;
                         case PurchaseOrder::STATUS_SUCCESS:
                             foreach ($details as $item) {
                                 if ($product = Product::findOne($item->product_id)) {
                                     $product->available_quantity -= $item->quantity;
                                     $product->sold_quantity += $item->quantity;
                                     $product->total_revenue += $item->quantity * $item->unit_price;
                                     $product->save();
                                 }
                             }
                         default:
                     }
                     break;
                 default:
             }
             return $this->goBack(Url::previous());
         } else {
             return $this->render('update', ['username' => $username, 'model' => $model]);
         }
     } else {
         throw new NotFoundHttpException();
     }
 }
Ejemplo n.º 4
0
 public function actionProductRating()
 {
     if (Yii::$app->request->isAjax and $rating = Yii::$app->request->post('rating') and $id = Yii::$app->request->post('id')) {
         if ($product = Product::findOne($id)) {
             $ip = Yii::$app->request->userIP;
             $ipModel = Ip::find()->where(['name' => $ip, 'product_id' => $id])->one();
             if ($ipModel === null) {
                 $currentRating = $product->rating;
                 $currentRatingCount = $product->rating_count;
                 $resultRating = round(($currentRating + $rating) / 2, 1);
                 $product->rating = $resultRating;
                 $product->rating_count = $currentRatingCount + 1;
                 $product->save();
                 $model = new Ip();
                 $model->name = $ip;
                 $model->product_id = $id;
                 $model->save();
                 return true;
             } else {
                 return 'forbidden';
                 // $this->refresh();
             }
         } else {
             return false;
         }
         // return json_encode([$rating, $id]);
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
 public function actionEditproduct()
 {
     $user = new AdminUser();
     if (!$user->checkUserIsLogin()) {
         $this->redirect(Variable::$home_url);
         return;
     }
     $req = Yii::$app->request;
     //创建一个请求对象
     $form = new ProductForm();
     $form->setScenario('update');
     $id = trim($req->get('id'));
     if (!is_numeric($id) || $id == 0) {
         $this->redirect(Variable::$productManger_url);
         return;
     }
     $productModel = Product::findOne($id);
     $form->productName = $productModel->productName;
     $form->productBrief = $productModel->productBrief;
     $form->productStock = $productModel->productStock;
     $form->productPrice = $productModel->productPrice;
     $form->productStatus = $productModel->productStatus;
     $form->productStock = $productModel->productStock;
     //修改
     if ($form->load($req->post()) && $form->validate()) {
         $isSuccess = (new Product())->updateProduct($id, $form->productName, $form->productBrief, $form->productStatus, $form->productPrice, $form->productStock);
         if ($isSuccess) {
             $form->addError('', '资料更新成功');
         } else {
             $form->addError('', '资料更新失败');
         }
     }
     return $this->render(Variable::$editProduct_view, ['model' => $form, 'productModel' => $productModel]);
 }
Ejemplo n.º 6
0
 public function updateProduct($productId, $productName, $productBrief, $productStatus, $productPrice, $productStock)
 {
     $model = Product::findOne($productId);
     if (!$model) {
         return false;
     }
     $model->productName = $productName;
     $model->productBrief = $productBrief;
     $model->productStock = intval($productStock);
     $model->productStatus = $productStatus;
     switch ($productStatus) {
         case 0:
             $model->onSaleTime = date('Y-m-d H:i:s', time());
             break;
         case 1:
             $model->offSaleTime = date('Y-m-d H:i:s', time());
             break;
         case 2:
             $model->onSaleTime = date('Y-m-d H:i:s', time());
             break;
     }
     $model->productPrice = $productPrice;
     if ($model->save()) {
         return true;
     }
     return false;
 }