Пример #1
0
 public function saveAnswers($code, $answers)
 {
     $questions = $this->getQuestions();
     foreach ($answers as $key => $answer) {
         $aq = $this->getQuestionByPosition($questions, $key);
         $fr_id = $aq['fr_id'];
         $answer = $this->answerToDefault($fr_id, $answer);
         if (is_array($answer)) {
             $answer = implode(";", $answer);
         }
         $count = Result::find()->andWhere(['e_z_id' => $code['z_id'], 'e_fr_id' => $fr_id])->count();
         if (!$count) {
             if (!trim($answer)) {
                 if (isset($aq['dset'])) {
                     $aid = $aq['dset'];
                 } else {
                     $aid = "err";
                     $answer = "";
                 }
             } else {
                 $aid = $this->getAnswerId($aq, $answer);
             }
             if ($aq['display'] == "radio" && $aid !== "err") {
                 $result = new Result();
                 $result->e_z_id = $code['z_id'];
                 $result->e_fr_id = $fr_id;
                 $result->a_id = $aid;
                 $result->save();
             } else {
                 $result = new Result();
                 $result->e_z_id = $code['z_id'];
                 $result->e_fr_id = $fr_id;
                 $result->antwort = $answer;
                 $result->save();
             }
         }
         $status = $key;
     }
     $codeObj = Code::findOne($code['z_id']);
     $codeObj->status = $status;
     $codeObj->save();
     return $status;
 }