Commit 05875b7c by semenov

1

parent 3daac621
......@@ -8,6 +8,8 @@
namespace skeeks\modules\cms\shop\controllers;
use skeeks\cms\base\Controller;
use skeeks\cms\helpers\RequestResponse;
use skeeks\cms\helpers\UrlHelper;
use skeeks\cms\models\forms\SignupForm;
use skeeks\modules\cms\form\models\Form;
use skeeks\modules\cms\form\models\FormField;
use skeeks\modules\cms\form\models\FormSendMessage;
......@@ -97,6 +99,28 @@ class BackendController extends Controller
//Пользователь авторизован или нет.
if (\Yii::$app->user->isGuest)
{
$registerForm = new SignupForm();
$registerForm->setScenario(SignupForm::SCENARION_ONLYEMAIL);
$registerForm->email = $model->email;
$user = $registerForm->signup();
//Проверим может что то можно заполнить в профиле пользователя.
if ($user)
{
foreach ($model->attributes as $code => $value)
{
if ($user->hasAttribute($code))
{
$user->{$code} = $value;
}
}
$user->save(false);
} else
{
throw new UserException("Не удалось зарегистрировать пользователя");
}
} else
{
......@@ -159,6 +183,15 @@ class BackendController extends Controller
}
$rr->success = true;
$rr->message = 'Заказ успешно создан';
\Yii::$app->session->setFlash("success", 'Заказ успешно создан');
return $this->redirect( UrlHelper::construct('shop/order/view', [
'id' => $shopOrder->id,
'sx-new' => '1'
])->toString() );
} else
{
$rr->message = 'Форма заполнена неправильно';
......
......@@ -6,6 +6,7 @@
* @date 02.04.2015
*/
namespace skeeks\modules\cms\shop\models;
use skeeks\cms\models\User;
use skeeks\cms\helpers\UrlHelper;
use skeeks\cms\models\behaviors\HasStatus;
use skeeks\cms\models\behaviors\HasStatusBoolean;
......@@ -51,8 +52,8 @@ use yii\helpers\ArrayHelper;
* @property string $tax_value
*
* @property ShopBasket[] $shopBaskets
* @property CmsUser $user
* @property CmsUser $createdBy
* @property User $user
* @property User $createdBy
* @property ShopPersonType $personType
* @property CmsUser $updatedBy
*/
......@@ -161,7 +162,7 @@ class ShopOrder extends Core
*/
public function getUser()
{
return $this->hasOne(CmsUser::className(), ['id' => 'user_id']);
return $this->hasOne(User::className(), ['id' => 'user_id']);
}
/**
......@@ -169,7 +170,7 @@ class ShopOrder extends Core
*/
public function getCreatedBy()
{
return $this->hasOne(CmsUser::className(), ['id' => 'created_by']);
return $this->hasOne(User::className(), ['id' => 'created_by']);
}
/**
......@@ -185,7 +186,7 @@ class ShopOrder extends Core
*/
public function getUpdatedBy()
{
return $this->hasOne(CmsUser::className(), ['id' => 'updated_by']);
return $this->hasOne(User::className(), ['id' => 'updated_by']);
}
......
<?php
/**
* @author Semenov Alexander <semenov@skeeks.com>
* @link http://skeeks.com/
* @copyright 2010 SkeekS (СкикС)
* @date 03.04.2015
*/
namespace skeeks\modules\cms\shop\widgets\order;
use skeeks\cms\widgets\base\hasModelsSmart\WidgetHasModelsSmart;
use skeeks\cms\widgets\base\hasTemplate\WidgetHasTemplate;
use skeeks\modules\cms\shop\assets\ShopAsset;
use skeeks\modules\cms\shop\models\ShopOrder;
use yii\helpers\Json;
/**
* Class OrdersWidget
* @package skeeks\modules\cms\shop\widgets
*/
class OrderWidget extends WidgetHasTemplate
{
public $modelClassName = '\skeeks\modules\cms\shop\models\ShopOrder';
public $title = '';
/**
* @var ShopOrder
*/
public $model;
public function rules()
{
return ArrayHelper::merge(parent::rules(), [
]);
}
public function attributeLabels()
{
return ArrayHelper::merge(parent::attributeLabels(), [
]);
}
}
......@@ -21,15 +21,36 @@ class OrdersWidget extends WidgetHasModelsSmart
{
public $modelClassName = '\skeeks\modules\cms\shop\models\ShopOrder';
public $title = '';
public $user_id;
public function rules()
{
return ArrayHelper::merge(parent::rules(), [
['user_id', 'integer']
]);
}
public function attributeLabels()
{
return ArrayHelper::merge(parent::attributeLabels(), [
'user_id' => 'Пользователь'
]);
}
/**
* Подготовка данных для шаблона
* @return $this
*/
public function bind()
{
parent::bind();
if ($this->user_id)
{
$query = $this->getSearch()->getDataProvider()->query;
$query->andWhere(['user_id' => $this->user_id]);
}
return $this;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment