File: /var/www/selfanalyse/self-strength-test/test_save.php
<?php
include_once '../wp-config.php';
# test taken msg
include_once '../wp-content/plugins/psychometrics/api/psy_mail_sms_functions.php';
global $wpdb;
$PSY_EXAMS = $wpdb->prefix . PSY_EXAMS;
$PSY_USERS_DETAILS = $wpdb->prefix . PSY_USERS_DETAILS;
$PSY_SP_QUESTION = $wpdb->prefix . PSY_SP_QUESTION;
$PSY_TEST_GEN_TEST_TAKEN = $wpdb->prefix . PSY_TEST_GEN_TEST_TAKEN;
$PSY_TEST_GEN_TEST_TAKEN_QUESTION_ANSWER = $wpdb->prefix . PSY_TEST_GEN_TEST_TAKEN_QUESTION_ANSWER;
# get cuurent user
global $current_user;
$user_id = $current_user->ID;
$json = file_get_contents('php://input');
$response = json_decode($json);
$type = $response->type;
$time_taken_in_seconds = $response->time_taken_in_seconds;
$jsonDecodeQues = $response->param;
$firstArray = current((array)$response->param);
$testID = $firstArray->test_taken_id;
$statusArray = array();
$checkTestExist = $wpdb->get_var("SELECT count(*) from $PSY_TEST_GEN_TEST_TAKEN_QUESTION_ANSWER where test_taken_id='$testID'");
# student name
$user_name = $wpdb->get_var("SELECT first_name FROM $PSY_USERS_DETAILS where user_id='$user_id'");
# get exam name
$examName = $wpdb->get_var("SELECT e.category_name FROM $PSY_TEST_GEN_TEST_TAKEN as t INNER JOIN $PSY_EXAMS as e on e.exam_category_id=t.exam_category_id WHERE t.test_taken_id='$testID'");
if ($checkTestExist > 0) {
foreach ($jsonDecodeQues as $quesAr) {
$q_no = $quesAr->q_no;
$question_id = $quesAr->question_id;
$test_taken_id = $quesAr->test_taken_id;
$subject_id = $quesAr->subject_id;
$module_id = $quesAr->module_id;
$answer = $quesAr->answer;
$entered_time = $quesAr->entered_time;
$time_taken = $quesAr->time_taken;
$tag_status = $quesAr->tag_status;
if ($entered_time == '0') {
$e_time = 'NULL';
$subquery = "ques_start_time=$e_time";
} else {
$e_time = $entered_time;
$subquery = "ques_start_time='$e_time'";
}
if ($time_taken == '0') {
$t_time = 'NULL';
$subquery2 = "ques_end_time=$t_time";
} else {
$t_time = $time_taken;
$subquery2 = "ques_end_time='$t_time'";
}
$updateTestQuestion = $wpdb->query("UPDATE $PSY_TEST_GEN_TEST_TAKEN_QUESTION_ANSWER set answer='$answer', ques_status='$tag_status', $subquery, $subquery2 where test_taken_id='$test_taken_id' and test_question_id='$question_id'");
}
if ($type == 'complete') {
$curDate = date('Y-m-d H:i:s');
$getTestSummary = $wpdb->get_row("SELECT count(case when ttqat.!=0 then 1 end) as answerSelect, count(case when ttqat.answer=0 then 1 end) as unAttemptQn from $PSY_TEST_GEN_TEST_TAKEN_QUESTION_ANSWER as ttqat Inner join $PSY_SP_QUESTION as ttqt on ttqt.question_id = ttqat.test_question_id where ttqat.test_taken_id='$testID' ");
$unAttemptQn = $getTestSummary->unAttemptQn;
$answerSelect = $getTestSummary->answerSelect;
$wpdb->query("UPDATE $PSY_TEST_GEN_TEST_TAKEN set answer_selected='$answerSelect', unattempt_answer='$unAttemptQn', time_taken_in_seconds='$time_taken_in_seconds', status='Y', finish_date='$curDate' where test_taken_id='$testID'");
$get_subject = $wpdb->get_results("SELECT count(test_question_id) as total_mark,subject_id from $PSY_TEST_GEN_TEST_TAKEN_QUESTION_ANSWER where test_taken_id='$testID' group by subject_id");
# send msg on test completion
$examNamenew = str_replace('Test','',$examName);
sendTestakenSms('9873224446', $user_name, $examNamenew);
} else if ($type != 'complete') {
$getTestSummary = $wpdb->get_row("SELECT count(case when ttqat.!=0 then 1 end) as answerSelect, count(case when ttqat.answer=0 then 1 end) as unAttemptQn from $PSY_TEST_GEN_TEST_TAKEN_QUESTION_ANSWER as ttqat Inner join $PSY_SP_QUESTION as ttqt on ttqt.question_id = ttqat.test_question_id where ttqat.test_taken_id='$testID' ");
$unAttemptQn = $getTestSummary->unAttemptQn;
$answerSelect = $getTestSummary->answerSelect;
$updateTimeTaken = $wpdb->query("UPDATE $PSY_TEST_GEN_TEST_TAKEN set answer_selected='$answerSelect', unattempt_answer='$unAttemptQn', time_taken_in_seconds='$time_taken_in_seconds',status='N' where test_taken_id='$testID'");
}
$statusArray[] = array('type_test' => $type, 'status' => 'success', 'test_taken_id' => $testID);
} else {
$statusArray[] = array('type_test' => $type, 'status' => 'fail', 'test_taken_id' => $testID);
}
echo json_encode($statusArray);