146 lines
6.1 KiB
PHP
146 lines
6.1 KiB
PHP
<?php
|
|
|
|
|
|
namespace Modules\User\Http\Controllers;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Contracts\Support\Renderable;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Collection;
|
|
use Illuminate\Support\Facades\Validator;
|
|
use Illuminate\Support\Facades\Storage;
|
|
use Illuminate\Support\Str;
|
|
use DataTables;
|
|
|
|
use App\Models\Jadwal;
|
|
use App\Models\Kelas;
|
|
use App\Models\Guru;
|
|
use App\Models\Pertanyaan;
|
|
use App\Models\Kuesioner;
|
|
use App\Models\Answer;
|
|
use App\Models\Summary;
|
|
use App\Models\Temp;
|
|
|
|
use Carbon\Carbon;
|
|
|
|
class KuesionerController extends Controller
|
|
{
|
|
public function index(Request $request)
|
|
{
|
|
$data = [
|
|
'subtitle' => 'Kuesioner',
|
|
];
|
|
|
|
$kuesioner = Kuesioner::where('status', 1)->orderBy('id', 'desc')->limit(1)->get();
|
|
return view('user::kuesioner.index', compact('data', 'kuesioner'));
|
|
}
|
|
|
|
public function store(Request $request)
|
|
{
|
|
$validator = Validator::make($request->all(), [
|
|
'questionnaire_id' => 'required',
|
|
]);
|
|
|
|
if ($validator->fails()) {
|
|
return redirect()->back()->with('error', $validator->errors()->first());
|
|
}
|
|
|
|
$data = [];
|
|
$questionnaire_id = $request->input('questionnaire_id');
|
|
|
|
$i = 0;
|
|
foreach(Pertanyaan::all() as $query) {
|
|
$i++;
|
|
$question_id = $request->input('question_id_' . $i);
|
|
$expectation_answer = $request->input('expectation_answer_' . $i);
|
|
$reality_answer = $request->input('reality_answer_' . $i);
|
|
|
|
$temp_data = [
|
|
'question_id' => $question_id,
|
|
'questionnaire_id' => $questionnaire_id,
|
|
'name' => user()->id,
|
|
'expectation_answer' => $expectation_answer,
|
|
'reality_answer' => $reality_answer
|
|
];
|
|
|
|
array_push($data, $temp_data);
|
|
}
|
|
Answer::insert($data);
|
|
|
|
foreach($data as $value) {
|
|
$value = (object) $value;
|
|
$check_expectation = Summary::where('question_id', $value->question_id)->where('type', 'expectation')->where('gap', $value->expectation_answer);
|
|
$check_reality = Summary::where('question_id', $value->question_id)->where('type', 'reality')->where('gap', $value->reality_answer);
|
|
|
|
if($check_expectation->count() > 0) {
|
|
$fetch_data = $check_expectation->first();
|
|
$data = [
|
|
'sum_total_answerer' => $fetch_data->sum_total_answerer+1,
|
|
'sum_total_point' => $fetch_data->sum_total_point+$value->expectation_answer
|
|
];
|
|
|
|
$update = Summary::where('question_id', $value->question_id)->where('type', 'expectation')->where('gap', $value->expectation_answer)->update($data);
|
|
} else {
|
|
$data = [
|
|
'gap' => $value->expectation_answer,
|
|
'type' => 'expectation',
|
|
'question_id' => $value->question_id,
|
|
'questionnaire_id' => $value->questionnaire_id,
|
|
'sum_total_answerer' => 1,
|
|
'sum_total_point' => $value->expectation_answer
|
|
];
|
|
|
|
$insert = Summary::insert($data);
|
|
}
|
|
|
|
if($check_reality->count() > 0) {
|
|
$fetch_data = $check_reality->first();
|
|
$data = [
|
|
'sum_total_answerer' => $fetch_data->sum_total_answerer+1,
|
|
'sum_total_point' => $fetch_data->sum_total_point+$value->reality_answer
|
|
];
|
|
$update = Summary::where('question_id', $value->question_id)->where('type', 'reality')->where('gap', $value->reality_answer)->update($data);
|
|
} else {
|
|
$data = [
|
|
'gap' => $value->reality_answer,
|
|
'type' => 'reality',
|
|
'question_id' => $value->question_id,
|
|
'questionnaire_id' => $value->questionnaire_id,
|
|
'sum_total_answerer' => 1,
|
|
'sum_total_point' => $value->reality_answer
|
|
];
|
|
$insert = Summary::insert($data);
|
|
}
|
|
|
|
$get_data = Temp::where('question_id', $value->question_id)->where('questionnaire_id', $value->questionnaire_id)->first();
|
|
if($get_data) {
|
|
$data = [
|
|
'sum_expectation_answer' => $get_data->sum_expectation_answer+$value->expectation_answer,
|
|
'sum_reality_answer' => $get_data->sum_reality_answer+$value->reality_answer,
|
|
'sum_total_answerer' => $get_data->sum_total_answerer+1,
|
|
'sum_expectation_average' => round($get_data->sum_expectation_answer+$value->expectation_answer/($get_data->sum_total_answerer+1), 2),
|
|
'sum_reality_average' => round($get_data->sum_reality_answer+$value->reality_answer/($get_data->sum_total_answerer+1), 2),
|
|
'sum_gap5' => round((round($get_data->sum_reality_answer+$value->reality_answer/($get_data->sum_total_answerer+1), 2))-(round($get_data->sum_expectation_answer+$value->expectation_answer/($get_data->sum_total_answerer+1), 2)), 2)
|
|
];
|
|
|
|
$update = Temp::where('question_id', $value->question_id)->where('questionnaire_id', $value->questionnaire_id)->update($data);
|
|
} else {
|
|
$data = [
|
|
'questionnaire_id' => $value->questionnaire_id,
|
|
'question_id' => $value->question_id,
|
|
'sum_expectation_answer' => $value->expectation_answer,
|
|
'sum_reality_answer' => $value->reality_answer,
|
|
'sum_total_answerer' => 1,
|
|
'sum_expectation_average' => round($value->expectation_answer, 2),
|
|
'sum_reality_average' => round($value->reality_answer, 2),
|
|
'sum_gap5' => round((round($value->reality_answer, 2))-(round($value->expectation_answer, 2)), 2)
|
|
];
|
|
|
|
$insert = Temp::insert($data);
|
|
}
|
|
}
|
|
|
|
return redirect()->back()->with('success', 'Kuesioner anda telah selesai. Kami ucapkan terima kasih atas penilaiannya.');
|
|
}
|
|
}
|