<?php namespace App\Http\Controllers; use App\Models\Laporan; use App\Models\Kriteria; use App\Models\Keaktifan; use App\Models\Kehadiran; use App\Models\Penilaian; use App\Models\Alternatif; use App\Models\Tugas; use Illuminate\Http\Request; use PhpParser\Node\Stmt\Catch_; use Illuminate\Support\Facades\DB; class PenilaianController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $penilaians = Penilaian::all(); $alternatifs = Alternatif::all()->sortBy('kodealternatif', SORT_NATURAL); $kriterias = Kriteria::all(); return view('dashboards.penilaian.index', [ 'penilaians' => $penilaians, 'alternatifs' => $alternatifs, 'kriterias' => $kriterias, ]); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { return view('dashboards.penilaian.create'); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function storeauto(Request $request) { $request->validate([ 'id_alternatif' => 'required', 'id_kriteria' => 'required', ]); $kodepr = $request->id_alternatif; $kodekr = $request->id_kriteria; $totalsiswa = Kehadiran::where('kodeprak', $kodepr)->count(); // dd($totalsiswa); $reratatugas = Tugas::where('kodeprak', $kodepr)->avg('rerata'); // dd($reratatugas); $kesimpulankehadiran = Kehadiran::where('kodeprak', $kodepr) ->select(DB::raw('count(*) as col_count, kesimpulan')) ->groupBy('kesimpulan') ->get(); // dd($kesimpulankehadiran); $kesimpulankeaktifan = Keaktifan::where('kodeprak', $kodepr) ->select(DB::raw('count(*) as col_count, kesimpulan')) ->groupBy('kesimpulan') ->get(); $kesimpulanlaporan = Laporan::where('kodeprak', $kodepr) ->select(DB::raw('count(*) as col_count, penglap')) ->groupBy('penglap') ->get(); // dd($kesimpulanlaporan); switch ($kodekr) { case "C1": try { $rerataround = round($reratatugas,2); $altid = Alternatif::where('namaalternatif', $kodepr)->get('idalter'); $kriid = Kriteria::where('kodekriteria', $kodekr)->get('idkrit'); $data[] = [ 'id_alternatif' => $altid[0]['idalter'], 'id_kriteria' => $kriid[0]['idkrit'], 'nilai' => $rerataround, ]; Penilaian::insert($data); } catch (\Illuminate\Database\QueryException $ex) { return redirect()->route('adminIndexPenilaian') ->with('ERROR', 'Ditemukan data terduplikasi, Data Tidak Boleh Sama.'); } break; case "C2": try { if($kesimpulankehadiran[0]['kesimpulan'] == "RAJIN"){ $rajin = $kesimpulankehadiran[0]['col_count']; }else{ $rajin = $kesimpulankehadiran[1]['col_count']; } $rajinpersen = round($rajin / $totalsiswa, 2); $altid = Alternatif::where('namaalternatif', $kodepr)->get('idalter'); $kriid = Kriteria::where('kodekriteria', $kodekr)->get('idkrit'); $data[] = [ 'id_alternatif' => $altid[0]['idalter'], 'id_kriteria' => $kriid[0]['idkrit'], 'nilai' => $rajinpersen, ]; Penilaian::insert($data); } catch (\Illuminate\Database\QueryException $ex) { return redirect()->route('adminIndexPenilaian') ->with('ERROR', 'Ditemukan data terduplikasi, Data Tidak Boleh Sama.'); } break; case "C3": try { if($kesimpulankehadiran[1]['kesimpulan'] == "TIDAK RAJIN"){ $takrajin = $kesimpulankehadiran[1]['col_count']; }else{ $takrajin = $kesimpulankehadiran[0]['col_count']; } $takrajinpersen = round($takrajin / $totalsiswa, 2); $altid = Alternatif::where('namaalternatif', $kodepr)->get('idalter'); $kriid = Kriteria::where('kodekriteria', $kodekr)->get('idkrit'); $data[] = [ 'id_alternatif' => $altid[0]['idalter'], 'id_kriteria' => $kriid[0]['idkrit'], 'nilai' => $takrajinpersen, ]; Penilaian::insert($data); } catch (\Illuminate\Database\QueryException $ex) { return redirect()->route('adminIndexPenilaian') ->with('ERROR', 'Ditemukan data terduplikasi, Data Tidak Boleh Sama.'); } break; case "C4": try { if($kesimpulankeaktifan[0]['kesimpulan'] == "AKTIF"){ $aktif = $kesimpulankeaktifan[0]['col_count']; }else{ $aktif = $kesimpulankeaktifan[1]['col_count']; } $aktifpersen = round($aktif / $totalsiswa, 2); $altid = Alternatif::where('namaalternatif', $kodepr)->get('idalter'); $kriid = Kriteria::where('kodekriteria', $kodekr)->get('idkrit'); $data[] = [ 'id_alternatif' => $altid[0]['idalter'], 'id_kriteria' => $kriid[0]['idkrit'], 'nilai' => $aktifpersen, ]; Penilaian::insert($data); } catch (\Illuminate\Database\QueryException $ex) { return redirect()->route('adminIndexPenilaian') ->with('ERROR', 'Ditemukan data terduplikasi, Data Tidak Boleh Sama.'); } break; case "C5": try { if($kesimpulankeaktifan[1]['kesimpulan'] == "TIDAK AKTIF"){ $takaktif = $kesimpulankeaktifan[1]['col_count']; }else{ $takaktif = $kesimpulankeaktifan[0]['col_count']; } $takaktifpersen = round($takaktif / $totalsiswa, 2); $altid = Alternatif::where('namaalternatif', $kodepr)->get('idalter'); $kriid = Kriteria::where('kodekriteria', $kodekr)->get('idkrit'); $data[] = [ 'id_alternatif' => $altid[0]['idalter'], 'id_kriteria' => $kriid[0]['idkrit'], 'nilai' => $takaktifpersen, ]; Penilaian::insert($data); } catch (\Illuminate\Database\QueryException $ex) { return redirect()->route('adminIndexPenilaian') ->with('ERROR', 'Ditemukan data terduplikasi, Data Tidak Boleh Sama.'); } break; case "C6": try { if($kesimpulanlaporan[0]['penglap'] == "Ya"){ $laporan = $kesimpulanlaporan[0]['col_count']; }else{ $laporan = $kesimpulanlaporan[1]['col_count']; } $kumpullappersen = round($laporan / $totalsiswa, 2); $altid = Alternatif::where('namaalternatif', $kodepr)->get('idalter'); $kriid = Kriteria::where('kodekriteria', $kodekr)->get('idkrit'); $data[] = [ 'id_alternatif' => $altid[0]['idalter'], 'id_kriteria' => $kriid[0]['idkrit'], 'nilai' => $kumpullappersen, ]; Penilaian::insert($data); } catch (\Illuminate\Database\QueryException $ex) { return redirect()->route('adminIndexPenilaian') ->with('ERROR', 'Ditemukan data terduplikasi, Data Tidak Boleh Sama.'); } break; case "C7": try { if($kesimpulanlaporan[1]['penglap'] == "Tidak"){ $taklaporan = $kesimpulanlaporan[1]['col_count']; }else{ $taklaporan = $kesimpulanlaporan[0]['col_count']; } $kumpullappersen = round($taklaporan / $totalsiswa, 2); $altid = Alternatif::where('namaalternatif', $kodepr)->get('idalter'); $kriid = Kriteria::where('kodekriteria', $kodekr)->get('idkrit'); $data[] = [ 'id_alternatif' => $altid[0]['idalter'], 'id_kriteria' => $kriid[0]['idkrit'], 'nilai' => $kumpullappersen, ]; Penilaian::insert($data); } catch (\Illuminate\Database\QueryException $ex) { return redirect()->route('adminIndexPenilaian') ->with('ERROR', 'Ditemukan data terduplikasi, Data Tidak Boleh Sama.'); } break; case "C8": return redirect()->route('adminIndexPenilaian') ->with('ERROR', 'Untuk Kriteria Ini Harus Diisi Manual!'); case "C9": return redirect()->route('adminIndexPenilaian') ->with('ERROR', 'Untuk Kriteria Ini Harus Diisi Manual!'); case "C10": return redirect()->route('adminIndexPenilaian') ->with('ERROR', 'Untuk Kriteria Ini Harus Diisi Manual!'); case "C11": return redirect()->route('adminIndexPenilaian') ->with('ERROR', 'Untuk Kriteria Ini Harus Diisi Manual!'); case "C12": return redirect()->route('adminIndexPenilaian') ->with('ERROR', 'Untuk Kriteria Ini Harus Diisi Manual!'); case "C13": return redirect()->route('adminIndexPenilaian') ->with('ERROR', 'Untuk Kriteria Ini Harus Diisi Manual!'); default: } // try{ // Penilaian::create($request->all()); // } catch(\Illuminate\Database\QueryException $ex){ // return redirect()->route('adminIndexPenilaian') // ->with('ERROR','Ditemukan data terduplikasi, Data Tidak Boleh Sama.'); // } return redirect()->route('adminIndexPenilaian') ->with('success', 'Data Telah Ditambahkan.'); } public function store(Request $request) { $request->validate([ 'id_alternatif' => 'required', 'id_kriteria' => 'required', 'nilai' => 'required' ]); try { Penilaian::create($request->all()); } catch (\Illuminate\Database\QueryException $ex) { return redirect()->route('adminIndexPenilaian') ->with('ERROR', 'Ditemukan data terduplikasi, Data Tidak Boleh Sama.'); } return redirect()->route('adminIndexPenilaian') ->with('success', 'Data Telah Ditambahkan.'); } /** * Display the specified resource. * * @param \App\Alternatif $Penilaian * @return \Illuminate\Http\Response */ public function show(Penilaian $penilaian) { // return view('Penilaians.show',compact('Penilaian')); } /** * Show the form for editing the specified resource. * * @param \App\Alternatif $Penilaian * @return \Illuminate\Http\Response */ public function edit(Penilaian $datapenilaian) { return view('dashboards.penilaian.edit', ['datapenilaian' => $datapenilaian]); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param \App\Alternatif $Penilaian * @return \Illuminate\Http\Response */ public function update(Request $request, Penilaian $datapenilaian) { $request->validate([ 'nilai' => 'required', ]); Penilaian::where('id', $request->idpenilaian) ->update([ 'nilai' => $request->nilai, ]); return redirect()->route('adminIndexPenilaian') ->with('success', 'Data Telah Diperbaharui'); // $datapenilaian->update($request->all()); // return redirect()->route('adminIndexPenilaian') // ->with('success','Data Telah Diperbaharui'); } /** * Remove the specified resource from storage . * * @param \App\Alternatif $Penilaian * @return \Illuminate\Http\Response */ public function destroy(Penilaian $datapenilaian) { $datapenilaian->delete(); return redirect()->route('adminIndexPenilaian') ->with('success', 'Data Telah Dihapus'); } }