Unfinished Menu Penilaian

This commit is contained in:
yuliana dewi 2024-01-03 19:53:13 +07:00
parent 16201aa28e
commit d2cf7e62d7
6 changed files with 123 additions and 60 deletions

View File

@ -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();
}
}
}

27
app/Models/Penilaian.php Normal file
View File

@ -0,0 +1,27 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Penilaian extends Model
{
use HasFactory;
protected $table = 'penilaian_alternatif';
protected $fillable = [
'periode', 'id_alternatif', 'id_kriteria', 'id_sub',
];
public function guru(){
return $this->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');
}
}

View File

@ -0,0 +1,38 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreatePenilaianAlternatifTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('penilaian_alternatif', function (Blueprint $table) {
$table->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');
}
}

View File

@ -4,26 +4,24 @@
@section('content')
<div class="card border-top-primary shadow mb-4">
<form action="">
<form action="{{ url('penilaian-alternatif/store') }}" method="POST">
@csrf
<div class="card-body pt-3">
<div class="row">
<div class="col-lg-6">
<div class="form-group">
<label for="">Periode</label>
<select name="" id="" class="form-control">
<option value="">Pilih</option>
<option value="">Periode 1</option>
<option value="">Periode 2</option>
</select>
<input type="text" class="form-control" name="periode">
</div>
</div>
<div class="col-lg-6">
<div class="form-group">
<label for="">Alternatif</label>
<select name="" id="" class="form-control">
<select name="id_alternatif" class="form-control">
<option value="">Pilih</option>
<option value="">Alternatif 1</option>
<option value="">Alternatif 2</option>
@foreach ($alternatif as $alt)
<option value="{{ $alt->id }}">{{ $alt->alternatif['nama_guru'] }}</option>
@endforeach
</select>
</div>
</div>
@ -32,56 +30,33 @@
<hr style="border: 1px solid; margin-top:0px">
<table width="100%">
<tr>
<td>Kriteria</td>
<td>Nilai</td>
<td><b>Kriteria</b></td>
<td width="30%"><b>Sub Kriteria</b></td>
</tr>
@foreach ($kriteria as $item)
<tr>
<td>
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="customCheck">
<label class="custom-control-label" for="customCheck">Kriteria 1</label>
</div>
<td scope="row">
<input type="hidden" value="{{ $item->id }}" name="id_kriteria[]">
{{ $loop->iteration }}. {{ $item->nama_kriteria }}
</td>
<td>
<select name="" id="" class="form-control mb-2">
<select name="id_sub[]" class="form-control mb-2">
<option value="">Pilih</option>
<option value="">Nilai 1</option>
<option value="">Nilai 2</option>
</select>
</td>
</tr>
<tr>
<td>
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="customCheck">
<label class="custom-control-label" for="customCheck">Kriteria 2</label>
</div>
</td>
<td>
<select name="" id="" class="form-control mb-2">
<option value="">Pilih</option>
<option value="">Nilai 1</option>
<option value="">Nilai 2</option>
@foreach ($subKriteria as $sub)
<option value="{{ $sub->id }}">{{ $sub->sub_kriteria }}</option>
@endforeach
</select>
</td>
</tr>
@endforeach
</table>
</div>
<div class="col-lg-4">
<label for="" class="mt-3"><b>Keterangan Nilai</b></label>
<p>*Untuk kriteria Daya Tahan, Umur, & Harga</p>
<label for="" class="ml-4 mb-0">1 = Sangat Baik</label><br>
<label for="" class="ml-4 mb-0">2 = Baik</label><br>
<label for="" class="ml-4 mb-0">3 = Biasa</label><br>
<label for="" class="ml-4 mb-0">4 = Buruk</label><br>
<label for="" class="ml-4 mb-0">5 = Sangat Buruk</label>
<p class="mt-4">*Untuk layanan Purna Jual</p>
<label for="" class="ml-4 mb-0">1 = Sangat Baik</label><br>
<label for="" class="ml-4 mb-0">2 = Baik</label><br>
<label for="" class="ml-4 mb-0">3 = Biasa</label><br>
<label for="" class="ml-4 mb-0">4 = Buruk</label><br>
<label for="" class="ml-4 mb-0">5 = Sangat Buruk</label>
<p class="mb-0">*Bobot pada setiap Sub Kriteria</p>
@foreach ($subKriteria as $subs)
<label for="" class="ml-4 mb-0">{{ $subs->bobot }} = {{ $subs->sub_kriteria }}</label><br>
@endforeach
</div>
</div>
</div>

View File

@ -13,29 +13,29 @@
<a href="{{ route('create_penilaian') }}" class="btn btn-sm btn-primary">Tambah Nilai Alternatif</a>
</div>
<div class="table-responsive">
<table class="table table-bordered" id="dataTable" width="100%" cellspacing="0">
<table class="table table-bordered table-sm" width="100%" cellspacing="0">
<thead>
<tr>
<th width="5%">No</th>
<th>Periode</th>
<th>Alternatif</th>
<th>Kriteria</th>
<th>Nilai</th>
<th class="text-center" width="5%">No</th>
<th class="text-center">Alternatif</th>
<th class="text-center" width="50%">Kriteria</th>
<th class="text-center">Nilai</th>
<th class="text-center">Action</th>
</tr>
</thead>
<tbody>
@foreach ($penilaian as $item)
<tr>
<td>1</td>
<td>2023</td>
<td>Guru 1</td>
<td>Kriteria 1</td>
<td>Nilai</td>
<td class="text-center">{{ $loop->iteration }}</td>
<td>{{ $item->guru->alternatif['nama_guru'] }}</td>
<td>{{ $item->kriteria['nama_kriteria'] }}</td>
<td class="text-center">{{ $item->subKriteria['sub_kriteria'] }}</td>
<td class="text-center">
<button class="btn btn-sm btn-warning">Edit</button>
<button class="btn btn-sm btn-danger">Hapus</button>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>

View File

@ -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');