public function find_tovar($params) { $p['id'] = $params['id']; $query = Tovar::find()->andwhere('id=:id', $p); $dataProvider = new ActiveDataProvider(['query' => $query]); return $dataProvider; }
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(); } }
public static function finddetails($params) { $p = array_merge(Yii::$app->request->post(), Yii::$app->request->get()); $params['store_id'] = !empty($p['store_id']) ? $p['store_id'] : 109; $tstore = new TStore(); $store = $tstore->findOne(['id' => $params['store_id']]); $params['city_id'] = $store->city_id; // var_dump($params);die; $details = Tovar::findDetails($params); $xml = '<?xml version="1.0" encoding="utf-8"?> <ArrayOfDetailInfo>'; foreach ($details as $d) { $xml .= '<DetailInfo> <detailnumber>' . $d['code'] . '</detailnumber> <detailname>' . htmlspecialchars($d['name'], ENT_XML1) . '</detailname> <dname>' . htmlspecialchars($d['name'], ENT_XML1) . '</dname> <maker> <id>-</id> <name>' . htmlspecialchars($d['manufacture'], ENT_XML1) . '</name> </maker> <quantity>' . $d['quantity'] . '</quantity> <lotquantity>' . $d['lotquantity'] . '</lotquantity> <price>' . $d['price'] . '</price> <pricedestination>' . $d['pricedestination'] . '</pricedestination> <days>' . $d['srokmin'] . '</days> <dayswarranty>' . $d['srokmax'] . '</dayswarranty> <regionname>' . htmlspecialchars($d['sklad'], ENT_XML1) . '</regionname> <estimation>' . $d['estimation'] . '</estimation> <orderrefernce>' . $d['reference'] . '</orderrefernce> <pricedate>' . $d['pricedate'] . '</pricedate> <groupid>' . $d['groupid'] . '</groupid> <provider>' . $d['provider'] . '</provider> <pid>' . $d['pid'] . '</pid> <storeid>' . $d['storeid'] . '</storeid> <FlagPostav>' . $d['flagpostav'] . '</FlagPostav> <srok>' . $d['srok'] . '</srok> <ball>' . $d['ball'] . '</ball> </DetailInfo>'; } $xml .= ' </ArrayOfDetailInfo>'; return $xml; }
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; } }
public function actionFinddetails() { $params = \Yii::$app->request->queryParams; $parts = Yii::$app->params['Parts']; $details = isset($params['article']) ? Tovar::findDetails($params) : []; $provider = new ArrayDataProvider(['allModels' => $details, 'sort' => $parts['sort'], 'pagination' => $parts['pagination']]); $catalog = Yii::$app->getModule('autocatalog')->getModel(); return $this->render('finddetails_tabs', ['provider' => $provider, 'columns' => $parts['columns'], 'params' => $params, 'catalog' => $catalog]); }
public function actionPricing() { $id = (int) Yii::$app->request->post('order'); $code = Yii::$app->request->post('code'); $city = (int) Yii::$app->request->post('city_id'); if (empty($id) && empty($code)) { return false; } $allDetails = []; if (!empty($id)) { $details = OrdersSearch::find()->where('order_id = :order_id', [':order_id' => $id])->andWhere('status = :status', [':status' => [Orders::ORDER_ADOPTED, Orders::ORDER_CANCELED, Orders::ORDER_CANCELED_BY_PROVIDER]])->andWhere('provider_id <> 5 OR provider_id IS NULL')->andWhere('related_detail IS NULL')->all(); // var_dump($details);die; foreach ($details as $detail) { $article = !empty($detail->product_article) ? $detail->product_article : (!empty($detail->product_id) ? $detail->product_id : null); $compareDetails = Tovar::findDetails(['article' => $article, 'city_id' => $detail->order->store->city_id]); $allDetails[$article]['manufacture'] = $detail->manufacture; $allDetails[$article]['offers'] = $compareDetails; } } else { $allDetails[$code]['offers'] = Tovar::findDetails(['article' => $code, 'city_id' => $city]); } $offers = []; foreach ($allDetails as $key => $detail_offers) { if (is_array($detail_offers) && !empty($detail_offers)) { foreach ($detail_offers['offers'] as $offer) { if (strtoupper($offer['code']) == strtoupper($key)) { $offers[$key]['offers'][] = $offer; } } } } if (!empty($id)) { $firstOffers = $this->firstOffers($details, $offers); $data = $this->buildArray($firstOffers, $offers, $details); $orderdetails = $details; } else { $data = $offers[key($offers)]['offers']; $orderdetails['order_id'] = Yii::$app->request->post('order_id'); $orderdetails['detail_id'] = 0; } $dataProvider = new ArrayDataProvider(['allModels' => $data, 'pagination' => false]); $offersData = $this->toDataProvider($offers); $params = ['model' => $dataProvider, 'offersData' => $offersData, 'orderedDetails' => $orderdetails]; return Json::encode(['output' => '', 'table' => $this->renderAjax('_pricing', $params)]); }