diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php index 0434163..a69f06b 100644 --- a/app/Http/Controllers/Auth/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -8,27 +8,35 @@ use Illuminate\Support\Facades\Auth; class LoginController extends Controller { - public function index(){ + public function index() + { return view('pages.auth.login'); } - public function authenticate(Request $request){ + public function authenticate(Request $request) + { $credentials = $request->validate([ 'username' => ['required'], 'password' => ['required'], ]); - + if (Auth::attempt($credentials)) { $request->session()->regenerate(); - + + // Simpan ID pengguna di sesi + $request->session()->put('user_id', Auth::id()); + return redirect()->intended('dashboard'); } + return back()->with([ 'message' => 'Username atau Password salah.', ]); } - public function logout(Request $request){ + + public function logout(Request $request) + { Auth::logout(); $request->session()->invalidate(); diff --git a/app/Http/Controllers/DashboardController.php b/app/Http/Controllers/DashboardController.php new file mode 100644 index 0000000..376bee2 --- /dev/null +++ b/app/Http/Controllers/DashboardController.php @@ -0,0 +1,19 @@ +orderBy('kode_alternatif', 'ASC')->get(); + $kriteria = Kriteria::get(); + $penilaian = Penilaian::with('subKriteria')->get(); + // return response()->json($alternatif); + + // mencari min max + foreach ($kriteria as $key => $vkriteria) { + foreach ($penilaian as $key_1 => $vpenilaian) { + if ($vkriteria->id == $vpenilaian->id_kriteria) { + if ($vkriteria->sifat == "benefit") { + $minMax[$vkriteria->id][] = $vpenilaian->subKriteria['bobot']; + } elseif ($vkriteria->sifat == "cost") { + $minMax[$vkriteria->id][] = $vpenilaian->subKriteria['bobot']; + } + } + } + } + + // normalisasi + foreach ($penilaian as $key_1 => $vpenilaian) { + foreach ($kriteria as $key => $vkriteria) { + if ($vkriteria->id == $vpenilaian->id_kriteria) { + if ($vkriteria->sifat == "benefit") { //nilai sub_kriteria : nilai maksimal + $normalisasi[$vpenilaian->alternatif->guru['id']][$vkriteria->id] = $vpenilaian->subKriteria['bobot'] / max($minMax[$vkriteria->id]); + } elseif ($vkriteria->sifat == "cost") { //nilai minimal : nilai sub_kriteria + $normalisasi[$vpenilaian->alternatif->guru['id']][$vkriteria->id] = min($minMax[$vkriteria->id]) / $vpenilaian->subKriteria['bobot']; + } + } + } + } + + // perangkingan + foreach ($normalisasi as $key => $vnormalisasi) { + foreach ($kriteria as $key_1 => $vkriteria) { // hasil normalisasi x bobot_kriteria + // Check if the key exists in the $vnormalisasi array + if (isset($vnormalisasi[$vkriteria->id])) { + $rank[$key][] = $vnormalisasi[$vkriteria->id] * $vkriteria->bobot_kriteria; + } else { + // Handle the case when the key is not found (you can skip it or handle it accordingly) + // For example, you might want to assign a default value or log a message. + $rank[$key][] = 0; // Assign a default value + // or + // log_message('error', 'Key not found: ' . $vkriteria->id); + } + } + } + + foreach ($normalisasi as $key => $value) { //total hasil perangkingan + $rank[$key][] = array_sum($rank[$key]); + // Tambahkan logika untuk menentukan status keterangan + if ($rank[$key] >= 100) { + $statusKeterangan[$key] = 'Sangat Baik'; + } elseif ($rank[$key] >= 70 && $rank[$key] < 100) { + $statusKeterangan[$key] = 'Baik'; + } elseif ($rank[$key] >= 20 && $rank[$key] < 70) { + $statusKeterangan[$key] = 'Cukup'; + } else { + $statusKeterangan[$key] = 'Kurang'; + } + } + + arsort($rank); //sortir $rank + + // dd($rank); + return view('pages.hasil_perhitungan.index', compact(['kriteria', 'alternatif', 'penilaian', 'minMax', 'normalisasi', 'rank'])); + } +} diff --git a/app/Http/Controllers/HasilPerhitunganController.php b/app/Http/Controllers/HasilPerhitunganController.php index b8df1a9..ad2aae8 100644 --- a/app/Http/Controllers/HasilPerhitunganController.php +++ b/app/Http/Controllers/HasilPerhitunganController.php @@ -2,9 +2,95 @@ namespace App\Http\Controllers; -use Illuminate\Http\Request; +use App\Models\Alternatif; +use App\Models\Kriteria; +use App\Models\Penilaian; +use Illuminate\Support\Facades\Auth; class HasilPerhitunganController extends Controller { - // + public function index() + { + $user_id = Auth::id(); // Get the current user's ID + + $periode = request()->input('periode'); + $penguji = request()->input('penguji'); + // Retrieve data from the database + $alternatif = Alternatif::with('penilaian.kriteria')->orderBy('kode_alternatif', 'ASC')->get(); + $kriteria = Kriteria::get(); + if ($penguji == null) { + $penilaian = Penilaian::with('subKriteria') + ->when(Auth::user()->roles != "admin", function ($query) use ($user_id) { + return $query->where('id_admin', $user_id); + }) + ->where('periode', $periode) // Tambahkan kondisi where untuk periode + ->get(); + } else { + $penilaian = Penilaian::with('subKriteria') + ->where('id_admin', $penguji) + ->where('periode', $periode) // Tambahkan kondisi where untuk periode + ->get(); + } + + // Calculate min and max values for each criteria + $minMax = []; + foreach ($kriteria as $vkriteria) { + foreach ($penilaian as $vpenilaian) { + if ($vkriteria->id == $vpenilaian->id_kriteria) { + if ($vkriteria->sifat == "benefit") { + $minMax[$vkriteria->id][] = $vpenilaian->subKriteria['bobot']; + } elseif ($vkriteria->sifat == "cost") { + $minMax[$vkriteria->id][] = $vpenilaian->subKriteria['bobot']; + } + } + } + } + + // Perform normalization + $normalisasi = []; + foreach ($penilaian as $vpenilaian) { + foreach ($kriteria as $vkriteria) { + if ($vkriteria->id == $vpenilaian->id_kriteria) { + if ($vkriteria->sifat == "benefit") { + $normalisasi[$vpenilaian->alternatif->guru['id']][$vkriteria->id] = $vpenilaian->subKriteria['bobot'] / max($minMax[$vkriteria->id]); + } elseif ($vkriteria->sifat == "cost") { + $normalisasi[$vpenilaian->alternatif->guru['id']][$vkriteria->id] = min($minMax[$vkriteria->id]) / $vpenilaian->subKriteria['bobot']; + } + } + } + } + + // Perform ranking + $rank = []; + foreach ($normalisasi as $key => $vnormalisasi) { + foreach ($kriteria as $vkriteria) { + if (isset($vnormalisasi[$vkriteria->id])) { + $rank[$key][] = $vnormalisasi[$vkriteria->id] * $vkriteria->bobot_kriteria; + } else { + $rank[$key][] = 0; // Assign a default value + } + } + } + + // Sum up the ranks and determine the status keterangan + $statusKeterangan = []; + foreach ($normalisasi as $key => $value) { + $rank[$key][] = array_sum($rank[$key]); + if ($rank[$key] >= 100) { + $statusKeterangan[$key] = 'Sangat Baik'; + } elseif ($rank[$key] >= 70 && $rank[$key] < 100) { + $statusKeterangan[$key] = 'Baik'; + } elseif ($rank[$key] >= 20 && $rank[$key] < 70) { + $statusKeterangan[$key] = 'Cukup'; + } else { + $statusKeterangan[$key] = 'Kurang'; + } + } + + // Sort the ranks + arsort($rank); + + // Pass data to the view + return view('pages.hasil_perhitungan.index', compact('kriteria', 'alternatif', 'penilaian', 'minMax', 'normalisasi', 'rank')); + } } diff --git a/app/Http/Controllers/PenilaianAlternatifController.php b/app/Http/Controllers/PenilaianAlternatifController.php index 0243b95..4802567 100644 --- a/app/Http/Controllers/PenilaianAlternatifController.php +++ b/app/Http/Controllers/PenilaianAlternatifController.php @@ -7,32 +7,162 @@ use App\Models\Penilaian; use App\Models\Alternatif; use App\Models\Kriteria; use App\Models\SubKriteria; +use Illuminate\Support\Facades\Auth; class PenilaianAlternatifController extends Controller { - function index() { - $penilaian = Penilaian::with(['alternatif','kriteria','subKriteria'])->get(); - return view('pages.penilaian.index',compact('penilaian')); + function index(Request $request) + { + $selectedPeriode = $request->periode; + $user_id = Auth::id(); // Get the current user's ID + $penguji = request()->input('penguji'); + if ($penguji == null) { + $query = Penilaian::with(['alternatif', 'kriteria', 'subKriteria']) + ->when(Auth::user()->roles != "admin", function ($query) use ($user_id) { + return $query->where('id_admin', $user_id); + }) + ->groupBy('periode', 'id_alternatif') + ->selectRaw('MAX(id) as id, periode, id_alternatif'); + } else { + $query = Penilaian::with(['alternatif', 'kriteria', 'subKriteria']) + ->where('id_admin', $penguji) + ->groupBy('periode', 'id_alternatif') + ->selectRaw('MAX(id) as id, periode, id_alternatif'); + } + if ($selectedPeriode) { + $query->where('periode', $selectedPeriode); + } + + $penilaian = $query->orderBy('periode', 'asc') // Mengurutkan berdasarkan periode secara ascending + ->get(); + + $periode = Penilaian::distinct()->pluck('periode'); + + return view('pages.penilaian.index', compact('penilaian', 'periode', 'selectedPeriode')); } - function create() { + + function create() + { $alternatif = Alternatif::with('guru')->get(); $kriteria = Kriteria::get(); $subKriteria = SubKriteria::get(); - return view('pages.penilaian.form', compact(['alternatif','kriteria','subKriteria'])); + // dd($alternatif); + return view('pages.penilaian.form', compact(['alternatif', 'kriteria', 'subKriteria'])); } - function store(Request $request) { - $kriteria = $request->id_kriteria; - $subKriteria = $request->id_sub; + public function store(Request $request) + { + + if (!$request->filled(['periode', 'id_alternatif', 'id_kriteria', 'id_sub'])) { + if (session()->get('user_id') == 1) { + return redirect()->route('penilaian_alternatif', ['penguji' => 1])->with('error', 'Ada data yang masih kosong!'); + } else { + return redirect()->route('penilaian_alternatif')->with('error', 'Ada data yang masih kosong!'); + } + } + // Menguji apakah ada penilaian yang sudah ada untuk id_alternatif dan periode yang sama + $existingPenilaian = Penilaian::where('id_alternatif', $request->id_alternatif) + ->where('periode', $request->periode) + ->where('id_admin', session()->get('user_id')) + ->exists(); + + // Jika penilaian sudah ada untuk id_alternatif dan periode yang sama, berikan pesan kesalahan + if ($existingPenilaian) { + return redirect()->route('penilaian_alternatif')->with('error', 'Penilaian untuk id_alternatif dan periode yang sama sudah ada.'); + } + + $kriteria = $request->id_kriteria; + $subKriteria = $request->id_sub; + + for ($i = 0; $i < count($kriteria); $i++) { + // Memeriksa apakah ada data yang kosong di dalam array kriteria dan subkriteria + if (empty($kriteria[$i]) || empty($subKriteria[$i])) { + return redirect()->route('penilaian_alternatif')->with('error', 'Ada data kriteria atau subkriteria yang masih kosong!'); + } - for ($i=0; $i < count($kriteria); $i++) { $penilaian = new Penilaian; - $penilaian->periode = $request->periode; + $penilaian->periode = $request->periode; $penilaian->id_alternatif = $request->id_alternatif; - $penilaian->id_kriteria = $kriteria[$i]; - $penilaian->id_sub = $subKriteria[$i]; + $penilaian->id_kriteria = $kriteria[$i]; + $penilaian->id_sub = $subKriteria[$i]; + $penilaian->id_admin = session()->get('user_id'); $penilaian->save(); } + + // Redirect to a view or route after saving the data + if (session()->get('user_id') == 1) { + return redirect()->route('penilaian_alternatif', ['penguji' => 1])->with('success', 'Penilaian updated successfully'); + } else { + return redirect()->route('penilaian_alternatif')->with('success', 'Penilaian updated successfully'); + } + } + + + public function edit($kode_alternatif, $periode) + { + // Find the Penilaian record based on the kode_alternatif and periode + $penilaian = Penilaian::whereHas('alternatif', function ($query) use ($kode_alternatif) { + $query->where('kode_alternatif', $kode_alternatif); + }) + ->where('periode', $periode) + ->get(); + + // Retrieve all alternatif, kriteria, and subkriteria + $alternatif = Alternatif::with('guru')->get(); + $kriteria = Kriteria::get(); + $subKriteria = SubKriteria::get(); + // dd($penilaian); + return view('pages.penilaian.edit', compact('penilaian', 'alternatif', 'kriteria', 'subKriteria')); + } + + public function delete($kode_alternatif, $periode) + { + try { + // Find all Penilaian records based on kode_alternatif and periode + $penilaians = Penilaian::whereHas('alternatif', function ($query) use ($kode_alternatif) { + $query->where('kode_alternatif', $kode_alternatif); + }) + ->where('periode', $periode) + ->get(); + + if ($penilaians->isEmpty()) { + return response()->json(['message' => 'No Penilaian found for the provided kode_alternatif and periode'], 404); + } + + // Delete all found records + foreach ($penilaians as $penilaian) { + $penilaian->delete(); + } + + return response()->json(['message' => 'Penilaian deleted successfully']); + } catch (\Exception $e) { + return response()->json(['message' => 'Error deleting penilaian', 'error' => $e->getMessage()], 500); + } + } + + + public function update(Request $request, $kode_alternatif, $periode) + { + $kriteria = $request->id_kriteria; + $subKriteria = $request->id_sub; + + // Pastikan untuk menambahkan klausa where pada metode where di bawah ini + Penilaian::where('id_alternatif', $kode_alternatif) + ->where('periode', $periode) + ->delete(); // Hapus penilaian sebelumnya + + for ($i = 0; $i < count($kriteria); $i++) { + $penilaian = new Penilaian; + $penilaian->periode = $request->periode; + $penilaian->id_alternatif = $request->id_alternatif; + $penilaian->id_kriteria = $kriteria[$i]; + $penilaian->id_sub = $subKriteria[$i]; + $penilaian->id_admin = session()->get('user_id'); + $penilaian->save(); + } + + // Redirect to a view or route after saving the data + return redirect()->route('penilaian_alternatif')->with('success', 'Penilaian updated successfully'); } } diff --git a/app/Http/Controllers/PerhitunganController copy 2.php b/app/Http/Controllers/PerhitunganController copy 2.php new file mode 100644 index 0000000..bbc4ec8 --- /dev/null +++ b/app/Http/Controllers/PerhitunganController copy 2.php @@ -0,0 +1,69 @@ +orderBy('kode_alternatif', 'ASC')->get(); + $kriteria = Kriteria::get(); + $penilaian = Penilaian::with('subKriteria')->get(); + // return response()->json($alternatif); + + // mencari min max + foreach ($kriteria as $key => $vkriteria) { + foreach ($penilaian as $key_1 => $vpenilaian) { + if ($vkriteria->id == $vpenilaian->id_kriteria) { + if ($vkriteria->sifat == "benefit") { + $minMax[$vkriteria->id][] = $vpenilaian->subKriteria['bobot']; + } elseif ($vkriteria->sifat == "cost") { + $minMax[$vkriteria->id][] = $vpenilaian->subKriteria['bobot']; + } + } + } + } + + // normalisasi + foreach ($penilaian as $key_1 => $vpenilaian) { + foreach ($kriteria as $key => $vkriteria) { + if ($vkriteria->id == $vpenilaian->id_kriteria) { + if ($vkriteria->sifat == "benefit") { //nilai sub_kriteria : nilai maksimal + $normalisasi[$vpenilaian->alternatif->guru['nama_guru']][$vkriteria->id] = $vpenilaian->subKriteria['bobot'] / max($minMax[$vkriteria->id]); + } elseif ($vkriteria->sifat == "cost") { //nilai minimal : nilai sub_kriteria + $normalisasi[$vpenilaian->alternatif->guru['nama_guru']][$vkriteria->id] = min($minMax[$vkriteria->id]) / $vpenilaian->subKriteria['bobot']; + } + } + } + } + + // perangkingan + foreach ($normalisasi as $key => $vnormalisasi) { + foreach ($kriteria as $key_1 => $vkriteria) { // hasil normalisasi x bobot_kriteria + // Check if the key exists in the $vnormalisasi array + if (isset($vnormalisasi[$vkriteria->id])) { + $rank[$key][] = $vnormalisasi[$vkriteria->id] * $vkriteria->bobot_kriteria; + } else { + // Handle the case when the key is not found (you can skip it or handle it accordingly) + // For example, you might want to assign a default value or log a message. + $rank[$key][] = 0; // Assign a default value + // or + // log_message('error', 'Key not found: ' . $vkriteria->id); + } + } + } + + foreach ($normalisasi as $key => $value) { //total hasil perangkingan + $rank[$key][] = array_sum($rank[$key]); + } + arsort($rank); //sortir $rank + + // dd($rank); + return view('pages.proses_penilaian.index', compact(['kriteria', 'alternatif', 'penilaian', 'minMax', 'normalisasi', 'rank'])); + } +} diff --git a/app/Http/Controllers/PerhitunganController.php b/app/Http/Controllers/PerhitunganController.php index 450e13b..eca2fe5 100644 --- a/app/Http/Controllers/PerhitunganController.php +++ b/app/Http/Controllers/PerhitunganController.php @@ -6,19 +6,49 @@ use Illuminate\Http\Request; use App\Models\Kriteria; use App\Models\Alternatif; use App\Models\Penilaian; +use Illuminate\Support\Facades\Auth; class PerhitunganController extends Controller { - function index() + public function index() { - $alternatif = Alternatif::with('penilaian.kriteria')->orderBy('kode_alternatif', 'ASC')->get(); + $user_id = Auth::id(); + $periode = request()->input('periode'); + $penguji = request()->input('penguji'); + if ($penguji == null) { + $alternatif = Alternatif::with(['penilaian' => function ($query) use ($user_id, $periode) { + $query->when(Auth::user()->roles != "admin", function ($query) use ($user_id) { + $query->where('id_admin', $user_id); + }); + $query->where('periode', $periode); // Kondisi where untuk periode + }])->orderBy('kode_alternatif', 'ASC')->get(); + } else { + $alternatif = Alternatif::with(['penilaian' => function ($query) use ($penguji, $periode) { + $query->where('id_admin', $penguji); + $query->where('periode', $periode); // Kondisi where untuk periode + }])->orderBy('kode_alternatif', 'ASC')->get(); + } + // dd($alternatif); $kriteria = Kriteria::get(); - $penilaian = Penilaian::with('subKriteria')->get(); - // return response()->json($alternatif); + if ($penguji == null) { + $penilaian = Penilaian::with('subKriteria') + ->when(Auth::user()->roles != "admin", function ($query) use ($user_id) { + return $query->where('id_admin', $user_id); + }) + ->where('periode', $periode) // Tambahkan kondisi where untuk periode + ->get(); + } else { + $penilaian = Penilaian::with('subKriteria') + ->where('id_admin', $penguji) + ->where('periode', $periode) + ->get(); + } - // mencari min max - foreach ($kriteria as $key => $vkriteria) { - foreach ($penilaian as $key_1 => $vpenilaian) { + + // Calculate min and max values for each criteria + $minMax = []; + foreach ($kriteria as $vkriteria) { + foreach ($penilaian as $vpenilaian) { if ($vkriteria->id == $vpenilaian->id_kriteria) { if ($vkriteria->sifat == "benefit") { $minMax[$vkriteria->id][] = $vpenilaian->subKriteria['bobot']; @@ -29,41 +59,42 @@ class PerhitunganController extends Controller } } - // normalisasi - foreach ($penilaian as $key_1 => $vpenilaian) { - foreach ($kriteria as $key => $vkriteria) { + // Perform normalization + $normalisasi = []; + foreach ($penilaian as $vpenilaian) { + foreach ($kriteria as $vkriteria) { if ($vkriteria->id == $vpenilaian->id_kriteria) { - if ($vkriteria->sifat == "benefit") { //nilai sub_kriteria : nilai maksimal + if ($vkriteria->sifat == "benefit") { $normalisasi[$vpenilaian->alternatif->guru['nama_guru']][$vkriteria->id] = $vpenilaian->subKriteria['bobot'] / max($minMax[$vkriteria->id]); - } elseif ($vkriteria->sifat == "cost") { //nilai minimal : nilai sub_kriteria + } elseif ($vkriteria->sifat == "cost") { $normalisasi[$vpenilaian->alternatif->guru['nama_guru']][$vkriteria->id] = min($minMax[$vkriteria->id]) / $vpenilaian->subKriteria['bobot']; } } } } - // perangkingan + // Perform ranking + $rank = []; foreach ($normalisasi as $key => $vnormalisasi) { - foreach ($kriteria as $key_1 => $vkriteria) { // hasil normalisasi x bobot_kriteria - // Check if the key exists in the $vnormalisasi array + + foreach ($kriteria as $vkriteria) { if (isset($vnormalisasi[$vkriteria->id])) { $rank[$key][] = $vnormalisasi[$vkriteria->id] * $vkriteria->bobot_kriteria; } else { - // Handle the case when the key is not found (you can skip it or handle it accordingly) - // For example, you might want to assign a default value or log a message. $rank[$key][] = 0; // Assign a default value - // or - // log_message('error', 'Key not found: ' . $vkriteria->id); } } } - foreach ($normalisasi as $key => $value) { //total hasil perangkingan + // Calculate total ranking for each alternative + foreach ($normalisasi as $key => $value) { $rank[$key][] = array_sum($rank[$key]); } - // asort($rank); //sortir $rank + // dd($kriteria); + // Sort the ranking + // arsort($rank); - // dd($minMax); - return view('pages.proses_penilaian.index', compact(['kriteria', 'alternatif', 'penilaian', 'minMax', 'normalisasi', 'rank'])); + // Pass data to the view + return view('pages.proses_penilaian.index', compact('kriteria', 'alternatif', 'penilaian', 'minMax', 'normalisasi', 'rank')); } } diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 2cef66c..7df48ba 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -63,5 +63,6 @@ class Kernel extends HttpKernel 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, 'admin' => \App\Http\Middleware\IsAdmin::class, + 'penguji' => \App\Http\Middleware\PengujiMiddleware::class, ]; } diff --git a/app/Http/Middleware/PengujiMiddleware.php b/app/Http/Middleware/PengujiMiddleware.php new file mode 100644 index 0000000..15fa08a --- /dev/null +++ b/app/Http/Middleware/PengujiMiddleware.php @@ -0,0 +1,19 @@ +roles == "penguji" || Auth::user() && Auth::user()->roles == "admin") { + return $next($request); + } + + return redirect()->route('login')->with('error', 'Silahkan login sebagai penguji terlebih dahulu!'); + } +} diff --git a/app/Models/Penilaian.php b/app/Models/Penilaian.php index 11d4ae1..3ece205 100644 --- a/app/Models/Penilaian.php +++ b/app/Models/Penilaian.php @@ -12,7 +12,7 @@ class Penilaian extends Model protected $table = 'penilaian_alternatif'; protected $fillable = [ - 'periode', 'id_alternatif', 'id_kriteria', 'id_sub', + 'periode', 'id_alternatif', 'id_kriteria', 'id_sub','id_admin' ]; public function alternatif(){ diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 90bee20..065b07b 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -26,5 +26,6 @@ class AppServiceProvider extends ServiceProvider { config(['app.locale' => 'id']); Carbon::setLocale('id'); + $this->app->register(SidebarComposerServiceProvider::class); } } diff --git a/app/Providers/SidebarComposerServiceProvider.php b/app/Providers/SidebarComposerServiceProvider.php new file mode 100644 index 0000000..bb770b8 --- /dev/null +++ b/app/Providers/SidebarComposerServiceProvider.php @@ -0,0 +1,37 @@ +pluck('periode'); + + $penguji = User::get(); + + $view->with('periode', $periode)->with('penguji', $penguji); + }); + } +} diff --git a/database/migrations/2024_01_03_005344_create_penilaian_alternatif_table.php b/database/migrations/2024_01_03_005344_create_penilaian_alternatif_table.php index 5ddfb89..9d08590 100644 --- a/database/migrations/2024_01_03_005344_create_penilaian_alternatif_table.php +++ b/database/migrations/2024_01_03_005344_create_penilaian_alternatif_table.php @@ -22,6 +22,7 @@ class CreatePenilaianAlternatifTable extends Migration $table->foreign('id_kriteria')->references('id')->on('mst_kriteria')->onDelete('restrict')->onUpdate('cascade'); $table->unsignedBigInteger('id_sub'); $table->foreign('id_sub')->references('id')->on('mst_sub_kriteria')->onDelete('restrict')->onUpdate('cascade'); + $table->integer('id_admin'); $table->timestamps(); }); } diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index a01afc1..74f49ec 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -15,7 +15,8 @@ class DatabaseSeeder extends Seeder $this->call([ UsersSeeder::class, KriteriaSeeder::class, - SubKriteriaSeeder::class + SubKriteriaSeeder::class, + GuruSeeder::class ]); } } diff --git a/database/seeders/GuruSeeder.php b/database/seeders/GuruSeeder.php new file mode 100644 index 0000000..0b4c779 --- /dev/null +++ b/database/seeders/GuruSeeder.php @@ -0,0 +1,57 @@ + 'Guru ' . ($i + 1), + 'gender' => $i % 2 == 0 ? 'Laki-laki' : 'Perempuan', + 'nipa' => Str::random(10), + 'tempat_lahir' => 'Tempat Lahir ' . ($i + 1), + 'tanggal_lahir' => now()->subYears(rand(20, 50)), + 'nuptk' => Str::random(16), + 'nrg' => Str::random(16), + 'jns_guru' => 'Jenis Guru ' . ($i + 1), + 'tugas' => 'Tugas Guru ' . ($i + 1), + 'tambahan' => 'Tambahan Guru ' . ($i + 1), + 'ijazah' => 'IJAZAH ' . ($i + 1), + 'tahun_lulus' => rand(1990, 2020), + 'pt' => 'PT ' . ($i + 1), + 'fakultas' => 'Fakultas ' . ($i + 1), + 'jurusan' => 'Jurusan ' . ($i + 1), + 'prodi' => 'Prodi ' . ($i + 1), + 'akta_mengajar' => 'Akta Mengajar ' . ($i + 1), + 'jalan' => 'Jalan ' . ($i + 1), + 'rt' => rand(1, 10), + 'rw' => rand(1, 10), + 'dusun' => 'Dusun ' . ($i + 1), + 'kelurahan' => 'Kelurahan ' . ($i + 1), + 'kecamatan' => 'Kecamatan ' . ($i + 1), + 'kabupaten' => 'Kabupaten ' . ($i + 1), + 'kodepos' => 'Kodepos ' . ($i + 1), + 'nohp' => '08123456789', + 'nohp2' => '08123456789', + 'created_at' => now(), + 'updated_at' => now(), + ]; + } + + // Insert dummy data into mst_guru table + DB::table('mst_guru')->insert($data); + } +} diff --git a/resources/views/component/navbar.blade.php b/resources/views/component/navbar.blade.php index 496b435..1e96705 100644 --- a/resources/views/component/navbar.blade.php +++ b/resources/views/component/navbar.blade.php @@ -1,33 +1,24 @@ -