From de05e8ac53526c955b5ffacca6fe00f34129f0c7 Mon Sep 17 00:00:00 2001 From: yulianadewi18 Date: Sat, 18 Nov 2023 16:34:42 +0800 Subject: [PATCH] add data subkriteria --- .../Controllers/DataAlternatifController.php | 65 +++++++++- .../Controllers/DataKriteriaController.php | 2 +- .../Controllers/DataSubKriteriaController.php | 83 ++++++++++++ app/Http/Controllers/MstGuruController.php | 5 +- app/Models/Alternatif.php | 17 +++ app/Models/Guru.php | 47 +------ app/Models/SubKriteria.php | 17 +++ app/Models/gurumodel.php | 2 +- ...1_17_083305_create_mst_kriteria_table.php} | 1 + ..._083429_create_mst_sub_kriteria_table.php} | 8 +- database/seeders/DatabaseSeeder.php | 5 +- resources/views/component/sidebar.blade.php | 4 +- .../pages/data_alternatif/form.blade.php | 51 +++++--- .../pages/data_alternatif/index.blade.php | 122 +++++++++++++----- .../views/pages/data_kriteria/form.blade.php | 33 ++--- .../pages/data_sub_kriteria/form.blade.php | 54 ++++++++ .../pages/data_sub_kriteria/index.blade.php | 103 +++++++++++++++ routes/web.php | 26 +++- 18 files changed, 518 insertions(+), 127 deletions(-) create mode 100644 app/Http/Controllers/DataSubKriteriaController.php create mode 100644 app/Models/Alternatif.php create mode 100644 app/Models/SubKriteria.php rename database/migrations/{2023_07_06_082030_create_mst_kriteria_table.php => 2023_11_17_083305_create_mst_kriteria_table.php} (95%) rename database/migrations/{2023_09_21_080240_create_gurumodels_table.php => 2023_11_17_083429_create_mst_sub_kriteria_table.php} (62%) create mode 100644 resources/views/pages/data_sub_kriteria/form.blade.php create mode 100644 resources/views/pages/data_sub_kriteria/index.blade.php diff --git a/app/Http/Controllers/DataAlternatifController.php b/app/Http/Controllers/DataAlternatifController.php index 7b24578..4f57cc2 100644 --- a/app/Http/Controllers/DataAlternatifController.php +++ b/app/Http/Controllers/DataAlternatifController.php @@ -2,15 +2,76 @@ namespace App\Http\Controllers; +use App\Models\Alternatif; use Illuminate\Http\Request; +use DataTables; class DataAlternatifController extends Controller { - function index() { - return view('pages.data_alternatif.index'); + function index(Request $request) { + $data_alternatif = Alternatif::get(); + if ($request->ajax()) { + $fetchAll = DataTables::of($data_alternatif) + ->addIndexColumn() + ->addColumn('action', function ($data) { + return' + Edit + + '; + }) + ->rawColumns(['action']) + ->make(true); + return $fetchAll; + } + return view('pages.data_alternatif.index', compact('data_alternatif')); } function create() { return view('pages.data_alternatif.form'); } + + function store(Request $request) { + $request->session()->flash('kode_alternatif', $request->kode_alternatif); + $request->session()->flash('nama_alternatif', $request->nama_alternatif); + + $data = $request->validate([ + 'kode_alternatif' => 'required|unique:mst_kriteria', + 'nama_alternatif' => 'required', + + ],[ + 'kode_alternatif.required' => 'Kode alternatif wajib diisi', + 'kode_alternatif.unique' => 'Kode Alternatif sudah terpakai', + 'nama_alternatif.required' => 'Nama alternatif wajib diisi', + ]); + + Alternatif::create($data); + return redirect('/data-alternatif')->with('success', 'Berhasil tambah alternatif baru.'); + } + + function edit($id) { + $alternatif = Alternatif::find($id); + return view('pages.data_alternatif.form',compact('alternatif')); + } + + function update(Request $request, $id) { + $data = $request->validate([ + 'kode_alternatif' => 'required|unique:mst_kriteria', + 'nama_alternatif' => 'required', + + ],[ + 'kode_alternatif.required' => 'Kode alternatif wajib diisi', + 'kode_alternatif.unique' => 'Kode alternatif sudah terpakai', + 'nama_alternatif.required' => 'Nama alternatif wajib diisi', + ]); + + Alternatif::find($id)->update($data); + return redirect('/data-alternatif')->with('success', 'Data berhasil Update.'); + } + + function destroy($id) { + $alternatif = Alternatif::find($id); + $alternatif->delete(); + + return response('Data berhasil dihapus.', 200); + } } diff --git a/app/Http/Controllers/DataKriteriaController.php b/app/Http/Controllers/DataKriteriaController.php index 31c46f8..fac4fa3 100644 --- a/app/Http/Controllers/DataKriteriaController.php +++ b/app/Http/Controllers/DataKriteriaController.php @@ -58,7 +58,7 @@ class DataKriteriaController extends Controller function update(Request $request, $id) { $data = $request->validate([ - 'kode_kriteria' => 'required|unique:mst_kriteria,kode_kriteria', + 'kode_kriteria' => 'required|unique:mst_kriteria,id', 'nama_kriteria' => 'required', 'bobot_kriteria' => 'required', ],[ diff --git a/app/Http/Controllers/DataSubKriteriaController.php b/app/Http/Controllers/DataSubKriteriaController.php new file mode 100644 index 0000000..932273d --- /dev/null +++ b/app/Http/Controllers/DataSubKriteriaController.php @@ -0,0 +1,83 @@ +ajax()) { + $fetchAll = DataTables::of($data_sub_kriteria) + ->addIndexColumn() + ->addColumn('action', function ($data) { + return ' + Edit + + '; + }) + ->rawColumns(['action']) + ->make(true); + return $fetchAll; + } + return view('pages.data_sub_kriteria.index', compact('data_sub_kriteria')); + } + + function create() + { + return view('pages.data_sub_kriteria.form'); + } + + function store(Request $request) + { + $request->session()->flash('sub_kriteria', $request->sub_kriteria); + $request->session()->flash('bobot', $request->bobot); + + + $data = $request->validate([ + 'sub_kriteria' => 'required|unique:mst_sub_kriteria', + 'bobot' => 'required', + ], [ + 'sub_kriteria.required' => 'Kode Sub Kriteria wajib diisi', + 'sub_kriteria.unique' => 'Kode Sub Kriteria sudah terpakai', + 'bobot.required' => 'Bobot Sub Kriteria wajib diisi', + ]); + + SubKriteria::create($data); + return redirect('/data-sub-kriteria')->with('success', 'Berhasil tambah sub kriteria baru.'); + } + + function edit($id) + { + $subkriteria = SubKriteria::find($id); + return view('pages.data_sub_kriteria.form', compact('subkriteria')); + } + + function update(Request $request, $id) + { + $data = $request->validate([ + 'sub_kriteria' => 'required|unique:mst_sub_kriteria,id', + 'bobot' => 'required', + ], [ + 'sub_kriteria.required' => 'Kode Sub Kriteria wajib diisi', + 'sub_kriteria.unique' => 'Kode Sub Kriteria sudah terpakai', + 'bobot.required' => 'Bobot Sub Kriteria wajib diisi', + ]); + + SubKriteria::find($id)->update($data); + return redirect('/data-sub-kriteria')->with('success', 'Data berhasil Update.'); + } + + function destroy($id) + { + $subkriteria = SubKriteria::find($id); + $subkriteria->delete(); + + return response('Data berhasil dihapus.', 200); + } +} diff --git a/app/Http/Controllers/MstGuruController.php b/app/Http/Controllers/MstGuruController.php index bc42f52..a7ada2f 100644 --- a/app/Http/Controllers/MstGuruController.php +++ b/app/Http/Controllers/MstGuruController.php @@ -23,12 +23,11 @@ class MstGuruController extends Controller public function edit($id) { $guru = Guru::findOrFail($id); - $nilai = gurumodel::where('nama', $id)->get(); + $nilai = gurumodel::where('nipa', $id)->get(); $dataView = $this->getDataInsert(); // dd($nilai); return view('pages.mst_guru.edit', compact('guru', 'dataView', 'nilai')); } - public function delete($id) { @@ -36,7 +35,6 @@ public function edit($id) if ($guru) { $guru->delete(); - // Lanjutkan dengan penghapusan lain atau tindakan yang sesuai return redirect()->route('guru.index')->with('success', 'Data guru berhasil dihapus.'); } else { // Handle kasus di mana data tidak ditemukan @@ -45,4 +43,5 @@ public function edit($id) } } + \ No newline at end of file diff --git a/app/Models/Alternatif.php b/app/Models/Alternatif.php new file mode 100644 index 0000000..f17c198 --- /dev/null +++ b/app/Models/Alternatif.php @@ -0,0 +1,17 @@ +where('id_role', $role_id)->get(); - } - - public function getAllGuru() - { - return $this->all(); - } - - public function insertGuru($data) - { - return $this->create($data); - } - - public function updateGuru($id, $data) - { - return $this->where('nama', $id)->update($data); - } - - public function deleteGuru($id) - { - return $this->where('nama', $id)->delete(); - } - - public function getGurusSelect($role_id) - { - return $this->where('id_role', $role_id)->get(); - } - - public function getLastGuruID() - { - return $this->select('nama')->orderBy('nama', 'DESC')->first(); - } -} + protected $table = 'mst_kriteria'; + + protected $fillable = [ + 'kode_kriteria', 'nama_kriteria', 'bobot_kriteria', + ]; +} diff --git a/app/Models/SubKriteria.php b/app/Models/SubKriteria.php new file mode 100644 index 0000000..8a6b0ac --- /dev/null +++ b/app/Models/SubKriteria.php @@ -0,0 +1,17 @@ +where('nama', $id)->update($data); + return $this->where('nipa', $id)->update($data); } public function deleteGuru($id) diff --git a/database/migrations/2023_07_06_082030_create_mst_kriteria_table.php b/database/migrations/2023_11_17_083305_create_mst_kriteria_table.php similarity index 95% rename from database/migrations/2023_07_06_082030_create_mst_kriteria_table.php rename to database/migrations/2023_11_17_083305_create_mst_kriteria_table.php index d469d7b..1211d22 100644 --- a/database/migrations/2023_07_06_082030_create_mst_kriteria_table.php +++ b/database/migrations/2023_11_17_083305_create_mst_kriteria_table.php @@ -17,6 +17,7 @@ class CreateMstKriteriaTable extends Migration $table->id(); $table->string('kode_kriteria'); $table->string('nama_kriteria'); + $table->string('sifat'); $table->integer('bobot_kriteria'); $table->timestamps(); }); diff --git a/database/migrations/2023_09_21_080240_create_gurumodels_table.php b/database/migrations/2023_11_17_083429_create_mst_sub_kriteria_table.php similarity index 62% rename from database/migrations/2023_09_21_080240_create_gurumodels_table.php rename to database/migrations/2023_11_17_083429_create_mst_sub_kriteria_table.php index e99d9c0..4288bbd 100644 --- a/database/migrations/2023_09_21_080240_create_gurumodels_table.php +++ b/database/migrations/2023_11_17_083429_create_mst_sub_kriteria_table.php @@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateGurumodelsTable extends Migration +class CreateMstSubKriteriaTable extends Migration { /** * Run the migrations. @@ -13,8 +13,10 @@ class CreateGurumodelsTable extends Migration */ public function up() { - Schema::create('gurumodels', function (Blueprint $table) { + Schema::create('mst_sub_kriteria', function (Blueprint $table) { $table->id(); + $table->string('sub_kriteria'); + $table->integer('bobot'); $table->timestamps(); }); } @@ -26,6 +28,6 @@ class CreateGurumodelsTable extends Migration */ public function down() { - Schema::dropIfExists('gurumodels'); + Schema::dropIfExists('mst_sub_kriteria'); } } diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index c2a8892..12a2b1c 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -1,20 +1,19 @@ call([ - UsersSeeder::class, + UsersSeeder::class ]); } } diff --git a/resources/views/component/sidebar.blade.php b/resources/views/component/sidebar.blade.php index 067d5af..0d37c1f 100644 --- a/resources/views/component/sidebar.blade.php +++ b/resources/views/component/sidebar.blade.php @@ -29,12 +29,12 @@ request()->segment(1) == 'data-kriteria' || request()->segment(1) == 'data-sub-kriteria' ? 'show' : ''}}" aria-labelledby="heading2" data-parent="#accordionSidebar">
- @if (Auth::user()->roles =="admin") + @if (Auth::user()->roles =="admin") Guru @endif Alternatif Kriteria - Sub Kriteria + Sub Kriteria
diff --git a/resources/views/pages/data_alternatif/form.blade.php b/resources/views/pages/data_alternatif/form.blade.php index 0e875f3..8ecbf0e 100644 --- a/resources/views/pages/data_alternatif/form.blade.php +++ b/resources/views/pages/data_alternatif/form.blade.php @@ -1,31 +1,50 @@ @extends('layout.master') -@section('title', 'Tambah Bobot') +@if (!empty($alternatif)) +@section('title', 'Edit Alternatif') +@else +@section('title', 'Tambah Alternatif') +@endif @section('content') +@if ($errors->any()) +
+ +
+@endif
-
+ @if (!empty($alternatif)) + + @else + + @endif + @csrf +
-
-
+
+
- - + +
+
-
+
- - + +
-
-
-
- diff --git a/resources/views/pages/data_alternatif/index.blade.php b/resources/views/pages/data_alternatif/index.blade.php index 3f3ff4e..0312d0e 100644 --- a/resources/views/pages/data_alternatif/index.blade.php +++ b/resources/views/pages/data_alternatif/index.blade.php @@ -3,47 +3,99 @@ @section('title', 'Data Alternatif') @push('css') - + @endpush - + @section('content') -
-
- -
- - - - - - - - - - - - - - - - - -
NoKodeAlternatifAction
1A1Alternatif 1 - - -
-
+@if (session('success')) +
+ {{ session('success') }} +
+@endif +
+
+ +
+ + + + + + + + + + +
NoKodeNama AlternatifAction
+
@endsection @push('js') - - - + + + - - + + + + @endpush \ No newline at end of file diff --git a/resources/views/pages/data_kriteria/form.blade.php b/resources/views/pages/data_kriteria/form.blade.php index fe5ff34..3561f20 100644 --- a/resources/views/pages/data_kriteria/form.blade.php +++ b/resources/views/pages/data_kriteria/form.blade.php @@ -1,27 +1,27 @@ @extends('layout.master') @if (!empty($kriteria)) - @section('title', 'Edit Kriteria') +@section('title', 'Edit Kriteria') @else - @section('title', 'Tambah Kriteria') +@section('title', 'Tambah Kriteria') @endif - + @section('content') @if ($errors->any()) -
-
    - @foreach ($errors->all(); as $item) -
  • {{ $item}}
  • - @endforeach -
-
+
+
    + @foreach ($errors->all(); as $item) +
  • {{ $item}}
  • + @endforeach +
+
@endif -
- @if (!empty($kriteria)) -
+
+ @if (!empty($kriteria)) + @else - @endif + @endif @csrf
@@ -29,8 +29,9 @@
- +
+
@@ -55,5 +56,5 @@ @endif
-
+
@endsection \ No newline at end of file diff --git a/resources/views/pages/data_sub_kriteria/form.blade.php b/resources/views/pages/data_sub_kriteria/form.blade.php new file mode 100644 index 0000000..0623a6e --- /dev/null +++ b/resources/views/pages/data_sub_kriteria/form.blade.php @@ -0,0 +1,54 @@ +@extends('layout.master') + +@if (!empty($kriteria)) +@section('title', 'Edit Sub Kriteria') +@else +@section('title', 'Tambah Sub Kriteria') +@endif + +@section('content') +@if ($errors->any()) +
+
    + @foreach ($errors->all(); as $item) +
  • {{ $item}}
  • + @endforeach +
+
+@endif +
+ @if (!empty($subkriteria)) +
+ @else + + @endif + @csrf + +
+
+
+
+ + +
+ +
+
+
+ + +
+
+
+
+ +
+
+@endsection \ No newline at end of file diff --git a/resources/views/pages/data_sub_kriteria/index.blade.php b/resources/views/pages/data_sub_kriteria/index.blade.php new file mode 100644 index 0000000..b887bb0 --- /dev/null +++ b/resources/views/pages/data_sub_kriteria/index.blade.php @@ -0,0 +1,103 @@ +@extends('layout.master') + +@section('title', 'Data Sub Kriteria') + +@push('css') + +@endpush + +@section('content') +@if (session('success')) +
+ {{ session('success') }} +
+@endif +
+
+ +
+ + + + + + + + + + +
NoSub KriteriaBobotAction
+
+
+
+@endsection + +@push('js') + + + + + + + + +@endpush \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index f681a6c..81c4151 100644 --- a/routes/web.php +++ b/routes/web.php @@ -8,6 +8,7 @@ use App\Http\Controllers\{ MstGuruController, DataAlternatifController, DataKriteriaController, + DataSubKriteriaController, PenilaianAlternatifController, PerhitunganController, UsersController @@ -48,6 +49,25 @@ Route::middleware(['auth'])->group(function () { Route::post('/update{id}', [DataKriteriaController::class, 'update'])->name('update_kriteria'); Route::delete('/hapus/{id}', [DataKriteriaController::class, 'destroy'])->name('destroy_kriteria'); }); + + Route::prefix('data-sub-kriteria')->group(function () { + Route::get('/', [DataSubKriteriaController::class, 'index'])->name('data_sub_kriteria'); + Route::get('/tambah', [DataSubKriteriaController::class, 'create'])->name('create_sub_kriteria'); + Route::post('/store', [DataSubKriteriaController::class, 'store'])->name('store_sub_kriteria'); + Route::get('/edit{id}', [DataSubKriteriaController::class, 'edit'])->name('edit_sub_kriteria'); + Route::post('/update{id}', [DataSubKriteriaController::class, 'update'])->name('update_sub_kriteria'); + Route::delete('/hapus/{id}', [DataSubKriteriaController::class, 'destroy'])->name('destroy_sub_kriteria'); + }); + + Route::prefix('data-alternatif')->group(function () { + Route::get('/', [DataAlternatifController::class, 'index'])->name('data_alternatif'); + Route::get('/tambah', [DataAlternatifController::class, 'create'])->name('create_alternatif'); + Route::post('/store', [DataAlternatifController::class, 'store'])->name('store_alternatif'); + Route::get('/edit{id}', [DataAlternatifController::class, 'edit'])->name('edit_alternatif'); + Route::post('/update{id}', [DataAlternatifController::class, 'update'])->name('update_alternatif'); + Route::delete('/hapus/{id}', [DataAlternatifController::class, 'destroy'])->name('destroy_alternatif'); + }); + Route::prefix('data-pengguna')->group(function () { Route::get('/', [UsersController::class, 'index'])->name('data_pengguna'); Route::get('/tambah', [UsersController::class, 'create'])->name('create_pengguna'); @@ -59,10 +79,7 @@ Route::middleware(['auth'])->group(function () { Route::get('/dashboard', function () { return view('pages.dashboard'); })->name('dashboard'); - Route::prefix('data-alternatif')->group(function () { - Route::get('/', [DataAlternatifController::class, 'index'])->name('data_alternatif'); - Route::get('/tambah', [DataAlternatifController::class, 'create'])->name('create_alternatif'); - }); + Route::prefix('penilaian-alternatif')->group(function () { Route::get('/', [PenilaianAlternatifController::class, 'index'])->name('penilaian_alternatif'); Route::get('/tambah', [PenilaianAlternatifController::class, 'create'])->name('create_penilaian'); @@ -77,5 +94,4 @@ Route::middleware(['auth'])->group(function () { Route::get('/hapus-hasil', function () { return view('pages.dashboard'); })->name('hapus_hasil'); - });