Commit 07c45ae4580b4ee082eb60c6ed762e39e1911140

Authored by Karnovsky A
2 parents e16b79fd 5c527368

Merge branch 'master' of gitlab.artweb.com.ua:root/baucenter

common/models/OrderItems.php
... ... @@ -14,7 +14,7 @@ use Yii;
14 14 * @property double $price
15 15 *
16 16 * @property Orders $order
17   - * @property Product $item
  17 + * @property ProductVariant $item
18 18 */
19 19 class OrderItems extends \yii\db\ActiveRecord
20 20 {
... ... @@ -35,7 +35,7 @@ class OrderItems extends \yii\db\ActiveRecord
35 35 [['order_id', 'item_id', 'item_count'], 'integer'],
36 36 [['price'], 'number'],
37 37 [['order_id'], 'exist', 'skipOnError' => true, 'targetClass' => Orders::className(), 'targetAttribute' => ['order_id' => 'order_id']],
38   - [['item_id'], 'exist', 'skipOnError' => true, 'targetClass' => Product::className(), 'targetAttribute' => ['item_id' => 'product_id']],
  38 + [['item_id'], 'exist', 'skipOnError' => true, 'targetClass' => ProductVariant::className(), 'targetAttribute' => ['item_id' => 'product_variant_id']],
39 39 ];
40 40 }
41 41  
... ... @@ -66,6 +66,6 @@ class OrderItems extends \yii\db\ActiveRecord
66 66 */
67 67 public function getItem()
68 68 {
69   - return $this->hasOne(Product::className(), ['product_id' => 'item_id']);
  69 + return $this->hasOne(ProductVariant::className(), ['product_variant_id' => 'item_id']);
70 70 }
71 71 }
... ...
common/models/Orders.php
... ... @@ -3,7 +3,7 @@
3 3 namespace common\models;
4 4  
5 5 use Yii;
6   -
  6 +use yii\behaviors\TimestampBehavior;
7 7 /**
8 8 * This is the model class for table "orders".
9 9 *
... ... @@ -31,6 +31,7 @@ class Orders extends \yii\db\ActiveRecord
31 31 return 'orders';
32 32 }
33 33  
  34 +
34 35 /**
35 36 * @inheritdoc
36 37 */
... ... @@ -38,7 +39,7 @@ class Orders extends \yii\db\ActiveRecord
38 39 {
39 40 return [
40 41 [['customer_id', 'delivery', 'payment', 'status', 'created_at', 'updated_at'], 'integer'],
41   - [['name', 'email', 'phone', 'created_at', 'updated_at'], 'required'],
  42 + [['name', 'email', 'phone'], 'required'],
42 43 [['name', 'email', 'code'], 'string', 'max' => 255],
43 44 [['phone'], 'string', 'max' => 32],
44 45 ];
... ... @@ -47,6 +48,16 @@ class Orders extends \yii\db\ActiveRecord
47 48 /**
48 49 * @inheritdoc
49 50 */
  51 + public function behaviors()
  52 + {
  53 + return [
  54 + TimestampBehavior::className(),
  55 + ];
  56 + }
  57 +
  58 + /**
  59 + * @inheritdoc
  60 + */
50 61 public function attributeLabels()
51 62 {
52 63 return [
... ...
common/models/ProductVariant.php 0 โ†’ 100644
  1 +<?php
  2 +
  3 +namespace common\models;
  4 +
  5 +use Yii;
  6 +
  7 +/**
  8 + * This is the model class for table "product_variant".
  9 + *
  10 + * @property integer $product_variant_id
  11 + * @property integer $product_id
  12 + * @property string $name
  13 + * @property string $sku
  14 + * @property double $price
  15 + * @property double $price_old
  16 + * @property double $stock
  17 + * @property integer $product_unit_id
  18 + *
  19 + * @property OrderItems[] $orderItems
  20 + * @property ProductUnit $productUnit
  21 + */
  22 +class ProductVariant extends \yii\db\ActiveRecord
  23 +{
  24 + /**
  25 + * @inheritdoc
  26 + */
  27 + public static function tableName()
  28 + {
  29 + return 'product_variant';
  30 + }
  31 +
  32 + /**
  33 + * @inheritdoc
  34 + */
  35 + public function rules()
  36 + {
  37 + return [
  38 + [['product_id', 'sku'], 'required'],
  39 + [['product_id', 'product_unit_id'], 'integer'],
  40 + [['price', 'price_old', 'stock'], 'number'],
  41 + [['name', 'sku'], 'string', 'max' => 255],
  42 + [['product_unit_id'], 'exist', 'skipOnError' => true, 'targetClass' => ProductUnit::className(), 'targetAttribute' => ['product_unit_id' => 'product_unit_id']],
  43 + ];
  44 + }
  45 +
  46 + /**
  47 + * @inheritdoc
  48 + */
  49 + public function attributeLabels()
  50 + {
  51 + return [
  52 + 'product_variant_id' => Yii::t('app', 'Product Variant ID'),
  53 + 'product_id' => Yii::t('app', 'Product ID'),
  54 + 'name' => Yii::t('app', 'Name'),
  55 + 'sku' => Yii::t('app', 'Sku'),
  56 + 'price' => Yii::t('app', 'Price'),
  57 + 'price_old' => Yii::t('app', 'Price Old'),
  58 + 'stock' => Yii::t('app', 'Stock'),
  59 + 'product_unit_id' => Yii::t('app', 'Product Unit ID'),
  60 + ];
  61 + }
  62 +
  63 + /**
  64 + * @return \yii\db\ActiveQuery
  65 + */
  66 + public function getOrderItems()
  67 + {
  68 + return $this->hasMany(OrderItems::className(), ['item_id' => 'product_variant_id']);
  69 + }
  70 +
  71 + /**
  72 + * @return \yii\db\ActiveQuery
  73 + */
  74 + public function getProductUnit()
  75 + {
  76 + return $this->hasOne(ProductUnit::className(), ['product_unit_id' => 'product_unit_id']);
  77 + }
  78 +}
... ...
common/modules/product/models/ProductVariant.php
... ... @@ -68,6 +68,14 @@ class ProductVariant extends \yii\db\ActiveRecord
68 68 }
69 69  
70 70 /**
  71 + * @return \yii\db\ActiveQuery
  72 + */
  73 + public function getProduct()
  74 + {
  75 + return $this->hasOne(Product::className(), ['product_id' => 'product_id']);
  76 + }
  77 +
  78 + /**
71 79 * @inheritdoc
72 80 * @return ProductVariantQuery the active query used by this AR class.
73 81 */
... ...
common/widgets/BasketModal.php
1 1 <?php
2 2 namespace common\widgets;
3 3  
  4 +use common\modules\product\models\ProductVariant;
4 5 use yii\base\Widget;
5 6  
6 7 class BasketModal extends Widget
... ... @@ -16,12 +17,26 @@ class BasketModal extends Widget
16 17 public function run()
17 18 {
18 19 $sessionData = \Yii::$app->session->get('order');
  20 + unset($sessionData['order_id']);
19 21 $count = count($sessionData);
  22 + $price = 0;
20 23 if(is_array($sessionData) && !empty($sessionData)){
  24 +
  25 + $variant = ProductVariant::find()->where(['product_variant_id'=>array_keys($sessionData)])->indexBy('product_variant_id')->all();
  26 +
  27 +
  28 + foreach ($sessionData as $k => $item) {
  29 + $sessionData[$k]['item'] = $variant[$k];
  30 + $price += $variant[$k]->price * $sessionData[$k]['num'];
  31 + }
  32 +
  33 +
21 34 return $this->render('busket_modal',[
22 35 'items'=>$sessionData,
23   - 'count' => $count
  36 + 'count' => $count,
  37 + 'price' => $price
24 38 ]);
  39 +
25 40 }
26 41  
27 42 }
... ...
common/widgets/views/busket_modal.php
... ... @@ -3,30 +3,38 @@
3 3 * @var $items array data from session
4 4 * @var $count integer count items in basket
5 5 */
  6 +use yii\helpers\Html;
6 7  
7 8 ?>
8 9 <div class="order_list">
9 10 <ul>
10   - <?php foreach($items as $item){ ?>
  11 + <?php foreach($items as $item){
  12 +
  13 + ?>
  14 +
11 15 <li>
12   - <div class="order_list_li" data-id="1">
  16 + <div class="order_list_li" data-id="<?= $item['item']->product_variant_id?>">
13 17 <div class="delete_item_btn"><i class="fa fa-times"></i></div>
14 18 <div class="little_img">
15   - <img src="/images/items/01.jpg" alt="">
  19 + <?php if (empty($item['item']->product->image)) :?>
  20 + <img src="/images/no_photo.png">
  21 + <?php else :?>
  22 + <img src="/images/<?= $item['item']->product->image->image?>" alt="<?= $item['item']->product->image->alt ? $item['item']->product->image->alt : $item['item']->product->name?>">
  23 + <?php endif?>
16 24 </div>
17 25 <div class="name_and_code">
18   - <span class="name">ะจั‚ัƒะบะฐั‚ัƒั€ะบะฐ ะณะธะฟัะพะฒะฐั ะšะฝะฐัƒั„ ะ ะพั‚ะฑะฐะฝะด 30 ะบะณ ะฑะตะปะฐั</span>
  26 + <span class="name"><?= $item['item']->name?></span>
19 27 <span class="code"> ะšะพะด: 45885-01016049</span>
20 28 </div>
21 29 <div class="count_block_wrap">
22 30 <div class="count_block">
23   - <input type="text" name="" class="form-control buy_one_item" value="1">
  31 + <input type="text" name="" class="form-control buy_one_item" value="<?= $item['num']?>">
24 32 <div class="count_buttons">
25 33 <div class="button_plus">+</div>
26 34 <div class="button_minus">-</div>
27 35 </div>
28 36 </div>
29   - <div class="price">102.05 <span class="price_text">ะณั€ะฝ.</span></div>
  37 + <div class="price"><span class="price_val" data-price="<?= $item['item']->price ?>"><?= $item['item']->price * $item['num'] ?></span><span class="price_text">ะณั€ะฝ.</span></div>
30 38 </div>
31 39 </div>
32 40 </li>
... ... @@ -36,10 +44,10 @@
36 44 <hr>
37 45 <div class="all_price">
38 46 <p>ะ’ัะตะณะพ ั‚ะพะฒะฐั€ะพะฒ: <span class="all_count"><?= $count ?></span></p>
39   - <p>ะกัƒะผะผะฐ: <span class="all_price">306.15</span> ะณั€ะฝ.</p>
  47 + <p>ะกัƒะผะผะฐ: <span class="all_price all_price_span"><?= $price ?></span> ะณั€ะฝ.</p>
40 48 </div>
41 49 <div class="busket_bottom_btn">
42   - <a href="#">ะฟั€ะพะดะพะปะถะธั‚ัŒ ะฟะพะบัƒะฟะบะธ</a>
43   - <button>ะพั„ะพั€ะผะธั‚ัŒ ะทะฐะบะฐะท</button>
  50 + <a class = "close" href="#">ะฟั€ะพะดะพะปะถะธั‚ัŒ ะฟะพะบัƒะฟะบะธ</a>
  51 + <?= Html::a('ะพั„ะพั€ะผะธั‚ัŒ ะทะฐะบะฐะท', ['orders/first'], ['class'=> 'button']);?>
44 52 </div>
45 53 </div>
... ...
console/migrations/m160304_065108_product.php
... ... @@ -96,19 +96,30 @@ class m160304_065108_product extends Migration
96 96 'code' => $this->string(50)->notNull(),
97 97 'is_default' => $this->boolean()
98 98 ], $tableOptions);
99   -
  99 +//
100 100 $this->addForeignKey('product_variant_product_unit_fkey', 'product_variant', 'product_unit_id', 'product_unit', 'product_unit_id', 'CASCADE', 'NO ACTION');
101 101 $this->addForeignKey('category_product_unit_fkey', 'category', 'product_unit_id', 'product_unit', 'product_unit_id', 'NO ACTION', 'NO ACTION');
102 102 }
103 103  
104 104 public function down()
105 105 {
  106 + $this->dropForeignKey('category_name_fkey', 'category');
  107 + $this->dropForeignKey('category_name_category_fkey', 'category_name');
  108 + $this->dropForeignKey('brand_name_fkey', 'brand');
  109 + $this->dropForeignKey('brand_name_brand_fkey', 'brand_name');
  110 + $this->dropForeignKey('fki_product_id', 'product_category');
  111 + $this->dropForeignKey('fki_category_id', 'product_category');
  112 + $this->dropForeignKey('fki_brand_id', 'product');
  113 + $this->dropForeignKey('product_variant_product_unit_fkey', 'product_variant');
  114 + $this->dropForeignKey('category_product_unit_fkey', 'category');
106 115 $this->dropTable('{{%category}}');
107 116 $this->dropTable('{{%category_name}}');
108 117 $this->dropTable('{{%product_category}}');
109 118 $this->dropTable('{{%product}}');
110 119 $this->dropTable('{{%product_variant}}');
111 120 $this->dropTable('{{%product_unit}}');
  121 + $this->dropTable('{{%brand_name}}');
  122 + $this->dropTable('{{%brand}}');
112 123 }
113 124  
114 125 /*
... ...
console/migrations/m160324_114404_orders_items_items_fk.php 0 โ†’ 100644
  1 +<?php
  2 +
  3 +use yii\db\Migration;
  4 +
  5 +class m160324_114404_orders_items_items_fk extends Migration
  6 +{
  7 + public function up()
  8 + {
  9 +
  10 + $this->dropForeignKey('orders_items_items_fk', '{{%order_items}}');
  11 + $this->addForeignKey('orders_items_items_fk', '{{%order_items}}', 'item_id', '{{%product_variant}}', 'product_variant_id', 'RESTRICT', 'RESTRICT');
  12 + }
  13 +
  14 + public function down()
  15 + {
  16 + $this->dropForeignKey('orders_items_items_fk', '{{%order_items}}');
  17 + $this->addForeignKey('orders_items_items_fk', '{{%order_items}}', 'item_id', '{{%product}}', 'product_id', 'RESTRICT', 'RESTRICT');
  18 +
  19 + }
  20 +
  21 +}
... ...
frontend/assets/AppAsset.php
... ... @@ -41,7 +41,8 @@ class AppAsset extends AssetBundle
41 41 'js/jquery.jcarousellite-1.0.1.js',
42 42 'js/owl.carousel.js',
43 43 'js/script.js',
44   - 'js/my_scripts.js'
  44 + 'js/my_scripts.js',
  45 + 'js/basket.js',
45 46  
46 47 ];
47 48 public $depends = [
... ...
frontend/controllers/OrdersController.php
... ... @@ -2,6 +2,10 @@
2 2  
3 3 namespace frontend\controllers;
4 4  
  5 +use common\models\Customers;
  6 +use common\models\OrderItems;
  7 +use common\models\Orders;
  8 +use common\modules\product\models\ProductVariant;
5 9 use common\widgets\BasketModal;
6 10 use Yii;
7 11  
... ... @@ -27,78 +31,183 @@ class OrdersController extends Controller
27 31 return true;
28 32 }
29 33  
30   - /**
31   - * Lists all Order models.
32   - * @return mixed
33   - */
34   - public function actionIndex()
35   - {
  34 + public function actionFirst(){
36 35  
37   - if (Yii::$app->request->post()) {
38   - $item = $items_id = array();
  36 + $array = Yii::$app->session->get('order');
39 37  
40   - $i = 0;
41   - $order = Yii::$app->request->post();
  38 + if(isset($array['order_id']) ) {
  39 + $model = Orders::findOne($array['order_id']);
  40 + }else {
  41 + $model = new Orders();
  42 + }
42 43  
43   - $orderData['Order'] = $order['OrderForm'];
44 44  
45   - foreach($order['OrderForm']['one_item'] as $k => $v ){
46   - $item[$k]['num'] = $v['num'];
47   - $items_id[] = $k;
48   - $i++;
49   - }
  45 + if(Yii::$app->request->post() && $model->load(Yii::$app->request->post())){
50 46  
51   - $items = Items::find()->where(['id'=>$items_id])->all();
  47 + if($model->save()){
52 48  
  49 + $array['order_id'] = $model->order_id;
53 50  
54   - $orderModel = new Order();
55   - $orderModel->load($orderData);
56   - $orderModel->save();
  51 + Yii::$app->session->set('order', $array );
57 52  
  53 + return $this->redirect(['orders/second']);
  54 + }
58 55  
59   - foreach($items as $one_item){
60   - $ItemOrderModel = new ItemOrder();
61   - $ItemOrderModel->order_id = $orderModel->id;
62   - $ItemOrderModel->num = $item[$one_item->id]['num'];
63   - $ItemOrderModel->item_id = $one_item->id;
64   - $ItemOrderModel->price = $one_item->price * $item[$one_item->id]['num'];
65   - $ItemOrderModel->item_name = $one_item->name;
66   - $ItemOrderModel->save();
  56 + } else {
  57 + if (!Yii::$app->user->isGuest) {
  58 + $customer = Yii::$app->user->identity;
  59 + $model->name = $customer->name;
  60 + $model->email = $customer->email;
  61 + $model->phone = $customer->phone;
67 62 }
68   - Yii::$app->session->set('order', [] );
69   - return $this->redirect(['order/complete']);
70 63 }
71   - $total_price = 0;
72 64  
73   - $items_id = [];
74 65  
75   - $orders = Yii::$app->session->get('order');
  66 + return $this->render('basket-step-01',[
  67 + 'model' => $model
  68 + ]);
  69 + }
76 70  
77   - if(!empty($orders)){
78   - foreach($orders as $k => $v) {
79   - $items_id[] = $k;
80   - }
81   - }
  71 + public function actionSecond(){
82 72  
  73 + $sessionData = \Yii::$app->session->get('order');
83 74  
84   - $items = Items::find()->where(['id'=>$items_id])->all();
  75 + $order_id = $sessionData['order_id'];
85 76  
86   - foreach($items as $item) {
87   - $total_price += $orders[$item['id']]['num'] * $item['price'];
  77 + if(!empty($order_id)){
  78 + $order_model = Orders::findOne($order_id);
  79 + } else{
  80 + $order_model = new Orders;
88 81 }
89 82  
  83 + unset($sessionData['order_id']);
90 84  
91   - $dataProvider = new ArrayDataProvider([
92   - 'allModels' => $items
93   - ]);
  85 + $variant = ProductVariant::find()->where(['product_variant_id'=>array_keys($sessionData)])->indexBy('product_variant_id')->all();
  86 +
  87 +
  88 + if(Yii::$app->request->post()){
  89 +
  90 + foreach ($sessionData as $k => $item) {
  91 + $itemModel = OrderItems::find()->where(['order_id'=>$order_id, 'item_id'=> $variant[$k]->product_variant_id])->one();
  92 + if($itemModel instanceof OrderItems){
  93 + $itemModel->order_id = $order_id;
  94 + $itemModel->item_id = $variant[$k]->product_variant_id;
  95 + $itemModel->item_count = $sessionData[$k]['num'];
  96 + $itemModel->price = $variant[$k]->price;
  97 + $itemModel->save();
  98 + } else {
  99 + $itemModel = new OrderItems();
  100 + $itemModel->order_id = $order_id;
  101 + $itemModel->item_id = $variant[$k]->product_variant_id;
  102 + $itemModel->item_count = $sessionData[$k]['num'];
  103 + $itemModel->price = $variant[$k]->price;
  104 + $itemModel->save();
  105 + }
94 106  
95   - return $this->render('index', [
96   - 'dataProvider' => $dataProvider,
97   - 'total_price'=> $total_price,
98   - 'model' => new OrderForm()
  107 + }
  108 + Yii::$app->session->set('order', [] );
  109 + return $this->redirect(['orders/third']);
  110 +
  111 + } else {
  112 +
  113 + $price = 0;
  114 +
  115 + $count = count($sessionData);
  116 +
  117 + foreach ($sessionData as $k => $item) {
  118 + $sessionData[$k]['item'] = $variant[$k];
  119 + $price += $variant[$k]->price * $sessionData[$k]['num'];
  120 + }
  121 +
  122 + }
  123 +
  124 + return $this->render('basket-step-02',[
  125 + 'items'=>$sessionData,
  126 + 'count' => $count,
  127 + 'price' => $price,
  128 + 'order_id' => $order_id,
  129 + 'order_model' => $order_model,
99 130 ]);
  131 +
100 132 }
101 133  
  134 + public function actionThird(){
  135 + return $this->render('basket-step-03');
  136 + }
  137 +
  138 +
  139 +// /**
  140 +// * Lists all Order models.
  141 +// * @return mixed
  142 +// */
  143 +// public function actionIndex()
  144 +// {
  145 +//
  146 +// if (Yii::$app->request->post()) {
  147 +// $item = $items_id = array();
  148 +//
  149 +// $i = 0;
  150 +// $order = Yii::$app->request->post();
  151 +//
  152 +// $orderData['Order'] = $order['OrderForm'];
  153 +//
  154 +// foreach($order['OrderForm']['one_item'] as $k => $v ){
  155 +// $item[$k]['num'] = $v['num'];
  156 +// $items_id[] = $k;
  157 +// $i++;
  158 +// }
  159 +//
  160 +// $items = Items::find()->where(['id'=>$items_id])->all();
  161 +//
  162 +//
  163 +// $orderModel = new Order();
  164 +// $orderModel->load($orderData);
  165 +// $orderModel->save();
  166 +//
  167 +//
  168 +// foreach($items as $one_item){
  169 +// $ItemOrderModel = new ItemOrder();
  170 +// $ItemOrderModel->order_id = $orderModel->id;
  171 +// $ItemOrderModel->num = $item[$one_item->id]['num'];
  172 +// $ItemOrderModel->item_id = $one_item->id;
  173 +// $ItemOrderModel->price = $one_item->price * $item[$one_item->id]['num'];
  174 +// $ItemOrderModel->item_name = $one_item->name;
  175 +// $ItemOrderModel->save();
  176 +// }
  177 +// Yii::$app->session->set('order', [] );
  178 +// return $this->redirect(['order/complete']);
  179 +// }
  180 +// $total_price = 0;
  181 +//
  182 +// $items_id = [];
  183 +//
  184 +// $orders = Yii::$app->session->get('order');
  185 +//
  186 +// if(!empty($orders)){
  187 +// foreach($orders as $k => $v) {
  188 +// $items_id[] = $k;
  189 +// }
  190 +// }
  191 +//
  192 +//
  193 +// $items = Items::find()->where(['id'=>$items_id])->all();
  194 +//
  195 +// foreach($items as $item) {
  196 +// $total_price += $orders[$item['id']]['num'] * $item['price'];
  197 +// }
  198 +//
  199 +//
  200 +// $dataProvider = new ArrayDataProvider([
  201 +// 'allModels' => $items
  202 +// ]);
  203 +//
  204 +// return $this->render('index', [
  205 +// 'dataProvider' => $dataProvider,
  206 +// 'total_price'=> $total_price,
  207 +// 'model' => new OrderForm()
  208 +// ]);
  209 +// }
  210 +
102 211  
103 212 public function actionComplete()
104 213 {
... ...
frontend/controllers/PuttyController.php
... ... @@ -27,13 +27,7 @@ class PuttyController extends Controller
27 27 return $this->render('manufacturers');
28 28 }
29 29  
30   - public function actionBasketStepFirst(){
31   - return $this->render('basket-step-01');
32   - }
33 30  
34   - public function actionBasketStepSecond(){
35   - return $this->render('basket-step-02');
36   - }
37 31  
38 32  
39 33 public function actionContacts(){
... ...
frontend/views/catalog/product_item.php
1 1 <?php
2 2 /** @var \common\modules\product\models\Product $product */
  3 +
3 4 ?>
4 5 <div class="item" data-id="<?= $product->product_id?>">
5 6 <!--<div class="new">ะะšะฆะ˜ะฏ</div>
... ...
frontend/views/layouts/main.php
... ... @@ -66,14 +66,15 @@ AppAsset::register($this);
66 66 <div class="phone_desc">ะ—ะฒะพะฝะธั‚ะต ั 9.00 ะดะพ 18.00 ะฟะพ ะฑัƒะดะฝัะผ</div>
67 67 </div>
68 68 </div>
  69 +
69 70 <div class="basket_head">
70 71 <img src="/images/ico_basket.png" class="bh_cell img">
71 72 <div class="bh_cell text">
72 73 <div class="basket_head_title">ะšะพั€ะทะธะฝะฐ</div>
73   - <div class="basket_head_desc">2 ั‚ะพะฒะฐั€ะฐ</div>
74 74 </div>
75 75 <i class="head-down bh_cell"></i>
76 76 </div>
  77 +
77 78 </div>
78 79  
79 80 <!-- MODAL BUSKET WINDOW HEAD -->
... ...
frontend/views/putty/basket-step-01.php renamed to frontend/views/orders/basket-step-01.php
1 1 <?php
2 2  
  3 +use yii\helpers\Html;
  4 +use yii\helpers\Url;
  5 +use yii\widgets\ActiveForm;
  6 +
3 7 $this->title = 'ะžั„ะพั€ะผะปะตะฝะธะต ะทะฐะบะฐะทะฐ';
4 8 $this->params['breadcrumbs'][] = $this->title;
5 9  
... ... @@ -8,34 +12,34 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
8 12  
9 13 <h1 class="basket_main_title">ะžั„ะพั€ะผะปะตะฝะธะต ะทะฐะบะฐะทะฐ</h1>
10 14  
11   -<form name="basket_order_01_form"><!-- ะฝะฐั‡ะฐะปะพ ั„ะพั€ะผั‹ ะทะฐะบะฐะทะฐ -->
  15 +
  16 + <?php $form = ActiveForm::begin([
  17 + 'class' => 'basket_order_01_form'
  18 + ]); ?><!-- ะฝะฐั‡ะฐะปะพ ั„ะพั€ะผั‹ ะทะฐะบะฐะทะฐ -->
  19 +
12 20  
13 21 <div class="privet_info_block">
14 22  
15 23 <h3>ะ›ะธั‡ะฝั‹ะต ะดะฐะฝะฝั‹ะต</h3>
16 24  
17 25 <div class="padding_cust">
18   - <label>ะค.ะ˜.ะž.<span class="red">*</span>
19   - <input type="text" name="first_name" required>
20   - <span class="placehold">ะะฐ ัั‚ะพ ะธะผั ะฑัƒะดัƒั‚ ะพั„ะพั€ะผะปะตะฝั‹ ะดะพะบัƒะผะตะฝั‚ั‹</span>
21   - </label>
  26 + <?= $form->field($model, 'name',[
  27 + 'template' => '<label>'.Yii::t('app', 'ะค.ะ˜.ะž.').'<span class="red">*</span>{input}<span class="placehold">ะะฐ ัั‚ะพ ะธะผั ะฑัƒะดัƒั‚ ะพั„ะพั€ะผะปะตะฝั‹ ะดะพะบัƒะผะตะฝั‚ั‹</span>{error}{hint}</label>',
  28 + ])->textInput() ?>
22 29 </div>
23 30  
24 31 <div class="padding_cust">
25   - <label>E-mail<span class="red">*</span>
26   - <input type="text" name="first_name" required>
27   - <span class="placehold">ะกัŽะดะฐ ะฟั€ะธัˆะปะตะผ ะฟะพะดั€ะพะฑะฝะพัั‚ะธ ะทะฐะบะฐะทะฐ</span>
28   - </label>
  32 + <?= $form->field($model, 'email',[
  33 + 'template' => '<label>'.Yii::t('app', 'E-mail').'<span class="red">*</span>{input}<span class="placehold">ะกัŽะดะฐ ะฟั€ะธัˆะปะตะผ ะฟะพะดั€ะพะฑะฝะพัั‚ะธ ะทะฐะบะฐะทะฐ</span>{error}{hint}</label>',
  34 + ])->textInput() ?>
29 35 </div>
30   -
  36 +
31 37 <div class="padding_cust">
32   - <label>ะขะตะปะตั„ะพะฝ<span class="red">*</span>
33   - <input type="text" name="first_name" required>
34   - <span class="placehold">ะฃั‚ะพั‡ะฝะธะผ ะฒะฐะถะฝะพะต</span>
35   - </label>
  38 + <?= $form->field($model, 'phone',[
  39 + 'template' => '<label>'.Yii::t('app', 'ะขะตะปะตั„ะพะฝ').'<span class="red">*</span>{input}<span class="placehold">ะฃั‚ะพั‡ะฝะธะผ ะฒะฐะถะฝะพะต</span>{error}{hint}</label>',
  40 + ])->textInput() ?>
36 41 </div>
37 42  
38   -
39 43 </div>
40 44  
41 45 <div class="separator"></div>
... ... @@ -86,8 +90,9 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
86 90 </div>
87 91  
88 92 </div>
  93 +
89 94 <div class="for_margin">
90   - <button type="submit" class="order_01_btn">ะฟั€ะพะดะพะปะถะธั‚ัŒ ะพั„ะพั€ะผะปะตะฝะธะต</button>
  95 + <?= Html::submitButton(Yii::t('app', 'ะฟั€ะพะดะพะปะถะธั‚ัŒ ะพั„ะพั€ะผะปะตะฝะธะต'), ['class' => 'order_01_btn', 'name' => 'signup-button']) ?>
91 96 </div>
92 97  
93   -</form><!-- ะบะพะฝะตั† ั„ะพั€ะผั‹ ะทะฐะบะฐะทะฐ -->
94 98 \ No newline at end of file
  99 +<?php ActiveForm::end(); ?><!-- ะบะพะฝะตั† ั„ะพั€ะผั‹ ะทะฐะบะฐะทะฐ -->
95 100 \ No newline at end of file
... ...
frontend/views/putty/basket-step-02.php renamed to frontend/views/orders/basket-step-02.php
1 1 <?php
2 2  
  3 +use yii\helpers\Html;
  4 +use yii\widgets\ActiveForm;
  5 +
3 6 $this->title = 'ะžั„ะพั€ะผะปะตะฝะธะต ะทะฐะบะฐะทะฐ';
4 7 $this->params['breadcrumbs'][] = $this->title;
5 8  
6 9 ?>
  10 +<div class="basket_form basket_result">
  11 + <?php $form = ActiveForm::begin([
  12 + 'class' => 'basket_order_01_form'
  13 + ]); ?><!-- ะฝะฐั‡ะฐะปะพ ั„ะพั€ะผั‹ ะทะฐะบะฐะทะฐ -->
7 14  
8   -<h1 class="basket_main_title">ะžั„ะพั€ะผะปะตะฝะธะต ะทะฐะบะฐะทะฐ</h1>
  15 + <h1 class="basket_main_title">ะžั„ะพั€ะผะปะตะฝะธะต ะทะฐะบะฐะทะฐ</h1>
  16 + <div class="order_list">
  17 + <h3>ะะพะผะตั€ ะทะฐะบะฐะทะฐ <?= $order_id?></h3>
  18 + <ul>
  19 + <?php foreach($items as $item){
9 20  
10   -<div class="order_list">
11   - <h3>ะะพะผะตั€ ะทะฐะบะฐะทะฐ 671</h3>
12   - <ul>
13   - <li>
14   - <div class="order_list_li ">
15   - <div class="little_img">
16   - <img src="/images/items/01.jpg" alt="">
17   - </div>
18   - <div class="name_and_code">
19   - <span class="name">ะจั‚ัƒะบะฐั‚ัƒั€ะบะฐ ะณะธะฟัะพะฒะฐั ะšะฝะฐัƒั„ ะ ะพั‚ะฑะฐะฝะด 30 ะบะณ ะฑะตะปะฐั</span>
20   - <span class="code"> ะšะพะด: 45885-01016049</span>
21   - </div>
22   - <div class="how_many">1 ัˆั‚.</div>
23   - <div class="price">102.05 <span class="price_text">ะณั€ะฝ.</span></div>
24   - </div>
25   - </li>
26   - <li>
27   - <div class="order_list_li active">
28   - <div class="little_img">
29   - <img src="/images/items/01.jpg" alt="">
30   - </div>
31   - <div class="name_and_code">
32   - <span class="name">ะจั‚ัƒะบะฐั‚ัƒั€ะบะฐ ะณะธะฟัะพะฒะฐั ะšะฝะฐัƒั„ ะ ะพั‚ะฑะฐะฝะด 30 ะบะณ ะฑะตะปะฐั</span>
33   - <span class="code"> ะšะพะด: 45885-01016049</span>
34   - </div>
35   - <div class="how_many">1 ัˆั‚.</div>
36   - <div class="price">102.05 <span class="price_text">ะณั€ะฝ.</span></div>
37   - </div>
38   - </li>
39   - <li>
40   - <div class="order_list_li ">
41   - <div class="little_img">
42   - <img src="/images/items/01.jpg" alt="">
43   - </div>
44   - <div class="name_and_code">
45   - <span class="name">ะจั‚ัƒะบะฐั‚ัƒั€ะบะฐ ะณะธะฟัะพะฒะฐั ะšะฝะฐัƒั„ ะ ะพั‚ะฑะฐะฝะด 30 ะบะณ ะฑะตะปะฐั</span>
46   - <span class="code"> ะšะพะด: 45885-01016049</span>
47   - </div>
48   - <div class="how_many">1 ัˆั‚.</div>
49   - <div class="price">102.05 <span class="price_text">ะณั€ะฝ.</span></div>
50   - </div>
51   - </li>
52   - </ul>
53   - <hr>
54   - <div class="all_price">
55   - <p>ะ’ัะตะณะพ ั‚ะพะฒะฐั€ะพะฒ: <span class="all_count">3</span></p>
56   - <p>ะกัƒะผะผะฐ: <span class="all_price">306.15</span> ะณั€ะฝ.</p>
57   - </div>
58   - <hr>
59   -</div>
  21 + ?>
  22 +
  23 + <li>
  24 + <div class="order_list_li" data-id="<?= $item['item']->product_variant_id?>">
  25 + <div class="delete_item_btn"><i class="fa fa-times"></i></div>
  26 + <div class="little_img">
  27 + <?php if (empty($item['item']->product->image)) :?>
  28 + <img src="/images/no_photo.png">
  29 + <?php else :?>
  30 + <img src="/images/<?= $item['item']->product->image->image?>" alt="<?= $item['item']->product->image->alt ? $item['item']->product->image->alt : $item['item']->product->name?>">
  31 + <?php endif?>
  32 + </div>
  33 + <div class="name_and_code">
  34 + <span class="name"><?= $item['item']->name?></span>
  35 + <span class="code"> ะšะพะด: 45885-01016049</span>
  36 + </div>
  37 + <div class="count_block_wrap">
  38 + <div class="count_block">
  39 + <input type="text" name="" class="form-control buy_one_item" value="<?= $item['num']?>">
  40 + <div class="count_buttons">
  41 + <div class="button_plus">+</div>
  42 + <div class="button_minus">-</div>
  43 + </div>
  44 + </div>
  45 + <div class="price"><span class="price_val" data-price="<?= $item['item']->price ?>"><?= $item['item']->price * $item['num'] ?></span><span class="price_text">ะณั€ะฝ.</span></div>
  46 + </div>
  47 + </div>
  48 + </li>
  49 + <?php } ?>
60 50  
61   -<div class="basket_step_2_delivery">
62   - <h3>ะ”ะตั‚ะฐะปะธ</h3>
63   - <div class="detail">
64   - <span class="grey">ะ˜ะผั</span>ะั€ั‚ะตะผ
  51 + </ul>
  52 + <hr>
  53 + <div class="all_price">
  54 + <p>ะ’ัะตะณะพ ั‚ะพะฒะฐั€ะพะฒ: <span class="all_count"><?= $count ?></span></p>
  55 + <p>ะกัƒะผะผะฐ: <span class="all_price all_price_span"><?= $price ?></span> ะณั€ะฝ.</p>
  56 + </div>
  57 + <hr>
65 58 </div>
66   - <div class="detail">
67   - <span class="grey">E-mail</span>artem@mail.com
  59 +
  60 + <div class="basket_step_2_delivery">
  61 + <h3>ะ”ะตั‚ะฐะปะธ</h3>
  62 + <div class="detail">
  63 + <span class="grey">ะ˜ะผั</span><?= $order_model->name ?>
  64 + </div>
  65 + <div class="detail">
  66 + <span class="grey">E-mail</span><?= $order_model->email ?>
  67 + </div>
  68 + <div class="detail">
  69 + <span class="grey">ะขะตะปะตั„ะพะฝ</span><?= $order_model->phone ?>
  70 + </div>
  71 + <h4>ะกะฟะพัะพะฑ ะพะฟะปะฐั‚ั‹</h4>
  72 + <div class="detail">ะžะฟะปะฐั‚ะฐ ะฝะฐะปะธั‡ะฝั‹ะผะธ</div>
  73 + <h4>ะ”ะพัั‚ะฐะฒะบะฐ</h4>
  74 + <div class="detail">ะšัƒั€ัŒะตั€ัะบะฐ ะดะพัั‚ะฐะฒะบะฐ ะฟะพ ะšะธะตะฒัƒ ะธ ะพะฑะปะฐัั‚ะธ</div>
68 75 </div>
69   - <div class="detail">
70   - <span class="grey">ะขะตะปะตั„ะพะฝ</span>050 340-34-34
  76 +
  77 + <div class="for_margin_2">
  78 + <?= Html::submitButton(Yii::t('app', 'ะพั„ะพั€ะผะธั‚ัŒ ะทะฐะบะฐะท'), ['class' => 'order_01_btn', 'name' => 'signup-button']) ?>
71 79 </div>
72   - <h4>ะกะฟะพัะพะฑ ะพะฟะปะฐั‚ั‹</h4>
73   - <div class="detail">ะžะฟะปะฐั‚ะฐ ะฝะฐะปะธั‡ะฝั‹ะผะธ</div>
74   - <h4>ะ”ะพัั‚ะฐะฒะบะฐ</h4>
75   - <div class="detail">ะšัƒั€ัŒะตั€ัะบะฐ ะดะพัั‚ะฐะฒะบะฐ ะฟะพ ะšะธะตะฒัƒ ะธ ะพะฑะปะฐัั‚ะธ</div>
  80 +
  81 + <?php ActiveForm::end(); ?><!-- ะบะพะฝะตั† ั„ะพั€ะผั‹ ะทะฐะบะฐะทะฐ -->
76 82 </div>
77 83  
78   -<div class="for_margin_2">
79   - <button type="submit" class="order_01_btn">ะพั„ะพั€ะผะธั‚ัŒ ะทะฐะบะฐะท</button>
80   -</div>
81 84 \ No newline at end of file
... ...
frontend/views/orders/basket-step-03.php 0 โ†’ 100644
  1 +<?php
  2 +
  3 +use yii\helpers\Html;
  4 +use yii\widgets\ActiveForm;
  5 +
  6 +$this->title = 'ะžั„ะพั€ะผะปะตะฝะธะต ะทะฐะบะฐะทะฐ';
  7 +$this->params['breadcrumbs'][] = $this->title;
  8 +
  9 +?>
  10 +<h1 class="basket_main_title">ะกะฟะฐัะธะฑะพ ะทะฐ ะฒะฐัˆ ะทะฐะบะฐะท!</h1>
... ...
frontend/web/css/concat_all.css
... ... @@ -2729,9 +2729,11 @@ span.red {
2729 2729 margin-right: 130px;
2730 2730 }
2731 2731  
2732   -.busket_modal_header .busket_modal_02 .order_list .busket_bottom_btn button {
  2732 +.busket_modal_header .busket_modal_02 .order_list .busket_bottom_btn .button {
2733 2733 display: inline-block;
2734 2734 padding: 10px 20px;
  2735 + text-decoration: none;
  2736 + margin: 0;
2735 2737 color: white;
2736 2738 background-color: #6aa034;
2737 2739 border: none;
... ... @@ -2743,14 +2745,14 @@ span.red {
2743 2745 box-shadow: 0px 2px 0px #517a27;
2744 2746 }
2745 2747  
2746   -.busket_modal_header .busket_modal_02 .order_list .busket_bottom_btn button:active {
  2748 +.busket_modal_header .busket_modal_02 .order_list .busket_bottom_btn .button:active {
2747 2749 position: relative;
2748 2750 -webkit-box-shadow: none;
2749 2751 box-shadow: none;
2750 2752 top: 2px;
2751 2753 }
2752 2754  
2753   -.busket_modal_header .busket_modal_02 .order_list .busket_bottom_btn button:hover {
  2755 +.busket_modal_header .busket_modal_02 .order_list .busket_bottom_btn .button:hover {
2754 2756 background-color: #5d8d2e;
2755 2757 }
2756 2758  
... ... @@ -2768,7 +2770,174 @@ span.red {
2768 2770 .busket_modal_header .busket_modal_02 .order_list .delete_item_btn:hover {
2769 2771 color: red;
2770 2772 }
  2773 +/********************BASKET *************************/
  2774 +
  2775 +
  2776 +.basket_form .order_list {
  2777 + /*width: auto;*/
  2778 + padding: 25px 0px;
  2779 +}
  2780 +
  2781 +.basket_form .order_list ul {
  2782 + overflow-y: overlay;
  2783 + overflow-x: hidden;
  2784 +}
  2785 +
  2786 +.basket_form .order_list h3 {
  2787 + text-transform: uppercase;
  2788 + font-weight: normal;
  2789 + font-size: 20px;
  2790 + padding: 20px 0 15px;
  2791 +}
  2792 +
  2793 +.basket_form .order_list .order_list_li {
  2794 + display: block;
  2795 + max-width:440px;
  2796 + overflow: hidden;
  2797 +}
  2798 +
  2799 +
  2800 +.basket_form .order_list li:nth-child(even){
  2801 + background-color:#f4f4f4;
  2802 +}
  2803 +.busket_modal_01 .order_list li:nth-child(even){
  2804 + background-color:#f4f4f4;
  2805 +}
  2806 +
  2807 +.basket_form .order_list .order_list_li .little_img {
  2808 + /*float: none;*/
  2809 +}
  2810 +
  2811 +.basket_form .order_list .order_list_li .name_and_code {
  2812 + text-align: left;
  2813 + /*float: none;*/
  2814 +}
  2815 +
  2816 +.basket_form .order_list .order_list_li .name_and_code .name {
  2817 + margin-bottom: 14px;
  2818 +}
2771 2819  
  2820 +.basket_form .order_list .order_list_li .price {
  2821 + padding: 0;
  2822 +}
  2823 +
  2824 +.basket_form .order_list .order_list_li .count_block_wrap {
  2825 + display: inline-block;
  2826 + vertical-align: top;
  2827 + text-align: right;
  2828 + float: left;
  2829 +}
  2830 +
  2831 +.basket_form .order_list .count_block {
  2832 + display: block;
  2833 + position: relative;
  2834 + margin-bottom: 30px;
  2835 +}
  2836 +
  2837 +.basket_form .order_list .count_block .count_number {
  2838 + display: inline-block;
  2839 + font-size: 22px;
  2840 + padding: 6px 13px 3px;
  2841 + -webkit-border-radius: 3px;
  2842 + border-radius: 3px;
  2843 + position: relative;
  2844 + /*top: -2px;*/
  2845 + background-color: #fff;
  2846 +}
  2847 +
  2848 +.basket_form .order_list .count_block .count_buttons {
  2849 + position: relative;
  2850 + /*top: 4px;*/
  2851 + right: 16px;
  2852 + display: inline-block;
  2853 + vertical-align: bottom;
  2854 +}
  2855 +
  2856 +.basket_form .order_list .count_block .count_buttons .button_plus {
  2857 + background-color: #898b8e;
  2858 + color: white;
  2859 + font-weight: bold;
  2860 + border-bottom: 1px solid #707274;
  2861 + -webkit-border-top-right-radius: 3px;
  2862 + border-top-right-radius: 3px;
  2863 + font-size: 15px;
  2864 + line-height: 15px;
  2865 + padding: 0 7px;
  2866 + cursor: pointer;
  2867 +}
  2868 +
  2869 +.basket_form .order_list .count_block .count_buttons .button_plus:hover {
  2870 + background-color: #7c7e81;
  2871 +}
  2872 +
  2873 +.basket_form .order_list .count_block .count_buttons .button_minus {
  2874 + background-color: #898b8e;
  2875 + color: white;
  2876 + font-weight: bold;
  2877 + line-height: 16px;
  2878 + text-align: center;
  2879 + border-top: 1px solid #A2A2A2;
  2880 + -webkit-border-bottom-right-radius: 3px;
  2881 + border-bottom-right-radius: 3px;
  2882 + cursor: pointer;
  2883 +}
  2884 +
  2885 +.basket_form .order_list .count_block .count_buttons .button_minus:hover {
  2886 + background-color: #7c7e81;
  2887 +}
  2888 +
  2889 +.basket_form .order_list .busket_bottom_btn {
  2890 + margin-top: 20px;
  2891 + text-align: center;
  2892 +}
  2893 +
  2894 +.basket_form .order_list .busket_bottom_btn a {
  2895 + display: inline-block;
  2896 + font-size: 13px;
  2897 + margin-right: 130px;
  2898 +}
  2899 +
  2900 +.basket_form .order_list .busket_bottom_btn .button {
  2901 + display: inline-block;
  2902 + padding: 10px 20px;
  2903 + text-decoration: none;
  2904 + margin: 0;
  2905 + color: white;
  2906 + background-color: #6aa034;
  2907 + border: none;
  2908 + -webkit-border-radius: 2px;
  2909 + border-radius: 2px;
  2910 + font-size: 13px;
  2911 + font-weight: normal;
  2912 + -webkit-box-shadow: 0px 2px 0px #517a27;
  2913 + box-shadow: 0px 2px 0px #517a27;
  2914 +}
  2915 +
  2916 +.basket_form .order_list .busket_bottom_btn .button:active {
  2917 + position: relative;
  2918 + -webkit-box-shadow: none;
  2919 + box-shadow: none;
  2920 + top: 2px;
  2921 +}
  2922 +
  2923 +.basket_form .order_list .busket_bottom_btn .button:hover {
  2924 + background-color: #5d8d2e;
  2925 +}
  2926 +
  2927 +.basket_form .order_list .delete_item_btn {
  2928 + display: inline-block;
  2929 + vertical-align: top;
  2930 + margin-top: 30px;
  2931 + padding: 0 10px 0 0;
  2932 + cursor: pointer;
  2933 + color: #C6C7C9;
  2934 + font-size: 20px;
  2935 + float: left;
  2936 +}
  2937 +
  2938 +.basket_form .order_list .delete_item_btn:hover {
  2939 + color: red;
  2940 +}
2772 2941 /*=============================================== CATEGORY PAGE ================================================*/
2773 2942  
2774 2943 .category_page_main_title {
... ...
frontend/web/css/style.css
... ... @@ -866,7 +866,7 @@ padding-left:27px;
866 866 left:20px;
867 867 }
868 868 .basket_head .bh_cell.text{
869   - top:8px;
  869 + top:20px;
870 870 left:66px;
871 871 }
872 872 .basket_head .basket_head_desc{
... ...
frontend/web/js/basket.js 0 โ†’ 100644
  1 +$(document).ready(function(){
  2 +
  3 + var result_block = $('.basket_result');
  4 +
  5 +
  6 + function changeAjaxPrice(id, num){
  7 + $.post( "/orders/buy-items", {id: id, num:num}, function( data ) {
  8 + });
  9 + }
  10 +
  11 + function countPrise(block){
  12 + var totalBlock = block.parents('.order_list');
  13 + var total_price = 0;
  14 + totalBlock.find('.price_val').each(function(){
  15 + total_price += +$(this).html();
  16 + });
  17 + $('.all_price_span').html(total_price);
  18 + }
  19 +
  20 +
  21 + $('.item').on('click', '.basket_add_but', function(e){
  22 + var id = $(this).data('id');
  23 + $.post( "/orders/buy-items", {id: id, num:1}, function( data ) {
  24 + $('.basket_result').each(function(){
  25 + $(this).html(data)
  26 + });
  27 + });
  28 +
  29 + });
  30 +
  31 + $('.main_cont_wrap').on('click', '.cart_btn', function(e){
  32 + var id = $(this).data('id');
  33 + $.post( "/orders/buy-items", {id: id, num:1}, function( data ) {
  34 + $('.basket_result').each(function(){
  35 + $(this).html(data)
  36 + });
  37 + });
  38 +
  39 + });
  40 +
  41 + result_block.on('click', '.delete_item_btn', function(){
  42 + var block = $(this).parents('.order_list_li');
  43 +
  44 +
  45 + var id = block.data('id');
  46 +
  47 + $.post( "/orders/delete", {id: id}, function( data ) {
  48 + });
  49 +
  50 + $('.order_list_li[data-id='+id+']').each(function(){
  51 + var block = $(this);
  52 + block.remove();
  53 + });
  54 +
  55 + countPrise(block);
  56 +
  57 + });
  58 +
  59 + result_block.on('click', '.button_minus', function(){
  60 + var block = $(this).parents('.order_list_li');
  61 + var price_block = block.find('.price_val');
  62 + var input = block.find('input');
  63 + var number = input.val();
  64 + var id = block.data('id');
  65 +
  66 + if(number > 1){
  67 + number--;
  68 + input.val(number);
  69 + var price = price_block.data('price');
  70 + var new_price = number * +price;
  71 + price_block.html(new_price);
  72 + changeAjaxPrice(id, number);
  73 + synchronizationPriceData(id, number);
  74 + }
  75 +
  76 + countPrise(block);
  77 + });
  78 +
  79 +
  80 + result_block.on('click', '.button_plus', function(){
  81 + var block = $(this).parents('.order_list_li');
  82 + var price_block = block.find('.price_val');
  83 + var input = block.find('input');
  84 + var number = input.val();
  85 + var id = block.data('id');
  86 +
  87 + number++;
  88 + input.val(number);
  89 + var price = price_block.data('price');
  90 + var new_price = number * +price;
  91 + price_block.html(new_price);
  92 +
  93 + changeAjaxPrice(id, number);
  94 + synchronizationPriceData(id, number);
  95 + countPrise(block);
  96 + });
  97 +
  98 + result_block.on('change', '.buy_one_item', function(){
  99 + var block = $(this).parents('.order_list_li');
  100 + var num = $(this).val();
  101 + var price_block = block.find('.price_val');
  102 + var price = price_block.data('price');
  103 + var id = block.data('id');
  104 +
  105 + var new_price = num * +price;
  106 + price_block.html(new_price);
  107 + changeAjaxPrice(id, num);
  108 + synchronizationPriceData(id, num);
  109 + countPrise(block);
  110 + });
  111 +
  112 + function synchronizationPriceData(id, number){
  113 + $('.order_list_li[data-id='+id+']').each(function(){
  114 + var block = $(this);
  115 + block.find('input').val(number);
  116 + var price_block = block.find('.price_val');
  117 + var price = price_block.data('price');
  118 + var new_price = number * +price;
  119 + price_block.html(new_price);
  120 + });
  121 + }
  122 +
  123 +
  124 +
  125 +});
0 126 \ No newline at end of file
... ...
frontend/web/js/my_scripts.js
... ... @@ -149,11 +149,11 @@ $(document).ready(function(){
149 149 forget_pass_again_btn = $('.forgot_pass_success_wrapper').find('.my_cust_btn'),
150 150 log_open_btn = $('.login_button_lu'), // ะพะบะฝะพ ะปะพะณะธะฝะฐ
151 151 reg_open_btn = $('.reg_button_lu'), // ะบะฝะพะฟะบะฐ ะพั‚ะบั€ั‹ั‚ัŒ
152   - modal_busket_open = $('.basket_add_but'), // ะพั‚ะบั€ั‹ั‚ัŒ ะผะพะดะฐะปะบัƒ ะบะพั€ะทะธะฝั‹
  152 + modal_busket_open = $('.basket_add_but, .cart_btn'), // ะพั‚ะบั€ั‹ั‚ัŒ ะผะพะดะฐะปะบัƒ ะบะพั€ะทะธะฝั‹
153 153 modal_busket_header_open = $('i.head-down.bh_cell'), // ะพั‚ะบั€ั‹ั‚ัŒ ะบะพั€ะทะธะฝัƒ ะฒ ั…ะตะดะตั€ะต
154 154 modal_busket_header = $('.busket_modal_header'), // ะผะพะดะฐะปัŒะฝะฐั ะบะพั€ะทะธะฝะฐ ั…ะตะดะตั€
155   - modal_busket_header_cont = $('.busket_modal_header .busket_bottom_btn a'),
156   - modal_busket_cont = $('.busket_bottom_btn a'), // ััั‹ะปะบะฐ ะผะพะดะฐะปะบะธ ะบะพั€ะทะธะฝั‹ - ะฟั€ะพะดะพะปะถะธั‚ัŒ ะฟะพะบัƒะฟะบะธ
  155 + modal_busket_header_cont = $('.busket_modal_header .busket_bottom_btn .close'),
  156 + modal_busket_cont = $('.busket_bottom_btn .close'), // ััั‹ะปะบะฐ ะผะพะดะฐะปะบะธ ะบะพั€ะทะธะฝั‹ - ะฟั€ะพะดะพะปะถะธั‚ัŒ ะฟะพะบัƒะฟะบะธ
157 157 forgot_pass_open_btn = $('.forgot_pass_link'), // ััั‹ะปะบะฐ ะฝะฐ ะพะบะฝะพ - ะทะฐะฑั‹ะปะธ ะฟะฐั€ะพะปัŒ
158 158 close_btn = $('.modal_close_btn'), // ะบะฝะพะฟะบะฐ ะทะฐะบั€ั‹ั‚ัŒ ั€ะตะณะธัั‚ั€ะฐั†ะธัŽ
159 159 doc_h = $(document).height(),
... ... @@ -471,77 +471,5 @@ $(document).ready(function(){
471 471  
472 472  
473 473 //=============================================== BUSKET MODAL WINDOW FUNCTIONS
474   - function all_modal_moves(){
475   - // BUSKET MODAL WINDOW ITEM DELETE
476   - var delete_item_btn = $('.delete_item_btn').click(function(){
477   - $(this).closest('li').remove();
478   - });
479   - }
480   - all_modal_moves();
481   -
482   -
483   - function countPrise(block){
484   - var total_price = 0;
485   - block.find('.price').each(function(){
486   - total_price += +$(this).html();
487   - });
488   - $('.total_price').html(total_price);
489   - $("input[name='OrderForm[total_price]']").val(total_price);
490   - }
491   -
492   -
493   - $('.item').on('click', '.basket_add_but', function(e){
494   - var id = $(this).parents('.item').data('id');
495   - console.log(id);
496   - $.post( "/orders/buy-items", {id: id}, function( data ) {
497   - $('.basket_result').each(function(){
498   - $(this).html(data)
499   - });
500   - });
501   -
502   - });
503   -
504   - $('.basket_result').on('click', '.delete_item_btn', function(){
505   - var id = $(this).parents('.order_list_li').data('id');
506   - $(this).parents('.order_list_li').remove();
507   - $.post( "/orders/delete", {id: id}, function( data ) {
508   - });
509   - countPrise();
510   - });
511   -
512   - $('.basket_result').on('click', '.button_minus', function(){
513   - var input = $(this).parents('.order_list_li ').find('input');
514   - var number = input.val();
515   - if(number > 1){
516   - number--;
517   - input.val(number);
518   - var price = $(this).parents('.goods_data').find('.item_prise_block').find('span').html();
519   - var new_price = number * price;
520   - $(this).parents('.goods_data').find('.item_prise_total_block').find('span').html(new_price);
521   - }
522   - countPrise();
523   - });
524   -
525   -
526   - $('.basket_result').on('click', '.button_plus', function(){
527   - var input = $(this).parents('.order_list_li ').find('input');
528   - var number = input.val();
529   - number++;
530   - input.val(number);
531   - var price = $(this).parents('.goods_data').find('.item_prise_block').find('span').html();
532   - var new_price = number * price;
533   - $(this).parents('.goods_data').find('.item_prise_total_block').find('span').html(new_price);
534   - countPrise();
535   - });
536   -
537   - $('.basket_result').on('change', '.buy_one_item', function(){
538   - var num = $(this).val();
539   - var priceBlock = $(this).parents('.order_list_li').find('.price');
540   - var price = priceBlock.html();
541   - var new_price = num * price;
542   - priceBlock.html(new_price);
543   - countPrise();
544   - });
545   -
546 474  
547 475 });
548 476 \ No newline at end of file
... ...