/** * Save student's Emotional Stability test * * @return Response */ public function submitTest() { $user = Auth::user(); // initialized scales' scores to zero $scl_intra = 0; // Intrapersonal Scale $scl_inter = 0; // Interpersonal Scale $scl_strss = 0; // Stress Management Scale $scl_adap = 0; // Adapatability Scale $scl_gmood = 0; // General Mood Scale $total_eq = 0; // Total Emotional Quotient Scale $scl_imprssn = 0; // Positive Impression Scale $index_inc = 0; // Index of Inconsistency $pairIndex = 0; // index counter $indexInc_pair = [7, 13, 9, 33, 12, 45, 16, 22, 21, 39, 26, 8, 30, 36, 32, 47, 34, 40, 42, 46]; // Iterate through questions taken for ($itemNum = 0; $itemNum <= 50; $itemNum++) { // Get the answer for the question // Find the question in database $answer = Input::get($itemNum); $question = questions::find($itemNum); // Determine if current question has a // pair for index of inconsistency if ($itemNum == $indexInc_pair[$pairIndex]) { $index_inc += Input::get($indexInc_pair[$pairIndex]) - Input::get($indexInc_pair[$pairIndex + 1]); $pairIndex = ($pairIndex + 2) % 20; } // Determine question's category; // Add question's answer to the total sum of the category switch ($question->scale_type) { case 1: $scl_intra += $answer; break; case 2: $scl_inter += $answer; break; case 3: $scl_strss += $answer; break; case 4: $scl_adap += $answer; break; case 5: $scl_gmood += $answer; break; case 7: $scl_imprssn += $answer; break; default: break; } // Save student's answer to the question $student_question = new student_question(array('user_id' => $user->id, 'question_id' => $question->id, 'value' => $answer)); $student_question->save(); } // Compute total Emotional Quotient $total_eq = ($scl_intra + $scl_inter + $scl_strss + $scl_adap + $scl_gmood) / 5; // Save the test $test = new test(array('user_id' => $user->id, 'date_taken' => date('Y-m-d'), 'intra_score' => $scl_intra, 'inter_score' => $scl_inter, 'strss_mgt_score' => $scl_strss, 'adap_score' => $scl_adap, 'gen_mood_score' => $scl_gmood, 'total_eq' => $total_eq, 'index_inconsistency' => $index_inc, 'pstv_imprssn_score' => $scl_imprssn)); $test->save(); return $this->testinterp(); }