public function rules() { return [[['HardID'], function ($attribute) { }], ['dateRange', 'required'], ['dateRange', function ($attribute) { list($this->dateFrom, $this->dateTo) = preg_split('/\\s+-\\s+/', $this->dateRange); $formatter = Yii::$app->formatter; $this->dateFrom = $formatter->asDatetime($this->dateFrom, 'yyyy-MM-dd HH:mm:ss'); $this->dateTo = $formatter->asDatetime($this->dateTo, 'yyyy-MM-dd HH:mm:ss'); }], [['dateFrom', 'dateTo'], 'safe'], ['PersonID', 'exist', 'targetClass' => PersonsRecord::className(), 'targetAttribute' => 'ID'], ['allowCancelled', 'boolean']]; }
public function actionIndex() { $room = RoomRecord::findOne(['1' => 1]); if ($room === null) { $room = new RoomRecord(); $room->Name = $this->prompt('Введите название зала', ['required' => true, 'default' => 'Local', 'validator' => function ($input, $error) use($room) { $room->Name = $input; if (!$room->validate()) { $error = implode("\n", array_keys($room->firstErrors)); } return true; }]); if (!$room->save()) { echo implode("\n", array_values($room->firstErrors)); echo "Ошибка записи, Зал не сохранен\n"; return 100; } else { echo "Ok Зал создан ({$room->ID})\n"; } } /** @var PersonsRecord $person */ $person = \Yii::createObject(PersonsRecord::className()); $person->setScenario('create'); $person->GroupID = 1; $person->RoomID = $room->ID; $this->prompt('Введите логин пользователя root:', ['required' => true, 'default' => 'root', 'validator' => function ($input, $error) use($person) { $person->Login = $input; if (!$person->validate()) { // $error = implode("\n", array_keys($person->firstErrors)); return false; } return true; }]); $person->Password = $this->prompt('Введите пароль для входа в интерфейс', ['required' => true, 'default' => null, 'validator' => function ($input, $error) use($person) { $person->Password = $input; if (!$person->validate()) { // $error = implode("\n", array_keys($person->firstErrors)); return false; } return true; }]); if (!$person->create()) { echo implode("\n", array_values($person->firstErrors)); echo "Ошибка записи. Пользователь не сохранен\n"; } else { echo "Ok выход \n"; } }
/** * Step 3 * @param $hardId * @return string|\yii\web\Response * @throws HttpException */ public function actionCreateAccount($hardId, $groupId = '') { /** @var PersonsGroupRecord $group */ if ($groupId !== '') { $group = PersonsGroupRecord::findOne($groupId); } else { $group = PersonsGroupRecord::getDefault(); } /** @var PersonsRecord $user */ $user = Yii::createObject(['class' => PersonsRecord::className(), 'scenario' => 'create']); /** @var CardForm $card */ $card = \Yii::createObject(CardForm::className()); $card->HardID = $hardId; if (!$card->isExist()) { $card = $card->create(); } else { $card = $card->find(); } if (!$card->ID) { throw new HttpException(400, 'Не удалось сохранить номер карты'); } $user->CardID = $card->id; $user->GroupID = $group->id; $user->ServiceCard = $group->IsService; $this->performAjaxValidation($user); if ($user->load(Yii::$app->request->post()) && $user->create()) { /** @var FinanceRecord $finance */ $finance = Yii::createObject(FinanceRecord::className()); $finance->ClassID = 2; //Регистраци карты $finance->ContractorID = $user->ID; $finance->save(); Yii::$app->getSession()->setFlash('success', Yii::t('user', 'User has been created')); return $this->redirect(['/accounts/charge-balance', 'id' => $user->account->id]); } return $this->render('createAccount', ['user' => $user]); }
/** * @return \yii\db\ActiveQuery */ public function getPerson() { return $this->hasOne(PersonsRecord::className(), ['ID' => 'PersonID']); }
public function actionCreateAccount($hardId, $groupId = '') { /** @var PersonsGroupRecord $group */ if ($groupId !== '') { $group = PersonsGroupRecord::findOne($groupId); } else { $group = PersonsGroupRecord::getDefault(); } /** @var PersonsRecord $user */ $user = Yii::$app->user->identity; if ($group->ID < $user->GroupID) { throw new ForbiddenHttpException('Вы не можете зарегистрировать карту более высокого уровня'); } /** @var PersonsRecord $user */ $user = Yii::createObject(['class' => PersonsRecord::className(), 'scenario' => 'create']); $user->GroupID = $group->id; $user->ServiceCard = $group->IsService; //from parent controller (not my behavior) $this->performAjaxValidation($user); //data already loaded with ajax validation if ($user->load(Yii::$app->request->post()) && $user->validate()) { $card = null; /** @var CardForm $card */ $cardForm = \Yii::createObject(CardForm::className()); $cardForm->HardID = $hardId; if (!$cardForm->isExist()) { $card = $cardForm->create(); } else { if ($cardForm->isUsed()) { throw new HttpException(400, 'Данная карта уже зарегистрирована в системе'); } else { $card = $cardForm->find(); } } if (!$card->ID) { throw new HttpException(400, 'Не удалось зарегистрировать карту'); } $user->CardID = $card->id; if ($user->create()) { /** @var FinanceRecord $finance */ $finance = Yii::createObject(FinanceRecord::className()); $finance->ClassID = 2; //Регистраци карты $finance->ContractorID = $user->ID; $finance->save(); //Yii::$app->getSession()->setFlash('success', Yii::t('user', 'User has been created')); return $this->redirect(['/person/children', 'personId' => $user->id]); } } return $this->render('createAccount', ['user' => $user]); }
/** * @return PersonsRecord */ public function getCancelAccount() { return $this->hasOne(PersonsRecord::className(), ['ID' => 'CancelAccountID']); }