128 lines
3.7 KiB
PHP
128 lines
3.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Kriteria;
|
|
use App\Models\Penilaian;
|
|
use App\Models\Alternatif;
|
|
use App\Models\Subkriteria;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
class PenilaianController extends Controller
|
|
{
|
|
/**
|
|
* Display a listing of the resource.
|
|
*/
|
|
public function index()
|
|
{
|
|
$no = 1;
|
|
$kriteria = Kriteria::where('status', 'Aktif')->with('SubKriteria')->get();
|
|
$subkriteria = Subkriteria::all();
|
|
$subkriteria = Subkriteria::whereHas('kriteria', function($query) {
|
|
$query->where('status', 'Aktif');
|
|
})->get();
|
|
$alternatif = Alternatif::where('id_mahasiswa', Auth::user()->id)->orderBy('id')->get();
|
|
$nilai = Penilaian::all();
|
|
|
|
for ($i = 0; $i < count($alternatif); $i++) {
|
|
$penilaian = Penilaian::where('id_alternatif', $alternatif[$i]->id)->orderby('id_kriteria')->get();
|
|
if (count($penilaian) != 0) {
|
|
$alternatif[$i]->penilaian = $penilaian;
|
|
} else {
|
|
$alternatif[$i]->penilaian = "null";
|
|
}
|
|
}
|
|
|
|
return view('penilaian', compact('no', 'kriteria', 'subkriteria', 'alternatif', 'penilaian'));
|
|
}
|
|
|
|
/**
|
|
* Store a newly created resource in storage.
|
|
*/
|
|
public function store(Request $request, $id)
|
|
{
|
|
$kriteria = Kriteria::where('status', 'Aktif')->orderby('id')->get();
|
|
|
|
// Cek apakah request memiliki data untuk setiap kriteria
|
|
$dataExist = false;
|
|
foreach ($kriteria as $k) {
|
|
$idk = $k->id;
|
|
if ($request->has($idk) && $request->filled($idk)) {
|
|
$dataExist = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!$dataExist) {
|
|
// Jika tidak ada data, tampilkan toast_error
|
|
return redirect('penilaian')->with('toast_error', 'Penilaian Alternatif Gagal Ditambahkan');
|
|
}
|
|
|
|
$cek = Penilaian::where('id_alternatif', $id)->get();
|
|
|
|
if (count($cek) == 0) {
|
|
foreach ($kriteria as $k) {
|
|
$idk = $k->id;
|
|
|
|
Penilaian::create([
|
|
'id_alternatif' => $id,
|
|
'id_kriteria' => $k->id,
|
|
'nilai' => $request->$idk,
|
|
]);
|
|
}
|
|
return redirect('penilaian')->with('toast_success', 'Penilaian Alternatif Berhasil Ditambahkan.');
|
|
} else {
|
|
return back();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Display the specified resource.
|
|
*/
|
|
public function show(string $id)
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Update the specified resource in storage.
|
|
*/
|
|
public function update(Request $request, $id)
|
|
{
|
|
$kriteria = Kriteria::where('status', 'Aktif')->orderby('id')->get();
|
|
|
|
// Cek apakah request memiliki data untuk setiap kriteria
|
|
$dataExist = false;
|
|
foreach ($kriteria as $k) {
|
|
$idk = $k->id;
|
|
if ($request->has($idk) && $request->filled($idk)) {
|
|
$dataExist = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!$dataExist) {
|
|
// Jika tidak ada data, tampilkan toast_error
|
|
return redirect('penilaian')->with('toast_error', 'Tidak Ada Perubahan Data');
|
|
}
|
|
|
|
foreach ($kriteria as $k) {
|
|
$idk = $k->id;
|
|
Penilaian::where('id_alternatif', $id)->where('id_kriteria', $k->id)->update([
|
|
'nilai' => $request->$idk
|
|
]);
|
|
}
|
|
|
|
return redirect('penilaian')->with('toast_success', 'Perubahan Berhasil Disimpan.');
|
|
}
|
|
|
|
/**
|
|
* Remove the specified resource from storage.
|
|
*/
|
|
public function destroy(string $id)
|
|
{
|
|
//
|
|
}
|
|
}
|