*/ use yii\helpers\Html; use skeeks\cms\modules\admin\widgets\form\ActiveFormUseTab as ActiveForm; /* @var $this yii\web\View */ ?> <?php $form = ActiveForm::begin(); ?> <?php echo $form->fieldSet(\skeeks\cms\shop\Module::t('app', 'Main')); ?> <?php echo $form->fieldSelect($model, 'cms_user_id', \yii\helpers\ArrayHelper::map(\skeeks\cms\models\CmsUser::find()->all(), 'id', 'displayName')); ?> <?php echo $form->fieldSelect($model, 'shop_person_type_id', \yii\helpers\ArrayHelper::map(\skeeks\cms\shop\models\ShopPersonType::find()->all(), 'id', 'name')); ?> <?php echo $form->field($model, 'name')->textInput(); ?> <?php echo $form->fieldSetEnd(); ?> <?php echo $form->buttonsCreateOrUpdate($model);
/** * Процесс отправки формы * @return array */ public function actionShopPersonTypeSubmit() { $rr = new RequestResponse(); try { if (\Yii::$app->request->isAjax && !\Yii::$app->request->isPjax) { if (\Yii::$app->request->post('shop_person_type_id')) { $shop_person_type_id = \Yii::$app->request->post('shop_person_type_id'); $shop_buyer_id = \Yii::$app->request->post('shop_buyer_id'); /** * @var $shopPersonType ShopPersonType */ $modelBuyer = ShopBuyer::findOne($shop_buyer_id); $shopPersonType = ShopPersonType::find()->active()->andWhere(['id' => $shop_person_type_id])->one(); if (!$shopPersonType) { throw new Exception(\Yii::t('skeeks/shop/app', 'This payer is disabled or deleted. Refresh the page.')); } if (!$modelBuyer) { $modelBuyer = $shopPersonType->createModelShopBuyer(); } $validateModel = $modelBuyer->relatedPropertiesModel; if ($validateModel->load(\Yii::$app->request->post()) && $validateModel->validate()) { $modelBuyerName = []; //Проверка свойств foreach ($validateModel->toArray($validateModel->attributes()) as $code => $value) { /** * @var $property ShopPersonTypeProperty */ $property = $validateModel->getRelatedProperty($code); if ($property->is_buyer_name == Cms::BOOL_Y) { $modelBuyerName[] = $value; } if ($property->is_user_email == Cms::BOOL_Y) { $userEmail = $value; } if ($property->is_user_name == Cms::BOOL_Y) { $userName = $value; } if ($property->is_user_username == Cms::BOOL_Y) { $userUsername = $value; } if ($property->is_user_phone == Cms::BOOL_Y) { $userPhone = $value; } } //Нужно создать польозвателя if (\Yii::$app->user->isGuest) { if (!$userEmail) { throw new Exception(\Yii::t('skeeks/shop/app', 'Unknown email address user')); } if ($userEmail) { if ($userExist = CmsUser::find()->where(['email' => $userEmail])->one()) { throw new Exception(\Yii::t('skeeks/shop/app', 'In our database, there are already a user with this email. Login to your account, or enter a different email address.')); } } $newUser = new SignupForm(); $newUser->scenario = SignupForm::SCENARION_ONLYEMAIL; $newUser->email = $userEmail; if (!($user = $newUser->signup())) { throw new Exception(\Yii::t('skeeks/shop/app', 'Do not create a user profile.')); } if ($userName) { $user->name = $userName; } //Авторизация пользователя \Yii::$app->user->login($user, 0); } $modelBuyer->name = $modelBuyerName ? implode(", ", $modelBuyerName) : $shopPersonType->name . " от (" . \Yii::$app->formatter->asDate(time(), 'medium') . ")"; $modelBuyer->cms_user_id = \Yii::$app->user->identity->id; $modelBuyer->shop_person_type_id = $shopPersonType->id; if (!$modelBuyer->save()) { throw new Exception(\Yii::t('skeeks/shop/app', 'The data for the buyer are not saved.')); } $validateModel->save(); \Yii::$app->shop->shopFuser->buyer_id = $modelBuyer->id; \Yii::$app->shop->shopFuser->person_type_id = $modelBuyer->shopPersonType->id; \Yii::$app->shop->shopFuser->save(); $rr->success = true; $rr->message = \Yii::t('skeeks/shop/app', 'Successfully sent'); } else { throw new Exception(\Yii::t('skeeks/shop/app', 'Check the correctness of filling the form fields')); } } } } catch (\Exception $e) { $rr->success = false; $rr->message = $e->getMessage(); } return (array) $rr; }