Beispiel #1
0
 /**
  * Добавление элемента каталога в корзину
  * @param int $id идентификтор элемента каталога
  * @param string $class класс элемента каталога
  * @param int $qty количество
  * @param array $attrs дополнительные атрибуты для сохранения, передаваемые клиентом
  * @throws ErrorException
  * @throws \yii\base\InvalidConfigException
  */
 public function add($id, $class, $qty = 1, $attrs = [])
 {
     $model = $class::findOne($id);
     if (!$model or !$model instanceof IShopItem) {
         throw new ErrorException("Request model does`t implement \\app\\modules\\shop\\components\\IShopItem interface");
     }
     $good = Yii::createObject(Good::className());
     $good->qty = $qty;
     $this->configureGood($good, $model, $attrs);
     $order = $this->getOrder();
     $order->addNewGood($good);
     $this->orderManager->saveOrder($order);
 }
 /**
  * Действия
  * @return array
  */
 public function actions()
 {
     $class = Good::className();
     return ['index' => ['class' => crud\Admin::className(), 'modelClass' => $class], 'create' => ['class' => crud\Create::className(), 'modelClass' => $class], 'update' => ['class' => crud\Update::className(), 'modelClass' => $class], 'view' => ['class' => crud\View::className(), 'modelClass' => $class], 'delete' => ['class' => crud\Delete::className(), 'modelClass' => $class], 'groupdelete' => ['class' => crud\GroupDelete::className(), 'modelClass' => $class], 'editable' => ['class' => crud\XEditable::className(), 'modelClass' => $class]];
 }
Beispiel #3
0
 /**
  * Связь с заказанными товарами
  * @return \yii\db\ActiveQuery
  */
 public function getGoods()
 {
     return $this->hasMany(Good::className(), ["order_id" => "id"]);
 }
Beispiel #4
0
<?php

use app\modules\shop\models;
return ['controllerMap' => ['migrate' => ['migrationLookup' => ['@webapp/modules/shop/migrations']]], 'modules' => ['shop' => ['class' => 'app\\modules\\shop\\Shop', 'modelClasses' => ['app\\modules\\catalog\\models\\Catalog'], 'components' => ['orderLetters' => \app\modules\shop\components\OrderLetters::className(), 'clientNotifier' => \app\modules\shop\components\ClientNotifier::className(), 'adminNotifier' => \app\modules\shop\components\AdminNotifier::className(), 'basket' => ['class' => \app\modules\shop\components\Basket::className(), 'components' => ['orderManager' => ['class' => \app\modules\shop\components\OrderManager::className()]]]], 'controllerNamespace' => 'app\\modules\\shop\\controllers', 'modules' => ['admin' => ['class' => 'app\\modules\\shop\\modules\\admin\\Admin', 'controllerNamespace' => 'app\\modules\\shop\\modules\\admin\\controllers', 'menuItems' => function () {
    return [['label' => Yii::t('shop/app', 'Shop module'), 'icon' => 'glyphicon glyphicon-shopping-cart', 'items' => [['label' => Yii::t('shop/app', 'Orders'), 'url' => ['/admin/shop/order'], "permission" => ["listModels", ["model" => Yii::createObject(models\Order::className())]]], ['label' => Yii::t('shop/app', 'Goods'), 'url' => ['/admin/shop/good'], "permission" => ["listModels", ["model" => Yii::createObject(models\Good::className())]]], ['label' => Yii::t('shop/app', 'Statuses'), 'url' => ['/admin/shop/status'], "permission" => ["listModels", ["model" => Yii::createObject(models\Status::className())]]], ['label' => Yii::t('shop/app', 'Payments'), 'url' => ['/admin/shop/payment'], "permission" => ["listModels", ["model" => Yii::createObject(models\Payment::className())]]], ['label' => Yii::t('shop/app', 'Deliveries'), 'url' => ['/admin/shop/delivery'], "permission" => ["listModels", ["model" => Yii::createObject(models\Delivery::className())]]]]]];
}]]]], 'components' => ['i18n' => ['translations' => ['shop/*' => ['class' => 'yii\\i18n\\PhpMessageSource', 'basePath' => '@webapp/modules/shop/messages', 'fileMap' => ['shop/app' => 'app.php']]]], 'urlManager' => ['rules' => ['shop/orders-rest/update/<id:\\d+>' => 'shop/orders-rest/update']]]];