Commit ed038e99acbf0a27f8e11665deb4a870b31772b6

Authored by Yarik
1 parent 11ecfb79

Order

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) {
... ...