ecf49b1b
Administrator
second
|
1
2
|
<?php
|
90a6ed1a
Administrator
basket
|
3
|
namespace frontend\controllers;
|
ecf49b1b
Administrator
second
|
4
|
|
90a6ed1a
Administrator
basket
|
5
6
7
|
use common\models\Customer;
use common\models\OrdersProducts;
|
ecf49b1b
Administrator
second
|
8
9
|
use Yii;
use yii\web\Controller;
|
90a6ed1a
Administrator
basket
|
10
11
|
use common\modules\product\models\ProductVariant;
use common\models\Orders;
|
d9a2909b
Dmytry Fedorchuk
Mail Order save ...
|
12
|
use common\widgets\Mailer;
|
90a6ed1a
Administrator
basket
|
13
14
|
//use app\models\User;
//use app\models\OrdersProducts;
|
ecf49b1b
Administrator
second
|
15
16
17
18
19
20
|
use yii\web\HttpException;
class BasketController extends Controller
{
public function actionIndex(){
|
90a6ed1a
Administrator
basket
|
21
22
|
$modelMod = new ProductVariant;
$modelOrder = new Orders;
|
ecf49b1b
Administrator
second
|
23
24
|
if(!empty($_GET['deleteID'])){
|
90a6ed1a
Administrator
basket
|
25
|
$modelOrder->deleteBasketMod($_GET['deleteID']);
|
ecf49b1b
Administrator
second
|
26
27
28
|
return Yii::$app->response->redirect(['basket/index']);
}
|
5b353122
Administrator
image size
|
29
30
|
if(isset($_POST['update']) && isset($_POST['ProductVariant'])){
|
8df8067a
Administrator
basket
|
31
|
foreach ($_POST['ProductVariant'] as $index=>$row) {
|
90a6ed1a
Administrator
basket
|
32
|
$modelOrder->updateBasket($row);
|
ecf49b1b
Administrator
second
|
33
|
}
|
8df8067a
Administrator
basket
|
34
35
|
}elseif(isset($_POST['ProductVariant'])){
// die(print_r($_POST));
|
ecf49b1b
Administrator
second
|
36
|
$body = '';
|
8df8067a
Administrator
basket
|
37
|
foreach ($_POST['ProductVariant'] as $index=>$row) {
|
ecf49b1b
Administrator
second
|
38
39
40
41
42
|
$body .= $row['product_name'].' '.$row['name'].' Кол:'.$row['count'].' Цена:'.$row['sum_cost'];
$body .= "\n\r";
}
$body .= "\n\r";
|
d8d0c38c
Administrator
add active menu
|
43
|
if ($modelOrder->load(Yii::$app->request->post()) && $modelOrder->save()) {
|
fed9ec18
Administrator
image size
|
44
45
|
$productV = $_POST['ProductVariant'];
|
5b78178b
Dmytry Fedorchuk
product
|
46
|
foreach ($productV as $index=>$row) {
|
fed9ec18
Administrator
image size
|
47
|
$modelOrdersProducts = new OrdersProducts();
|
ecf49b1b
Administrator
second
|
48
49
|
$mod_id = $row['id'];
unset($row['id']);
|
fed9ec18
Administrator
image size
|
50
|
$data['OrdersProducts'] = $row;
|
ecf49b1b
Administrator
second
|
51
|
$data['OrdersProducts']['mod_id'] = $mod_id;
|
fed9ec18
Administrator
image size
|
52
|
$data['OrdersProducts']['order_id'] = $modelOrder->id;
|
c014f471
Dmytry Fedorchuk
images
|
53
|
$productV[$index]['img'] = \common\components\artboximage\ArtboxImageHelper::getImageSrc(ProductVariant::findOne($mod_id)->image->image, 'list');
|
fed9ec18
Administrator
image size
|
54
55
|
$modelOrdersProducts->load($data);
$modelOrdersProducts->save();
|
ecf49b1b
Administrator
second
|
56
|
}
|
84b2aead
Administrator
add active menu
|
57
|
if(!Yii::$app->user->id && !empty($modelOrder->email)){
|
fed9ec18
Administrator
image size
|
58
59
60
61
62
63
64
65
|
$modelUser = new Customer();
$modelUser->role = 'person';
$modelUser->username = $modelOrder->email;
$modelUser->name = $modelOrder->name;
$modelUser->phone = $modelOrder->phone;
$modelUser->password = Yii::$app->getSecurity()->generateRandomString(10);
$modelUser->group_id = 2;
$modelUser->save();
|
ecf49b1b
Administrator
second
|
66
|
}
|
fed9ec18
Administrator
image size
|
67
|
$order = clone $modelOrder;
|
8df8067a
Administrator
basket
|
68
|
$modelOrder->clearBasket();
|
fed9ec18
Administrator
image size
|
69
|
|
d9a2909b
Dmytry Fedorchuk
Mail Order save ...
|
70
71
|
Mailer::widget(
['type' => 'order',
|
b044ffe3
Dmytry Fedorchuk
Mail Order save ...
|
72
73
|
'subject'=> 'Спасибо за покупку',
'email' => $modelOrder->email,
|
d9a2909b
Dmytry Fedorchuk
Mail Order save ...
|
74
|
'params' => [
|
d9a2909b
Dmytry Fedorchuk
Mail Order save ...
|
75
|
'order' => $order,
|
72909570
Dmytry Fedorchuk
images
|
76
|
'variants' => $productV,
|
d9a2909b
Dmytry Fedorchuk
Mail Order save ...
|
77
78
79
|
]
]);
|
fed9ec18
Administrator
image size
|
80
81
82
83
|
return $this->render('success',[
'order' => $order,
'variants' => $productV,
]);
|
ecf49b1b
Administrator
second
|
84
85
86
|
}
}
|
90a6ed1a
Administrator
basket
|
87
|
$basket_mods = $modelOrder->getBasketMods();
|
ecf49b1b
Administrator
second
|
88
89
|
if(!empty(Yii::$app->user->id)){
|
90a6ed1a
Administrator
basket
|
90
|
$user = Customer::findOne(Yii::$app->user->id);
|
ecf49b1b
Administrator
second
|
91
92
93
|
$modelOrder->email = $user->username;
$modelOrder->phone = $user->phone;
$modelOrder->name = $user->name;
|
ecf49b1b
Administrator
second
|
94
|
}
|
d9a2909b
Dmytry Fedorchuk
Mail Order save ...
|
95
96
|
|
ecf49b1b
Administrator
second
|
97
98
99
100
101
102
103
104
105
|
return $this->render('index', [
'modelMod'=>$modelMod,
'basket_mods'=>$basket_mods,
'modelOrder'=>$modelOrder,
]);
}
public function actionItems(){
|
90a6ed1a
Administrator
basket
|
106
|
$modelMod = new Orders;
|
030aa37f
Administrator
image size
|
107
108
|
|
ecf49b1b
Administrator
second
|
109
110
111
112
|
if(!empty($_GET['deleteID'])){
$modelMod->deleteBasketMod($_GET['deleteID']);
}
|
5f509693
Administrator
image size
|
113
114
|
if(isset($_POST['ProductVariant'])){
foreach ($_POST['ProductVariant'] as $index=>$row) {
|
ecf49b1b
Administrator
second
|
115
116
117
118
119
120
121
122
123
124
125
126
|
$modelMod->updateBasket($row);
}
}
$basket_mods = $modelMod->getBasketMods();
return $this->renderAjax('ajax_items', [
'modelMod'=>$modelMod,
'basket_mods'=>$basket_mods,
]);
}
public function actionInfo()
{
|
90a6ed1a
Administrator
basket
|
127
|
$modelMod = new Orders();
|
ecf49b1b
Administrator
second
|
128
129
130
131
132
133
134
|
$info = $modelMod->rowBasket();
return $this->renderAjax('ajax_info', [
'info'=>$info,
]);
}
public function actionAdd(){
|
90a6ed1a
Administrator
basket
|
135
|
$modelOrders = new Orders();
|
ecf49b1b
Administrator
second
|
136
|
if(isset($_GET['mod_id'],$_GET['count']) && $_GET['mod_id']>0 && $_GET['count']>0){
|
90a6ed1a
Administrator
basket
|
137
|
$modelOrders->addBasket($_GET['mod_id'],$_GET['count']);
|
ecf49b1b
Administrator
second
|
138
139
140
141
142
143
144
145
146
147
148
149
150
|
}
Yii::$app->end();
}
public function actionSuccess(){
return $this->render('success');
}
}
|