Blame view

widgets/BasketModal.php 1.5 KB
8a7e6ecf   Yarik   Namespaces
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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
  <?php

      namespace artweb\artbox\ecommerce\widgets;

      

      use artweb\artbox\ecommerce\models\ProductVariant;

      use yii\base\Widget;

      

      class BasketModal extends Widget

      {

          

          public function init()

          {

              

              parent::init();

              

          }

          

          public function run()

          {

              $sessionData = \Yii::$app->session->get('order');

              unset( $sessionData[ 'order_id' ] );

              $count = count($sessionData);

              $price = 0;

              if (is_array($sessionData) && !empty( $sessionData )) {

                  

                  $variant = ProductVariant::find()

                                           ->where([ 'product_variant_id' => array_keys($sessionData) ])

                                           ->indexBy('product_variant_id')

                                           ->all();

                  

                  foreach ($sessionData as $k => $item) {

                      $sessionData[ $k ][ 'item' ] = $variant[ $k ];

                      $price += $variant[ $k ]->price * $sessionData[ $k ][ 'num' ];

                  }

                  

                  return $this->render(

                      'basket_modal',

                      [

                          'items' => $sessionData,

                          'count' => $count,

                          'price' => $price,

                      ]

                  );

                  

              }

              

          }

          

      }