190 lines
5.8 KiB
PHP
190 lines
5.8 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Server;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\Guru;
|
|
use App\Models\Jawaban;
|
|
use App\Models\Jurusan;
|
|
use App\Models\Siswa;
|
|
use App\Models\Ujian;
|
|
use DateTime;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
class UjianController extends Controller
|
|
{
|
|
/**
|
|
* Display a listing of the resource.
|
|
*
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function index()
|
|
{
|
|
$nomor = 1;
|
|
$ujians = Ujian::join('jurusans', 'ujians.jurusan_id', '=', 'jurusans.id_jurusan')->select('*')->get();
|
|
return view('server-side.ujian.index', compact(['nomor', 'ujians']));
|
|
}
|
|
|
|
public function feedbackUjianSiswa()
|
|
{
|
|
$nomor = 1;
|
|
$siswa = Siswa::where('user_id', Auth::user()->user_id)->first();
|
|
$jawaban = Jawaban::join('siswas', 'siswas.id', '=', 'jawabans.siswa_id')->where('jawabans.siswa_id', $siswa->id)->get();
|
|
return view('server-side.penilaian.feedback-ujian', compact(['nomor', 'jawaban']));
|
|
}
|
|
|
|
/**
|
|
* Show the form for creating a new resource.
|
|
*
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function create()
|
|
{
|
|
$jurusan = Jurusan::all();
|
|
$jurusanLogin = auth()->user()->user_id;
|
|
$jurusanGuru = Guru::where('user_id', $jurusanLogin)
|
|
->join('jurusans', 'gurus.jurusan_id', '=', 'jurusans.id_jurusan')
|
|
->select('gurus.jurusan_id', 'jurusans.nama_jurusan')
|
|
->first();
|
|
return view('server-side.ujian.create', compact(['jurusan', 'jurusanGuru']));
|
|
}
|
|
|
|
/**
|
|
* Store a newly created resource in storage.
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function store(Request $request)
|
|
{
|
|
$request->validate([
|
|
'soal' => 'required|string',
|
|
'keterangan' => 'required|string',
|
|
'level' => 'required|string',
|
|
'jurusan_id' => 'required',
|
|
'tanggal_mulai' => 'required',
|
|
'tanggal_mulai' => 'required',
|
|
'jam_mulai' => 'required',
|
|
'tanggal_berakhir' => 'required',
|
|
'jam_berakhir' => 'required'
|
|
]);
|
|
|
|
$ujian = new Ujian();
|
|
$ujian->soal = $request->soal;
|
|
$ujian->keterangan = $request->keterangan;
|
|
$ujian->level = $request->level;
|
|
$ujian->jurusan_id = $request->jurusan_id;
|
|
$ujian->tanggal_mulai = $request->tanggal_mulai;
|
|
$ujian->jam_mulai = $request->jam_mulai;
|
|
$ujian->tanggal_berakhir = $request->tanggal_berakhir;
|
|
$ujian->jam_berakhir = $request->jam_berakhir;
|
|
$ujian->save();
|
|
|
|
return redirect()->route('ujian.index')->with('success', 'Berhasil menambah soal ujian baru');
|
|
}
|
|
|
|
/**
|
|
* Display the specified resource.
|
|
*
|
|
* @param \App\Models\Ujian $ujian
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function show(Ujian $ujian)
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Show the form for editing the specified resource.
|
|
*
|
|
* @param \App\Models\Ujian $ujian
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function edit(Ujian $ujian)
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Update the specified resource in storage.
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @param \App\Models\Ujian $ujian
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function update(Request $request, Ujian $ujian)
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Remove the specified resource from storage.
|
|
*
|
|
* @param \App\Models\Ujian $ujian
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function destroy(Ujian $ujian)
|
|
{
|
|
//
|
|
}
|
|
|
|
public function ujianSiswa() {
|
|
$selectIdSiswa = Siswa::where('user_id', Auth::user()->user_id)->value('id');
|
|
$userIdLog = Siswa::where('user_id', Auth::user()->user_id)->first();
|
|
$ujians = Ujian::where('jurusan_id', $userIdLog->jurusan_id)->get();
|
|
return view('server-side.ujian.ujian-siswa', compact(['ujians', 'selectIdSiswa']));
|
|
}
|
|
|
|
public function mulaiUjian($ujian_id)
|
|
{
|
|
$ujian = Ujian::join('jurusans', 'ujians.jurusan_id', '=', 'jurusans.id_jurusan')->select('*')->where('ujian_id', $ujian_id)->first();
|
|
return view('server-side.ujian.mulai-ujian', compact(['ujian']));
|
|
}
|
|
|
|
public function selesaiUjian(Request $request)
|
|
{
|
|
$request->validate([
|
|
'file' => 'required|file|mimes:zip,rar|max:2048',
|
|
]);
|
|
|
|
$file = $request->file('file');
|
|
$fileName = time() . '_' . $file->getClientOriginalName();
|
|
$file->move(public_path('jawaban'), $fileName);
|
|
|
|
$selectIdSiswa = Siswa::where('user_id', Auth::user()->user_id)->first();
|
|
|
|
$statusPengumpulan = '';
|
|
|
|
$selectUjian = Ujian::where('ujian_id', $request->ujian_id)->first();
|
|
|
|
$tanggalMulaiUjian = $selectUjian->tanggal_mulai;
|
|
$tanggalSelesaiUjian = $selectUjian->tanggal_berakhir;
|
|
$jamMulaiUjian = $selectUjian->jam_mulai;
|
|
$jamSelesaiUjian = $selectUjian->jam_berakhir;
|
|
|
|
$dateTimeMulaiUjian = new DateTime($tanggalMulaiUjian . ' ' . $jamMulaiUjian);
|
|
$dateTimeSelesaiUjian = new DateTime($tanggalSelesaiUjian . ' ' . $jamSelesaiUjian);
|
|
|
|
$currentTime = new DateTime();
|
|
|
|
if ($currentTime >= $dateTimeMulaiUjian && $currentTime <= $dateTimeSelesaiUjian) {
|
|
$statusPengumpulan = 'Tepat Waktu';
|
|
} else {
|
|
$statusPengumpulan = 'Telat Mengumpulkan';
|
|
}
|
|
|
|
|
|
$jawaban = new Jawaban();
|
|
$jawaban->siswa_id = $selectIdSiswa->id;
|
|
$jawaban->file = $fileName;
|
|
$jawaban->ujian_id = $request->ujian_id;
|
|
$jawaban->status = true;
|
|
$jawaban->status_pengumpulan = $statusPengumpulan;
|
|
$jawaban->save();
|
|
|
|
return redirect()->route('daftar.ujian')->with('success', 'Berhasil mengumpulkan jawaban');
|
|
}
|
|
|
|
}
|