b60a88b8
Anastasia
- main page
|
1
2
3
4
5
6
7
8
9
10
|
<?php
/**
* Created by PhpStorm.
* User: stes
* Date: 24.05.18
* Time: 18:49
*/
namespace backend\controllers;
|
c2648e65
Anastasia
- prices
|
11
12
13
|
use artbox\core\models\Language;
use common\models\Price;
use common\models\PriceLang;
|
b60a88b8
Anastasia
- main page
|
14
15
16
17
18
19
20
|
use common\models\Service;
use yii\helpers\ArrayHelper;
use yii\web\Controller;
class PriceController extends Controller
{
public function actionIndex($service_id = null){
|
c2648e65
Anastasia
- prices
|
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
if (\Yii::$app->request->post()){
$price = \Yii::$app->request->post('Price');
$price_lang = \Yii::$app->request->post('PriceLang');
$transaction = \Yii::$app->db->beginTransaction();
try {
Price::deleteAll(['service_id' => $service_id]);
foreach ($price as $key => $value){
$model = new Price();
$model->load($value, '');
$model->id = $key;
if ($model->save()){
$languages = [];
foreach ($price_lang[$key] as $k => $item){
$languages[] = [
'language_id' => $k,
'price_id' => $model->id,
'title' => $item['title']
];
}
\Yii::$app->db->createCommand()
->batchInsert(
'price_lang',
[
'language_id',
'price_id',
'title',
],
$languages
)
->execute();
}else{
continue;
}
}
$transaction->commit();
} catch (\Exception $e) {
$transaction->rollBack();
throw $e;
} catch (\Throwable $e) {
$transaction->rollBack();
return false;
}
}
|
9e6e5602
Anastasia
prices
|
68
|
$services = Service::find()->with('language')->all();
|
c2648e65
Anastasia
- prices
|
69
70
|
$lastId = Price::find()->max('id');
$prices = Price::find()->where(['service_id' => $service_id])->with('languages')->all();
|
b60a88b8
Anastasia
- main page
|
71
|
$data = ArrayHelper::map($services, 'id', 'title');
|
c2648e65
Anastasia
- prices
|
72
|
|
b60a88b8
Anastasia
- main page
|
73
74
|
return $this->render('index',[
'services' => $data,
|
c2648e65
Anastasia
- prices
|
75
76
77
|
'service_id' => $service_id,
'lastId' => $lastId,
'prices' => $prices
|
b60a88b8
Anastasia
- main page
|
78
|
]);
|
c2648e65
Anastasia
- prices
|
79
80
81
82
83
84
85
86
|
}
public function actionNewPrice($lastId, $service_id = null){
$languages = Language::getActive();
$price = New Price();
$price->service_id = $service_id;
$price_lang = new PriceLang();
|
724308f6
Anastasia
add status to price
|
87
|
return $this->renderAjax('_add_price',[
|
c2648e65
Anastasia
- prices
|
88
89
90
91
92
93
|
'lastId' => $lastId,
'price' => $price,
'price_lang' => $price_lang,
'service_id' => $service_id,
'languages' => $languages
]);
|
b60a88b8
Anastasia
- main page
|
94
95
|
}
}
|