Commit ed038e99acbf0a27f8e11665deb4a870b31772b6
1 parent
11ecfb79
Order
Showing
9 changed files
with
139 additions
and
101 deletions
Show diff stats
controllers/BasketController.php
... | ... | @@ -20,7 +20,7 @@ |
20 | 20 | /** |
21 | 21 | * @var Basket $basket |
22 | 22 | */ |
23 | - $basket = \Yii::$app->basket; | |
23 | + $basket = \Yii::$app->get('basket'); | |
24 | 24 | $result = [ |
25 | 25 | 'basket' => $basket->getData(), |
26 | 26 | 'modal' => $this->getModal($basket), |
... | ... | @@ -28,16 +28,16 @@ |
28 | 28 | ]; |
29 | 29 | return $result; |
30 | 30 | } |
31 | - | |
32 | - public function actionAdd(int $product_variant_id, int $count) | |
31 | + | |
32 | + public function actionAdd(int $variant_id, int $count) | |
33 | 33 | { |
34 | 34 | $response = \Yii::$app->response; |
35 | 35 | $response->format = Response::FORMAT_JSON; |
36 | 36 | /** |
37 | 37 | * @var Basket $basket |
38 | 38 | */ |
39 | - $basket = \Yii::$app->basket; | |
40 | - $basket->add($product_variant_id, $count); | |
39 | + $basket = \Yii::$app->get('basket'); | |
40 | + $basket->add($variant_id, $count); | |
41 | 41 | $result = [ |
42 | 42 | 'basket' => $basket->getData(), |
43 | 43 | 'modal' => $this->getModal($basket), |
... | ... | @@ -45,16 +45,16 @@ |
45 | 45 | ]; |
46 | 46 | return $result; |
47 | 47 | } |
48 | - | |
49 | - public function actionSet(int $product_variant_id, int $count) | |
48 | + | |
49 | + public function actionSet(int $variant_id, int $count) | |
50 | 50 | { |
51 | 51 | $response = \Yii::$app->response; |
52 | 52 | $response->format = Response::FORMAT_JSON; |
53 | 53 | /** |
54 | 54 | * @var Basket $basket |
55 | 55 | */ |
56 | - $basket = \Yii::$app->basket; | |
57 | - $basket->set($product_variant_id, $count); | |
56 | + $basket = \Yii::$app->get('basket'); | |
57 | + $basket->set($variant_id, $count); | |
58 | 58 | $result = [ |
59 | 59 | 'basket' => $basket->getData(), |
60 | 60 | 'modal' => $this->getModal($basket), |
... | ... | @@ -62,10 +62,10 @@ |
62 | 62 | ]; |
63 | 63 | return $result; |
64 | 64 | } |
65 | - | |
66 | - public function actionRemove(int $product_variant_id) | |
65 | + | |
66 | + public function actionRemove(int $variant_id) | |
67 | 67 | { |
68 | - return $this->actionSet($product_variant_id, 0); | |
68 | + return $this->actionSet($variant_id, 0); | |
69 | 69 | } |
70 | 70 | |
71 | 71 | public function actionTest() |
... | ... | @@ -73,7 +73,7 @@ |
73 | 73 | /** |
74 | 74 | * @var Basket $basket |
75 | 75 | */ |
76 | - $basket = \Yii::$app->basket; | |
76 | + $basket = \Yii::$app->get('basket'); | |
77 | 77 | $modal = $this->getModal($basket); |
78 | 78 | return $modal; |
79 | 79 | } | ... | ... |
migrations/m170503_145306_create_order_product_table.php
... | ... | @@ -37,7 +37,7 @@ |
37 | 37 | ); |
38 | 38 | |
39 | 39 | $this->addForeignKey( |
40 | - 'order_product_variant_id_fkey', | |
40 | + 'order_variant_id_fkey', | |
41 | 41 | 'order_product', |
42 | 42 | 'variant_id', |
43 | 43 | 'variant', |
... | ... | @@ -53,7 +53,7 @@ |
53 | 53 | public function safeDown() |
54 | 54 | { |
55 | 55 | $this->dropForeignKey('order_product_order_id_fkey', 'order_product'); |
56 | - $this->dropForeignKey('order_product_variant_id_fkey', 'order_product'); | |
56 | + $this->dropForeignKey('order_variant_id_fkey', 'order_product'); | |
57 | 57 | |
58 | 58 | $this->dropTable('order_product'); |
59 | 59 | } | ... | ... |
models/Delivery.php
1 | 1 | <?php |
2 | 2 | |
3 | 3 | namespace artbox\order\models; |
4 | - | |
4 | + | |
5 | + use artbox\core\behaviors\LanguageBehavior; | |
5 | 6 | use artbox\core\models\Language; |
6 | 7 | use Yii; |
7 | - | |
8 | + use yii\db\ActiveQuery; | |
9 | + use yii\web\Request; | |
10 | + | |
8 | 11 | /** |
9 | 12 | * This is the model class for table "delivery". |
10 | 13 | * |
11 | 14 | * @property integer $id |
12 | 15 | * @property integer $sort |
13 | - * @property string $value | |
16 | + * @property float $value | |
14 | 17 | * @property boolean $status |
15 | 18 | * @property DeliveryLang[] $deliveryLangs |
16 | 19 | * @property Language[] $languages |
17 | 20 | * @property Order[] $orders |
21 | + * * * From language behavior * | |
22 | + * @property DeliveryLang $lang | |
23 | + * @property DeliveryLang[] $langs | |
24 | + * @property DeliveryLang $objectLang | |
25 | + * @property string $ownerKey | |
26 | + * @property string $langKey | |
27 | + * @property DeliveryLang[] $modelLangs | |
28 | + * @property bool $transactionStatus | |
29 | + * @method string getOwnerKey() | |
30 | + * @method void setOwnerKey( string $value ) | |
31 | + * @method string getLangKey() | |
32 | + * @method void setLangKey( string $value ) | |
33 | + * @method ActiveQuery getLangs() | |
34 | + * @method ActiveQuery getLang( integer $language_id ) | |
35 | + * @method DeliveryLang[] generateLangs() | |
36 | + * @method void loadLangs( Request $request ) | |
37 | + * @method bool linkLangs() | |
38 | + * @method bool saveLangs() | |
39 | + * @method bool getTransactionStatus() | |
40 | + * @method bool loadWithLangs( Request $request ) | |
41 | + * @method bool saveWithLangs() | |
42 | + * * End language behavior * | |
43 | + * @see LanguageBehavior | |
18 | 44 | */ |
19 | 45 | class Delivery extends \yii\db\ActiveRecord |
20 | 46 | { |
... | ... | @@ -25,7 +51,7 @@ |
25 | 51 | { |
26 | 52 | return 'delivery'; |
27 | 53 | } |
28 | - | |
54 | + | |
29 | 55 | /** |
30 | 56 | * @inheritdoc |
31 | 57 | */ |
... | ... | @@ -46,7 +72,19 @@ |
46 | 72 | ], |
47 | 73 | ]; |
48 | 74 | } |
49 | - | |
75 | + | |
76 | + /** | |
77 | + * @inheritdoc | |
78 | + */ | |
79 | + public function behaviors() | |
80 | + { | |
81 | + return [ | |
82 | + 'language' => [ | |
83 | + 'class' => LanguageBehavior::className(), | |
84 | + ], | |
85 | + ]; | |
86 | + } | |
87 | + | |
50 | 88 | /** |
51 | 89 | * @inheritdoc |
52 | 90 | */ |
... | ... | @@ -59,7 +97,7 @@ |
59 | 97 | 'status' => Yii::t('order', 'Status'), |
60 | 98 | ]; |
61 | 99 | } |
62 | - | |
100 | + | |
63 | 101 | /** |
64 | 102 | * @return \yii\db\ActiveQuery |
65 | 103 | */ |
... | ... | @@ -67,7 +105,7 @@ |
67 | 105 | { |
68 | 106 | return $this->hasMany(DeliveryLang::className(), [ 'delivery_id' => 'id' ]); |
69 | 107 | } |
70 | - | |
108 | + | |
71 | 109 | /** |
72 | 110 | * @return \yii\db\ActiveQuery |
73 | 111 | */ |
... | ... | @@ -76,7 +114,7 @@ |
76 | 114 | return $this->hasMany(Language::className(), [ 'id' => 'language_id' ]) |
77 | 115 | ->viaTable('delivery_lang', [ 'delivery_id' => 'id' ]); |
78 | 116 | } |
79 | - | |
117 | + | |
80 | 118 | /** |
81 | 119 | * @return \yii\db\ActiveQuery |
82 | 120 | */ | ... | ... |
models/Order.php
... | ... | @@ -3,7 +3,8 @@ |
3 | 3 | namespace artbox\order\models; |
4 | 4 | |
5 | 5 | use Yii; |
6 | - | |
6 | + use yii\db\ActiveRecord; | |
7 | + | |
7 | 8 | /** |
8 | 9 | * This is the model class for table "order". |
9 | 10 | * |
... | ... | @@ -27,7 +28,7 @@ |
27 | 28 | * @property Payment $payment |
28 | 29 | * @property OrderProduct[] $orderProducts |
29 | 30 | */ |
30 | - class Order extends \yii\db\ActiveRecord | |
31 | + class Order extends ActiveRecord | |
31 | 32 | { |
32 | 33 | /** |
33 | 34 | * @inheritdoc | ... | ... |
models/Payment.php
1 | 1 | <?php |
2 | 2 | |
3 | 3 | namespace artbox\order\models; |
4 | - | |
4 | + | |
5 | + use artbox\core\behaviors\LanguageBehavior; | |
5 | 6 | use artbox\core\models\Language; |
6 | 7 | use Yii; |
7 | - | |
8 | + use yii\db\ActiveQuery; | |
9 | + use yii\web\Request; | |
10 | + | |
8 | 11 | /** |
9 | 12 | * This is the model class for table "payment". |
10 | 13 | * |
... | ... | @@ -14,6 +17,29 @@ |
14 | 17 | * @property Order[] $orders |
15 | 18 | * @property PaymentLang[] $paymentLangs |
16 | 19 | * @property Language[] $languages |
20 | + * * From language behavior * | |
21 | + * @property PaymentLang $lang | |
22 | + * @property PaymentLang[] $langs | |
23 | + * @property PaymentLang $objectLang | |
24 | + * @property string $ownerKey | |
25 | + * @property string $langKey | |
26 | + * @property PaymentLang[] $modelLangs | |
27 | + * @property bool $transactionStatus | |
28 | + * @method string getOwnerKey() | |
29 | + * @method void setOwnerKey( string $value ) | |
30 | + * @method string getLangKey() | |
31 | + * @method void setLangKey( string $value ) | |
32 | + * @method ActiveQuery getLangs() | |
33 | + * @method ActiveQuery getLang( integer $language_id ) | |
34 | + * @method PaymentLang[] generateLangs() | |
35 | + * @method void loadLangs( Request $request ) | |
36 | + * @method bool linkLangs() | |
37 | + * @method bool saveLangs() | |
38 | + * @method bool getTransactionStatus() | |
39 | + * @method bool loadWithLangs( Request $request ) | |
40 | + * @method bool saveWithLangs() | |
41 | + * * End language behavior * | |
42 | + * @see LanguageBehavior | |
17 | 43 | */ |
18 | 44 | class Payment extends \yii\db\ActiveRecord |
19 | 45 | { |
... | ... | @@ -24,7 +50,19 @@ |
24 | 50 | { |
25 | 51 | return 'payment'; |
26 | 52 | } |
27 | - | |
53 | + | |
54 | + /** | |
55 | + * @inheritdoc | |
56 | + */ | |
57 | + public function behaviors() | |
58 | + { | |
59 | + return [ | |
60 | + 'language' => [ | |
61 | + 'class' => LanguageBehavior::className(), | |
62 | + ], | |
63 | + ]; | |
64 | + } | |
65 | + | |
28 | 66 | /** |
29 | 67 | * @inheritdoc |
30 | 68 | */ |
... | ... | @@ -41,7 +79,7 @@ |
41 | 79 | ], |
42 | 80 | ]; |
43 | 81 | } |
44 | - | |
82 | + | |
45 | 83 | /** |
46 | 84 | * @inheritdoc |
47 | 85 | */ |
... | ... | @@ -53,7 +91,7 @@ |
53 | 91 | 'status' => Yii::t('order', 'Status'), |
54 | 92 | ]; |
55 | 93 | } |
56 | - | |
94 | + | |
57 | 95 | /** |
58 | 96 | * @return \yii\db\ActiveQuery |
59 | 97 | */ |
... | ... | @@ -61,7 +99,7 @@ |
61 | 99 | { |
62 | 100 | return $this->hasMany(Order::className(), [ 'payment_id' => 'id' ]); |
63 | 101 | } |
64 | - | |
102 | + | |
65 | 103 | /** |
66 | 104 | * @return \yii\db\ActiveQuery |
67 | 105 | */ |
... | ... | @@ -69,7 +107,7 @@ |
69 | 107 | { |
70 | 108 | return $this->hasMany(PaymentLang::className(), [ 'payment_id' => 'id' ]); |
71 | 109 | } |
72 | - | |
110 | + | |
73 | 111 | /** |
74 | 112 | * @return \yii\db\ActiveQuery |
75 | 113 | */ | ... | ... |
views/basket/cart.php
1 | 1 | <?php |
2 | - use yii\helpers\Url; | |
2 | + use yii\bootstrap\Html; | |
3 | 3 | use yii\web\View; |
4 | 4 | |
5 | 5 | /** |
... | ... | @@ -7,7 +7,21 @@ |
7 | 7 | * @var int $count |
8 | 8 | */ |
9 | 9 | ?> |
10 | -<a href="<?php echo Url::to([ 'order/basket' ]); ?>" class="basket_"> | |
11 | - <span class="ico_b_"><span><?php echo $count; ?></span></span> | |
12 | - <p><span class="name_bas"><?= \Yii::t('app', 'basket') ?></span><span class="separator_bas"><i></i></span></p> | |
13 | -</a> | |
10 | +<span class="badge"><?= $count; ?></span> | |
11 | +<?php | |
12 | + echo Html::a( | |
13 | + Html::tag( | |
14 | + 'span', | |
15 | + \Yii::t('app', 'ะะพัะทะธะฝะฐ'), | |
16 | + [ | |
17 | + 'class' => 'sub-title', | |
18 | + ] | |
19 | + ), | |
20 | + [ | |
21 | + '/basket/index', | |
22 | + ], | |
23 | + [ | |
24 | + 'class' => 'cart-item-link', | |
25 | + ] | |
26 | + ); | |
27 | +?> | ... | ... |
views/basket/modal_items.php
1 | 1 | <?php |
2 | 2 | use artbox\catalog\models\Variant; |
3 | 3 | use artbox\order\models\Basket; |
4 | - use yii\bootstrap\Html; | |
5 | - use yii\helpers\Url; | |
6 | 4 | use yii\web\View; |
7 | - use yii\widgets\ActiveForm; | |
8 | - | |
9 | 5 | /** |
10 | 6 | * @var View $this |
11 | 7 | * @var Variant[] $models |
12 | 8 | * @var Basket $basket |
13 | 9 | * @var array $data |
14 | 10 | */ |
15 | - $data = $basket->getData(); | |
16 | -?> | |
17 | -<div class="container"> | |
18 | - <div class="row"> | |
19 | - <div class="col-xs-12 col-sm-12"> | |
20 | - <div class="style basket-modal-bg"> | |
21 | - <span id="modal_close"></span> | |
22 | - <div class="style model-name-test"> <?= \Yii::t('app', 'you_add') ?></div> | |
23 | - <?php | |
24 | - echo $this->render( | |
25 | - '@frontend/views/basket/basket_table', | |
26 | - [ | |
27 | - 'models' => $models, | |
28 | - 'basket' => $basket, | |
29 | - 'data' => $data, | |
30 | - ] | |
31 | - ); | |
32 | - ?> | |
33 | - <div class="style"> | |
34 | - <?php | |
35 | - $form = ActiveForm::begin( | |
36 | - [ | |
37 | - 'id' => 'basket-modal-form', | |
38 | - 'method' => 'POST', | |
39 | - 'action' => Url::to([ 'order/basket' ]), | |
40 | - ] | |
41 | - ); | |
42 | - echo Html::a( | |
43 | - \Yii::t('app', 'ะพัะพัะผะธัั ะทะฐะบะฐะท'), | |
44 | - [ | |
45 | - 'order/basket', | |
46 | - ], | |
47 | - [ | |
48 | - 'class' => 'btn_link_basket', | |
49 | - ] | |
50 | - ); | |
51 | - ?> | |
52 | - <span id="modal_close-2"><?= \Yii::t('app', 'cont_buy') ?></span> | |
53 | - <?php | |
54 | - $form::end(); | |
55 | - ?> | |
56 | - </div> | |
57 | - </div> | |
58 | - </div> | |
59 | - </div> | |
60 | -</div> | ... | ... |
web/js/artbox_basket.js
1 | -"use strict"; | |
2 | -Object.defineProperty(exports, "__esModule", { value: true }); | |
3 | -var $ = require("jquery"); | |
1 | +///<reference path="node_modules/@types/jquery/index.d.ts" /> | |
4 | 2 | var ArtboxBasket = (function () { |
5 | 3 | function ArtboxBasket(settings) { |
6 | 4 | if (settings === void 0) { settings = {}; } |
... | ... | @@ -58,7 +56,7 @@ var ArtboxBasket = (function () { |
58 | 56 | }.bind(this)); |
59 | 57 | }; |
60 | 58 | ArtboxBasket.prototype.add = function (variant_id, count) { |
61 | - $.post('/' + this.language + '/' + this._settings['url'] + '/add?variant_id=' + variant_id + '&count=' + count, function (data) { | |
59 | + return $.post('/' + this.language + '/' + this._settings['url'] + '/add?variant_id=' + variant_id + '&count=' + count, function (data) { | |
62 | 60 | this._items = data.basket; |
63 | 61 | this.updateModal(data.modal, data.cart, true); |
64 | 62 | }.bind(this), 'json').fail(function (xhr, status, error) { |
... | ... | @@ -66,7 +64,7 @@ var ArtboxBasket = (function () { |
66 | 64 | }); |
67 | 65 | }; |
68 | 66 | ArtboxBasket.prototype.set = function (variant_id, count) { |
69 | - $.post('/' + this.language + '/' + this._settings['url'] + '/set?variant_id=' + variant_id + '&count=' + count, function (data) { | |
67 | + return $.post('/' + this.language + '/' + this._settings['url'] + '/set?variant_id=' + variant_id + '&count=' + count, function (data) { | |
70 | 68 | this._items = data.basket; |
71 | 69 | this.updateModal(data.modal, data.cart, true); |
72 | 70 | }.bind(this), 'json').fail(function (xhr, status, error) { |
... | ... | @@ -74,7 +72,7 @@ var ArtboxBasket = (function () { |
74 | 72 | }); |
75 | 73 | }; |
76 | 74 | ArtboxBasket.prototype.remove = function (variant_id) { |
77 | - $.post('/' + this.language + '/' + this._settings['url'] + '/remove?variant_id=' + variant_id, function (data) { | |
75 | + return $.post('/' + this.language + '/' + this._settings['url'] + '/remove?variant_id=' + variant_id, function (data) { | |
78 | 76 | this._items = data.basket; |
79 | 77 | this.updateModal(data.modal, data.cart, true); |
80 | 78 | }.bind(this), 'json').fail(function (xhr, status, error) { | ... | ... |
web/js/artbox_basket.ts
1 | -import * as $ from 'jquery'; | |
2 | - | |
1 | +///<reference path="node_modules/@types/jquery/index.d.ts" /> | |
3 | 2 | class ArtboxBasket { |
4 | 3 | private _items; |
5 | 4 | private _language; |
... | ... | @@ -52,8 +51,8 @@ class ArtboxBasket { |
52 | 51 | }.bind(this)); |
53 | 52 | } |
54 | 53 | |
55 | - public add(variant_id, count) { | |
56 | - $.post('/' + this.language + '/' + this._settings['url'] + '/add?variant_id=' + variant_id + '&count=' + count, function (data) { | |
54 | + public add(variant_id, count): JQueryPromise<JQueryXHR> { | |
55 | + return $.post('/' + this.language + '/' + this._settings['url'] + '/add?variant_id=' + variant_id + '&count=' + count, function (data) { | |
57 | 56 | this._items = data.basket; |
58 | 57 | this.updateModal(data.modal, data.cart, true); |
59 | 58 | }.bind(this), 'json').fail(function (xhr, status, error) { |
... | ... | @@ -61,8 +60,8 @@ class ArtboxBasket { |
61 | 60 | }); |
62 | 61 | } |
63 | 62 | |
64 | - public set(variant_id, count) { | |
65 | - $.post('/' + this.language + '/' + this._settings['url'] + '/set?variant_id=' + variant_id + '&count=' + count, function (data) { | |
63 | + public set(variant_id, count): JQueryPromise<JQueryXHR> { | |
64 | + return $.post('/' + this.language + '/' + this._settings['url'] + '/set?variant_id=' + variant_id + '&count=' + count, function (data) { | |
66 | 65 | this._items = data.basket; |
67 | 66 | this.updateModal(data.modal, data.cart, true); |
68 | 67 | }.bind(this), 'json').fail(function (xhr, status, error) { |
... | ... | @@ -70,8 +69,8 @@ class ArtboxBasket { |
70 | 69 | }); |
71 | 70 | } |
72 | 71 | |
73 | - public remove(variant_id) { | |
74 | - $.post('/' + this.language + '/' + this._settings['url'] + '/remove?variant_id=' + variant_id, function (data) { | |
72 | + public remove(variant_id): JQueryPromise<JQueryXHR> { | |
73 | + return $.post('/' + this.language + '/' + this._settings['url'] + '/remove?variant_id=' + variant_id, function (data) { | |
75 | 74 | this._items = data.basket; |
76 | 75 | this.updateModal(data.modal, data.cart, true); |
77 | 76 | }.bind(this), 'json').fail(function (xhr, status, error) { | ... | ... |