262 lines
8.6 KiB
PHP
262 lines
8.6 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Server;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\Penilaian;
|
|
use Illuminate\Http\Request;
|
|
use App\Models\Jurusan;
|
|
use App\Models\Guru;
|
|
use App\Models\Jawaban;
|
|
use App\Models\Siswa;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class PenilaianController extends Controller
|
|
{
|
|
/**
|
|
* Display a listing of the resource.
|
|
*
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function index()
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Show the form for creating a new resource.
|
|
*
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function create()
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Store a newly created resource in storage.
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function store(Request $request)
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Display the specified resource.
|
|
*
|
|
* @param \App\Models\Penilaian $penilaian
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function show(Penilaian $penilaian)
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Show the form for editing the specified resource.
|
|
*
|
|
* @param \App\Models\Penilaian $penilaian
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function edit(Penilaian $penilaian)
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Update the specified resource in storage.
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @param \App\Models\Penilaian $penilaian
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function update(Request $request, Penilaian $penilaian)
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Remove the specified resource from storage.
|
|
*
|
|
* @param \App\Models\Penilaian $penilaian
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function destroy(Penilaian $penilaian)
|
|
{
|
|
//
|
|
}
|
|
|
|
public function hasilSeleksiJurusan()
|
|
{
|
|
$nomor = 1;
|
|
$jurusans = DB::table('jurusans')
|
|
->whereIn('id_jurusan', function ($query) {
|
|
$query->select('jurusan_id')
|
|
->from('penilaians')
|
|
->join('siswas', 'penilaians.siswa_id', '=', 'siswas.id')
|
|
->groupBy('jurusan_id');
|
|
})->get();
|
|
|
|
|
|
return view('server-side.penilaian.hasil-seleksi-jurusan', compact(['nomor', 'jurusans']));
|
|
}
|
|
|
|
public function hasilSeleksi($jurusan_id)
|
|
{
|
|
$nomor = 1;
|
|
$nomor2 = 1;
|
|
$nomor3 = 1;
|
|
$nomor4 = 1;
|
|
$finalResult = Penilaian::join('siswas', 'penilaians.siswa_id', '=', 'siswas.id')->where('jurusan_id', $jurusan_id)->get();
|
|
$nilaiRaport = $finalResult->pluck('nilai_raport')->sum();
|
|
$nilaiKeterampilan = $finalResult->pluck('nilai_keterampilan')->sum();
|
|
$nilaiUjian = $finalResult->pluck('nilai_ujian')->sum();
|
|
return view('server-side.penilaian.hasil-seleksi', compact(['nomor', 'nomor2', 'nomor3', 'nomor4', 'finalResult', 'nilaiRaport','nilaiKeterampilan', 'nilaiUjian']));
|
|
}
|
|
|
|
public function raport()
|
|
{
|
|
$nomor = 1;
|
|
$raport = Penilaian::join('siswas', 'penilaians.siswa_id', '=', 'siswas.id')->select('*')->get();
|
|
return view('server-side.penilaian.raport', compact(['nomor', 'raport']));
|
|
}
|
|
|
|
public function editNilaiRaport($siswa_id)
|
|
{
|
|
$raport = Penilaian::join('siswas', 'penilaians.siswa_id', '=', 'siswas.id')->select('*')->where('siswa_id', $siswa_id)->first();
|
|
return view('server-side.penilaian.edit-raport', compact(['raport']));
|
|
}
|
|
|
|
public function updateNilaiRaport(Request $request, $siswa_id)
|
|
{
|
|
$updateNilaiRaport = Penilaian::where('siswa_id', $siswa_id)->firstOrFail();
|
|
$updateNilaiRaport->update([
|
|
'nilai_raport' => $request->nilai_raport,
|
|
]);
|
|
return redirect()->route('penilaian.raport')->with('message', 'Berhasil merubah nilai raport ' . $request->nama_siswa);
|
|
}
|
|
|
|
public function keterampilan()
|
|
{
|
|
$nomor = 1;
|
|
$keterampilan = Penilaian::join('siswas', 'penilaians.siswa_id', '=', 'siswas.id')->select('*')->get();
|
|
return view('server-side.penilaian.keterampilan', compact(['nomor', 'keterampilan']));
|
|
}
|
|
|
|
public function editNilaiKeterampilan($siswa_id)
|
|
{
|
|
$keterampilan = Penilaian::join('siswas', 'penilaians.siswa_id', '=', 'siswas.id')->select('*')->where('siswa_id', $siswa_id)->first();
|
|
return view('server-side.penilaian.edit-keterampilan', compact(['keterampilan']));
|
|
}
|
|
|
|
public function updateNilaiKeterampilan(Request $request, $siswa_id)
|
|
{
|
|
$updateNilaiKeterampilan = Penilaian::where('siswa_id', $siswa_id)->firstOrFail();
|
|
$updateNilaiKeterampilan->update([
|
|
'nilai_keterampilan' => $request->nilai_keterampilan,
|
|
]);
|
|
return redirect()->route('penilaian.keterampilan')->with('message', 'Berhasil merubah nilai keterampilan ' . $request->nama_siswa);
|
|
}
|
|
|
|
public function ujian()
|
|
{
|
|
$nomor = 1;
|
|
$jurusanLogin = auth()->user()->user_id;
|
|
$jurusan = Guru::where('user_id', $jurusanLogin)
|
|
->join('jurusans', 'gurus.jurusan_id', '=', 'jurusans.id_jurusan')
|
|
->select('jurusans.nama_jurusan')
|
|
->first();
|
|
|
|
$jawaban = Jawaban::where('status', 1)->pluck('siswa_id'); // Mengambil semua siswa_id dengan status 1
|
|
|
|
if ($jurusan) {
|
|
$namaJurusan = $jurusan->nama_jurusan;
|
|
|
|
$ujian = Penilaian::join('siswas', 'penilaians.siswa_id', '=', 'siswas.id')
|
|
->join('jawabans', 'siswas.id', '=', 'jawabans.siswa_id')
|
|
->whereIn('siswas.id', function($query) use ($namaJurusan, $jawaban) {
|
|
$query->select('siswa_id')
|
|
->from('jawabans')
|
|
->whereIn('siswa_id', $jawaban) // Hanya siswa dengan status 1
|
|
->where('jurusan_id', function($subquery) use ($namaJurusan) {
|
|
$subquery->select('id_jurusan')
|
|
->from('jurusans')
|
|
->where('nama_jurusan', $namaJurusan);
|
|
});
|
|
})
|
|
->select('penilaians.*', 'siswas.*', 'jawabans.*')
|
|
->get();
|
|
|
|
}
|
|
|
|
|
|
return view('server-side.penilaian.ujian', compact(['nomor', 'ujian']));
|
|
}
|
|
|
|
public function editNilaiUjian($siswa_id)
|
|
{
|
|
$juriId = Guru::where('user_id', Auth::user()->user_id)->first();
|
|
$ujian = Penilaian::join('siswas', 'penilaians.siswa_id', '=', 'siswas.id')->select('*')->where('siswa_id', $siswa_id)->first();
|
|
return view('server-side.penilaian.edit-ujian', compact(['ujian', 'juriId']));
|
|
}
|
|
|
|
public function updateNilaiUjian(Request $request, $siswa_id)
|
|
{
|
|
$juriId = Guru::where('user_id', Auth::user()->user_id)->first();
|
|
$updateNilaiUjian = Penilaian::where('siswa_id', $siswa_id)->firstOrFail();
|
|
|
|
if ($juriId->status_juri == "Juri 1") {
|
|
$updateNilaiUjian->update([
|
|
'nilai_ujian_juri_1' => $request->nilai_ujian,
|
|
'nilai_ujian' => ($request->nilai_ujian + $updateNilaiUjian->nilai_ujian_juri_2) / 2,
|
|
]);
|
|
} else {
|
|
$updateNilaiUjian->update([
|
|
'nilai_ujian_juri_2' => $request->nilai_ujian,
|
|
'nilai_ujian' => ($request->nilai_ujian + $updateNilaiUjian->nilai_ujian_juri_1) / 2,
|
|
]);
|
|
}
|
|
|
|
return redirect()->route('penilaian.ujian')->with('message', 'Berhasil merubah nilai ujian ' . $request->nama_siswa);
|
|
}
|
|
|
|
public function downloadJawaban($siswa_id)
|
|
{
|
|
$jawaban = Jawaban::where('siswa_id', $siswa_id)->first();
|
|
$filePath = public_path('jawaban/' . $jawaban->file);
|
|
return response()->download($filePath);
|
|
}
|
|
|
|
public function validasiNilai()
|
|
{
|
|
$numb = 1;
|
|
$data = Siswa::join('penilaians', 'siswas.id', '=', 'penilaians.siswa_id')
|
|
->select('siswas.*', 'penilaians.*')
|
|
->get();
|
|
|
|
return view('server-side.validasi-nilai.index', compact(['numb', 'data']));
|
|
}
|
|
|
|
public function feedbackNilaiUjian($siswa_id)
|
|
{
|
|
$jawaban = Jawaban::join('siswas', 'siswas.id', '=', 'jawabans.siswa_id')->where('jawabans.siswa_id', $siswa_id)->first();
|
|
return view('server-side.penilaian.feedback', compact(['jawaban']));
|
|
}
|
|
|
|
public function updateFeedbackNilaiUjian(Request $request, $jawaban_id)
|
|
{
|
|
$request->validate([
|
|
'feedback' => ['required']
|
|
]);
|
|
Jawaban::find($jawaban_id)->update([
|
|
'feedback' => $request->feedback,
|
|
]);
|
|
return redirect()->route('penilaian.ujian')->with('message', 'Berhasil megirim feedback');
|
|
}
|
|
|
|
}
|