コード例 #1
0
 public function actionIndex()
 {
     $error = '';
     $model = new AnketForm();
     if ($model->load(Yii::$app->request->post())) {
         if ($code = $model->validateCode()) {
             if ($model->processCode($code)) {
                 $this->redirect('/site/welcome');
             } else {
                 $this->redirect('/site/index');
             }
         } else {
             $error = 'Bank gesperrt, Code ung?ltig oder bereits verwendetet. Anmeldung fehlgeschlagen.';
         }
     }
     return $this->render('index', ['model' => $model, 'error' => $error]);
 }
コード例 #2
0
 public function actionQuestionnaire($bezeichnung, $groupId, $langId)
 {
     $is_locked = Settings::getSetting('locked');
     if ($is_locked == 1) {
         return $this->render('error', ['name' => 'Fehler', 'message' => 'Das System ist gesperrt. Bei Fragen wenden sie sich bitte an Emotion Banking.']);
     }
     try {
         $bankKlasse = Bank::findOne(['b_id' => $bezeichnung])->klasse;
         $questionnaire = Form::findOne(['f_klasse' => $bankKlasse, 'f_p_id' => $groupId]);
         if (empty($questionnaire)) {
             throw new ErrorException('Es gibt keinen Fragebogen für ihre Banken-, bzw. Kundengruppenauswahl');
         }
         $code = $questionnaire->createSpecificCode($bezeichnung);
         if ($code->hasErrors()) {
             return $this->render('error', ['name' => 'Fehler', 'message' => $code->getLastErrorMessage()]);
         }
     } catch (ErrorException $e) {
         return $this->render('error', ['name' => 'Fehler', 'message' => $e->getMessage()]);
     }
     $codeString = $code->__toString();
     if ($codeString !== null) {
         $warning = '';
         $model = new AnketForm();
         $model->code = $codeString;
         $model->language = $langId;
         if ($langId != "default") {
             $lanuage = Language::findOne($langId);
             if (empty($lanuage)) {
                 $warning = "Die angegebene Sprache " . $langId . " kann nicht gefunden werden. Es wird die Standardsprache angezeigt";
             }
         }
         if ($code !== false && ($code = $model->validateCode())) {
             $model->processCode($code);
             $data = Yii::$app->session['anketData'];
             $text = UserText::getText($data['group']['p_id'], $data['bank']['b_id'], $data['lang'], true);
             if (is_null($text)) {
                 return $this->render('error', ['name' => 'Fehler', 'message' => 'kein Starttext für diese Sprache gefunden']);
             }
             return $this->render('welcome', ['text' => $text, 'code' => $data["original"], 'warning' => $warning, 'style' => $data['style']]);
         } else {
             return $this->render('error', ['name' => 'Fehler', 'message' => 'Bank gesperrt, Code ungültig oder bereits verwendet. Anmeldung fehlgeschlagen']);
         }
     } else {
         $this->redirect(['/site/index']);
     }
     $data = Yii::$app->session['anketData'];
     $form = Form::findOne($data['form']);
     $questions = $form->getQuestions($bank_id = $data["bank"]["b_id"]);
     //default
     $status = 0;
     //code not needed.
     if (Yii::$app->request->post('q')) {
         $userAnswers = Yii::$app->request->post('q');
         $status = $form->saveAnswers($data['code'], $userAnswers);
         $data['status'] = $status;
         $data['code']['status'] = $status;
     } else {
         $data = Yii::$app->session['anketData'];
         $text = UserText::getText($data['group']['p_id'], $data['bank']['b_id'], $data['lang'], true);
         if (is_null($text)) {
             return $this->render('error', ['name' => 'Fehler', 'message' => 'kein Starttext für diese Sprache gefunden']);
         }
         return $this->render('welcome', ['text' => $text, 'code' => $data["original"], 'style' => $data["style"]]);
     }
     Yii::$app->session['anketData'] = $data;
     if (!($status < $form->getQuestionsCount($questions))) {
         $this->redirect(['/site/end']);
     }
     return $this->render('form', ['status' => $status, 'percent' => round($status / $form->getQuestionsCount($questions) * 100), 'questions' => $questions, 'anket' => $form, 'bank' => $data['bank']['b_id'], 'style' => $data['style']]);
 }