/** * Payment form * * @throws Exception */ public function actionOrderForm() { if (!($key = \Yii::$app->request->get('key'))) { throw new Exception('Order not found'); } if (!($order = ShopOrder::find()->where(['key' => $key])->one())) { throw new Exception('Order not found'); } return $this->render($this->action->id, ['model' => $order]); }
/** * @inheritdoc */ public function actions() { return ArrayHelper::merge(parent::actions(), ['index' => ["dataProviderCallback" => function (ActiveDataProvider $dataProvider) { $query = $dataProvider->query; /** * @var \yii\db\ActiveQuery $query */ //$query->select(['app_company.*', 'count(`app_company_officer_user`.`id`) as countOfficer']); $query->groupBy([CmsUser::tableName() . '.id']); $query->innerJoin(ShopBuyer::tableName(), '`shop_buyer`.`cms_user_id` = `cms_user`.`id`'); }, "columns" => [['class' => UserColumnData::className(), 'attribute' => 'id', 'label' => \skeeks\cms\shop\Module::t('app', 'Buyer')], 'email', 'phone', ['class' => DateTimeColumnData::className(), 'attribute' => 'created_at', 'label' => \skeeks\cms\shop\Module::t('app', 'Date of registration')], ['class' => DataColumn::className(), 'label' => \skeeks\cms\shop\Module::t('app', 'Date of last order'), 'value' => function (CmsUser $model) { if ($order = ShopOrder::find()->where(['user_id' => $model->id])->orderBy(['created_at' => SORT_DESC])->one()) { return \Yii::$app->formatter->asDatetime($order->created_at); } return null; }], ['class' => DataColumn::className(), 'label' => \skeeks\cms\shop\Module::t('app', 'The amount paid orders'), 'value' => function (CmsUser $model) { return ShopOrder::find()->where(['user_id' => $model->id, 'payed' => Cms::BOOL_Y])->count(); }]]]]); }
* @date 02.06.2015 */ /* @var $this yii\web\View */ /* @var $searchModel \skeeks\cms\models\Search */ /* @var $dataProvider yii\data\ActiveDataProvider */ $query = $dataProvider->query; $query->groupBy([\skeeks\cms\models\CmsUser::tableName() . '.id']); $query->leftJoin(\skeeks\cms\shop\models\ShopOrder::tableName(), '`shop_order`.`user_id` = `cms_user`.`id`'); ?> <? $pjax = \skeeks\cms\modules\admin\widgets\Pjax::begin(); ?> <?php echo $this->render('_search', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider]); ?> <?php echo \skeeks\cms\modules\admin\widgets\GridViewStandart::widget(['dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'pjax' => $pjax, 'adminController' => \Yii::$app->controller, 'columns' => [['class' => \skeeks\cms\grid\UserColumnData::className(), 'attribute' => 'id', 'label' => \Yii::t('skeeks/shop/app', 'Buyer')], 'email', 'phone', ['class' => \skeeks\cms\grid\DateTimeColumnData::className(), 'attribute' => 'created_at', 'label' => \Yii::t('skeeks/shop/app', 'Date of registration')], ['class' => \yii\grid\DataColumn::className(), 'label' => \Yii::t('skeeks/shop/app', 'Date of last order'), 'value' => function (\skeeks\cms\models\CmsUser $model) { if ($order = \skeeks\cms\shop\models\ShopOrder::find()->where(['user_id' => $model->id])->orderBy(['created_at' => SORT_DESC])->one()) { return \Yii::$app->formatter->asDatetime($order->created_at); } return null; }], ['class' => \yii\grid\DataColumn::className(), 'label' => \Yii::t('skeeks/shop/app', 'The amount paid orders'), 'value' => function (\skeeks\cms\models\CmsUser $model) { return \skeeks\cms\shop\models\ShopOrder::find()->where(['user_id' => $model->id, 'payed' => \skeeks\cms\components\Cms::BOOL_Y])->count(); }], ['class' => \yii\grid\DataColumn::className(), 'label' => \Yii::t('skeeks/shop/app', 'The amount paid orders'), 'value' => function (\skeeks\cms\models\CmsUser $model) { return \skeeks\cms\shop\models\ShopOrder::find()->where(['user_id' => $model->id, 'payed' => \skeeks\cms\components\Cms::BOOL_Y])->count(); }]]]); ?> <? $pjax::end(); ?>
public function actionFinishPay() { /** * @var $shopOrder ShopOrder */ $shopOrder = ShopOrder::find()->where(['key' => \Yii::$app->request->get('key')])->one(); if (!\Yii::$app->request->get('key') || !$shopOrder) { throw new NotFoundHttpException(); } return $shopOrder->paySystem->paySystemHandler->paymentResponse($shopOrder); }
<?php /** * @author Semenov Alexander <*****@*****.**> * @link http://skeeks.com/ * @copyright 2010 SkeekS (—кик—) * @date 01.11.2015 */ /* @var $this yii\web\View */ echo \skeeks\cms\modules\admin\widgets\GridView::widget(['dataProvider' => new \yii\data\ActiveDataProvider(['query' => \skeeks\cms\shop\models\ShopOrder::find()]), 'columns' => ['id']]); ?>
<?php echo $form->fieldSetEnd(); ?> <?php echo $form->fieldSet("Заказы (" . \skeeks\cms\shop\models\ShopOrder::find()->where(['user_id' => $model->id])->count() . ")"); ?> <?php echo \skeeks\cms\modules\admin\widgets\BlockTitleWidget::widget(['content' => 'Последние заказы']); ?> <?php echo \skeeks\cms\modules\admin\widgets\GridView::widget(['dataProvider' => new \yii\data\ActiveDataProvider(['query' => \skeeks\cms\shop\models\ShopOrder::find()->where(['user_id' => $model->id])]), 'columns' => ['id', ['class' => \yii\grid\DataColumn::className(), 'attribute' => 'status_code', 'format' => 'raw', 'value' => function (\skeeks\cms\shop\models\ShopOrder $order) { return Html::label($order->status->name, null, ['style' => "background: {$order->status->color}", 'class' => "label"]) . "<br />" . Html::tag("small", \Yii::$app->formatter->asDatetime($order->status_at) . " (" . \Yii::$app->formatter->asRelativeTime($order->status_at) . ")"); }], ['class' => \skeeks\cms\grid\BooleanColumn::className(), 'attribute' => 'payed', 'format' => 'raw'], ['class' => \skeeks\cms\grid\BooleanColumn::className(), 'attribute' => 'canceled', 'format' => 'raw'], ['class' => \yii\grid\DataColumn::className(), 'format' => 'raw', 'attribute' => 'price', 'label' => \skeeks\cms\shop\Module::t('app', 'Sum'), 'value' => function (\skeeks\cms\shop\models\ShopOrder $model) { return \Yii::$app->money->intlFormatter()->format($model->money); }], ['class' => \yii\grid\DataColumn::className(), 'attribute' => 'site_id', 'format' => 'raw', 'label' => \skeeks\cms\shop\Module::t('app', 'Site'), 'value' => function (\skeeks\cms\shop\models\ShopOrder $model) { return $model->site->name . " [{$model->site->code}]"; }], ['class' => \skeeks\cms\grid\CreatedAtColumn::className()]]]); echo $form->fieldSetEnd(); ?> <?php $fuser = \skeeks\cms\shop\models\ShopFuser::find()->where(['user_id' => $model->id])->one(); ?>