コード例 #1
0
ファイル: Basket.php プロジェクト: kd-brinex/kd
 public function put($params)
 {
     $model = Tovar::findOne(['id' => $params['id']]);
     $t = $model->attributes;
     $basket = Yii::$app->getDb();
     $default = ['session_id' => $this->getPhpsessid(), 'tovar_count' => 1, 'tovar_min' => 1, 'tovar_id' => $t['id'], 'tovar_price' => $t['price']];
     $params = array_merge($default, $params);
     if ($params['tovar_count'] > 0) {
         return $basket->createCommand('insert into `basket` (`tovar_id`,`tovar_count`,`tovar_min`,`tovar_price`,`session_id`)' . 'values(:tovar_id,:tovar_count,:tovar_min,:tovar_price,:session_id)' . ' ON DUPLICATE KEY UPDATE `tovar_count`=:tovar_count')->bindValues($params)->execute();
     } else {
         $p = ['session_id' => $params['session_id'], 'tovar_id' => $params['tovar_id']];
         return $basket->createCommand('delete from `basket` where `session_id`=:session_id and `tovar_id`=:tovar_id')->bindValues($p)->execute();
     }
 }
コード例 #2
0
ファイル: BasketController.php プロジェクト: kd-brinex/kd
 public function actionPut()
 {
     $params = Yii::$app->request->post();
     $post = array_merge(Yii::$app->request->post());
     $params = Yii::$app->request->queryParams;
     switch ($params['mode']) {
         case 'changeQuantity':
             if (Yii::$app->request->isAjax) {
                 if (!empty($position = (int) $post['position']) && !empty($quantity = (int) $post['quantity'])) {
                     $basket = BasketSearch::findOne($position);
                     $basket->tovar_count = $quantity;
                     return $basket->update();
                 }
             }
             break;
         case 'put':
             $session = new \yii\web\Session();
             $id = Yii::$app->request->post('id');
             if ($id) {
                 $tovar = Tovar::findOne(['id' => $id]);
                 if ($tovar) {
                     $toBasket = new BasketSearch();
                     $toBasket->tovar_id = $id;
                     $toBasket->tovar_count = 1;
                     $toBasket->tovar_price = $tovar->price;
                     $toBasket->session_id = Yii::$app->session->id;
                     $toBasket->tovar_min = 1;
                     $toBasket->provider_id = 5;
                     //id=5 провайдер KD ищет в локальной базе
                     if (Yii::$app->user->id) {
                         $toBasket->uid = Yii::$app->user->id;
                     }
                     if ($toBasket->save()) {
                         return '<a class="btn" href="' . url::toRoute(['/basket/basket'], true) . '"><i class="icon-shopping-cart icon-black"></i>Уже в корзине</a>';
                     } else {
                         if (YII_DEBUG) {
                             var_dump($toBasket->getErrors());
                         }
                     }
                 } else {
                     return false;
                 }
             }
             return '<a class="btn" href="' . url::toRoute(['/basket/basket'], true) . '"><i class="icon-shopping-cart icon-black"></i>Уже в корзине</a>';
             break;
         case 'update':
             //                $data = Yii::$app->request->post();
             //                if (isset($data) && $data != '') {
             //                    $basket = BasketSearch::findOne(['id' => intval($data['row_id'])]);
             //                    if ($basket)
             //                        $basket->description = Html::encode($data['text']);
             //                    if ($basket->save())
             //                        return true;
             //                }
             if (Yii::$app->request->post('hasEditable')) {
                 $post = Yii::$app->request->post();
                 $model = $basket = BasketSearch::findOne(['id' => $post['editableKey']]);
                 $data['OrderSearch'] = current($post['OrderSearch']);
                 if ($model->load($data) && $model->save()) {
                     $data = ['output' => $model->comment];
                 }
                 return Json::encode($data);
             }
             break;
         case 'order':
             // создаем новый заказ
             $user_id = Yii::$app->user->id;
             $number = ($user_id ? $user_id : 'N') . '-' . date("ymdhis");
             $orders = explode(';', Yii::$app->request->post('orderData'));
             $formData = Yii::$app->request->post('formData');
             if (isset($formData) && $formData != '') {
                 parse_str($formData, $fdata);
                 $profileData = array_values($fdata['Profile']);
             }
             $fdata['deliveryStore'] = isset($fdata['deliveryStore']) ? $fdata['deliveryStore'] : 0;
             $cityCode = Yii::$app->request->cookies['city'];
             $city = \app\modules\city\models\CitySearch::find()->where(['id' => $cityCode ? $cityCode : 2097])->one();
             $order_data = ['number' => $number, 'date' => date("Y-m-d H:i:s"), 'user_id' => $user_id, 'user_name' => $fdata['Profile']['name'], 'user_email' => $fdata['User']['email'], 'user_telephone' => $fdata['User']['telephone'], 'user_location' => $city->name, 'store_id' => (int) $fdata['deliveryStore']];
             $order = new Order();
             $order->load($order_data, '');
             $order->save();
             // передаем id заказа
             $order_id = $order->id;
             $order = new OrderUpdate1c();
             $order->OrderId = $order_id;
             $order->save();
             $user = \app\modules\user\models\User::findOne($user_id);
             $user->scenario = 'update';
             $user->telephone = $order_data['user_telephone'];
             $user->save();
             $profile = Profile::findOne($user_id);
             $profile->scenario = 'order';
             $profile->name = $order_data['user_name'];
             $profile->save();
             foreach ($orders as $order) {
                 $order = explode(':', $order);
                 $basket = BasketSearch::findOne(['id' => intval($order[0])]);
                 if ($basket) {
                     $product = Tovar::findOne(['id' => $basket->tovar_id]);
                     $data['Orders'] = ['product_id' => $product ? $product->id : null, 'manufacture' => $basket->manufacturer, 'part_name' => $product ? $product->name : $basket->part_name, 'part_price' => $basket->tovar_price, 'product_article' => $product ? null : $basket->part_number, 'quantity' => $order[1], 'reference' => '', 'status' => \app\modules\user\models\Orders::ORDER_ADOPTED, 'datetime' => date('Y-m-d H:i:s'), 'description' => $basket->description, 'order_id' => (int) $order_id, 'provider_id' => (int) $basket->provider_id, 'delivery_days' => (int) $basket->period];
                     $Orders = new Orders();
                     if ($Orders->load($data) && $Orders->save()) {
                         $basket->delete();
                     }
                 }
             }
             return true;
             break;
         case 'remove':
             if (BasketSearch::deleteAll(['in', 'id', $post['id']])) {
                 return JSON::encode($_POST);
             }
             //$this->basket_row($dataProvider);
             break;
     }
 }
コード例 #3
0
ファイル: TovarController.php プロジェクト: kd-brinex/kd
 /**
  * Finds the Tovar model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param string $id
  * @return Tovar the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = Tovar::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }