Commit 07c45ae4580b4ee082eb60c6ed762e39e1911140
Merge branch 'master' of gitlab.artweb.com.ua:root/baucenter
Showing
20 changed files
with
732 additions
and
234 deletions
Show diff stats
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 [ | ... | ... |
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
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
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->params['breadcrumbs'][] = $this->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->params['breadcrumbs'][] = $this->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/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
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 | ... | ... |