From d2cf7e62d764e6b6338bdd417a55426233c38bed Mon Sep 17 00:00:00 2001 From: yuliana dewi Date: Wed, 3 Jan 2024 19:53:13 +0700 Subject: [PATCH] Unfinished Menu Penilaian --- .../PenilaianAlternatifController.php | 26 ++++++- app/Models/Penilaian.php | 27 ++++++++ ...5344_create_penilaian_alternatif_table.php | 38 ++++++++++ .../views/pages/penilaian/form.blade.php | 69 ++++++------------- .../views/pages/penilaian/index.blade.php | 22 +++--- routes/web.php | 1 + 6 files changed, 123 insertions(+), 60 deletions(-) create mode 100644 app/Models/Penilaian.php create mode 100644 database/migrations/2024_01_03_005344_create_penilaian_alternatif_table.php diff --git a/app/Http/Controllers/PenilaianAlternatifController.php b/app/Http/Controllers/PenilaianAlternatifController.php index 44806c6..885bfd5 100644 --- a/app/Http/Controllers/PenilaianAlternatifController.php +++ b/app/Http/Controllers/PenilaianAlternatifController.php @@ -3,14 +3,36 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; +use App\Models\Penilaian; +use App\Models\Alternatif; +use App\Models\Kriteria; +use App\Models\SubKriteria; class PenilaianAlternatifController extends Controller { function index() { - return view('pages.penilaian.index'); + $penilaian = Penilaian::with(['guru','kriteria','subKriteria'])->get(); + return view('pages.penilaian.index',compact('penilaian')); } function create() { - return view('pages.penilaian.form'); + $alternatif = Alternatif::with('alternatif')->get(); + $kriteria = Kriteria::get(); + $subKriteria = SubKriteria::get(); + return view('pages.penilaian.form', compact(['alternatif','kriteria','subKriteria'])); + } + + function store(Request $request) { + $kriteria = $request->id_kriteria; + $subKriteria = $request->id_sub; + + 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->save(); + } } } diff --git a/app/Models/Penilaian.php b/app/Models/Penilaian.php new file mode 100644 index 0000000..dc03256 --- /dev/null +++ b/app/Models/Penilaian.php @@ -0,0 +1,27 @@ +hasOne(Alternatif::class, 'id', 'id_alternatif'); + } + public function kriteria(){ + return $this->hasOne(Kriteria::class, 'id', 'id_kriteria'); + } + public function subKriteria(){ + return $this->hasOne(SubKriteria::class, 'id', 'id_sub'); + } +} 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 new file mode 100644 index 0000000..5ddfb89 --- /dev/null +++ b/database/migrations/2024_01_03_005344_create_penilaian_alternatif_table.php @@ -0,0 +1,38 @@ +id(); + $table->string('periode'); + $table->unsignedBigInteger('id_alternatif'); + $table->foreign('id_alternatif')->references('id')->on('mst_alternatif')->onDelete('restrict')->onUpdate('cascade'); + $table->unsignedBigInteger('id_kriteria'); + $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->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('penilaian_alternatif'); + } +} diff --git a/resources/views/pages/penilaian/form.blade.php b/resources/views/pages/penilaian/form.blade.php index 2560cea..473bfd2 100644 --- a/resources/views/pages/penilaian/form.blade.php +++ b/resources/views/pages/penilaian/form.blade.php @@ -4,26 +4,24 @@ @section('content')
-
+ + @csrf
- +
- - - + @foreach ($alternatif as $alt) + + @endforeach
@@ -32,56 +30,33 @@
- - + + + @foreach ($kriteria as $item) - - - - - + @endforeach
KriteriaNilaiKriteriaSub Kriteria
-
- - -
+
+ + {{ $loop->iteration }}. {{ $item->nama_kriteria }} - - - - -
-
- - -
-
-
-

*Untuk kriteria Daya Tahan, Umur, & Harga

-
-
-
-
- - -

*Untuk layanan Purna Jual

-
-
-
-
- +

*Bobot pada setiap Sub Kriteria

+ @foreach ($subKriteria as $subs) +
+ @endforeach
diff --git a/resources/views/pages/penilaian/index.blade.php b/resources/views/pages/penilaian/index.blade.php index 9926b8d..890a5b4 100644 --- a/resources/views/pages/penilaian/index.blade.php +++ b/resources/views/pages/penilaian/index.blade.php @@ -13,29 +13,29 @@ Tambah Nilai Alternatif
- +
- - - - - + + + + + @foreach ($penilaian as $item) - - - - - + + + + + @endforeach
NoPeriodeAlternatifKriteriaNilaiNoAlternatifKriteriaNilai Action
12023Guru 1Kriteria 1Nilai{{ $loop->iteration }}{{ $item->guru->alternatif['nama_guru'] }}{{ $item->kriteria['nama_kriteria'] }}{{ $item->subKriteria['sub_kriteria'] }}
diff --git a/routes/web.php b/routes/web.php index b3c3bbc..cf1fa91 100644 --- a/routes/web.php +++ b/routes/web.php @@ -84,6 +84,7 @@ Route::middleware(['auth'])->group(function () { Route::prefix('penilaian-alternatif')->group(function () { Route::get('/', [PenilaianAlternatifController::class, 'index'])->name('penilaian_alternatif'); Route::get('/tambah', [PenilaianAlternatifController::class, 'create'])->name('create_penilaian'); + Route::post('/store', [PenilaianAlternatifController::class, 'store'])->name('store_penilaian'); }); Route::prefix('proses-saw')->group(function () { Route::get('/', [PerhitunganController::class, 'index'])->name('proses_saw');