Sweet Alert Perhitungan

This commit is contained in:
Zakiaass 2024-03-16 11:40:14 +07:00
parent 4d24eabe7a
commit b7bd16c022
5 changed files with 133 additions and 109 deletions

View File

@ -1,72 +0,0 @@
<?php
namespace App\Http\Controllers;
use App\Models\Criteria;
use App\Models\Extracuricullar;
use App\Models\ExtracuricullarSubKriteria;
use App\Models\SubCriteria;
use Illuminate\Http\Request;
class PenilaianController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
// $criterias = Criteria::all();
// $extracuricullars = Extracuricullar ::all();
// $subcriterias = Subcriteria::all();
// return view('penilaian.input-nilai', compact('criterias','extracuricullars','subcriterias'));
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
//
}
}

View File

@ -6,6 +6,7 @@
use App\Models\Criteria; use App\Models\Criteria;
use App\Models\SubCriteria; use App\Models\SubCriteria;
use App\Models\Extracuricullar; use App\Models\Extracuricullar;
use Illuminate\Support\Facades\Session;
use App\Models\ExtracuricullarSubKriteria; use App\Models\ExtracuricullarSubKriteria;
use RealRashid\SweetAlert\Facades\Alert; use RealRashid\SweetAlert\Facades\Alert;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
@ -86,6 +87,17 @@ public function penilaian()
public function transformasiNilai(Request $request) public function transformasiNilai(Request $request)
{ {
$validator = Validator::make($request->all(), [
'subcriteria.*.*' => 'required',
], [
'subcriteria.*.*.required' => 'Semua dropdown pada kriteria harus diisi.',
'subcriteria.*.*.exists' => 'Pilihan dropdown tidak valid.',
]);
if ($validator->fails()) {
return redirect()->back()->withErrors($validator)->withInput();
}
// Ambil data nilai dari subkriteria yang dipilih dari form // Ambil data nilai dari subkriteria yang dipilih dari form
$subcriteriaData = $request->input('subcriteria'); $subcriteriaData = $request->input('subcriteria');
@ -105,6 +117,7 @@ public function transformasiNilai(Request $request)
$transformedValues[$extracurricularId][$criteriaId] = $bobot; $transformedValues[$extracurricularId][$criteriaId] = $bobot;
} }
} }
Session::flash('success', 'Berhasil Transformasi Nilai.');
// Ambil semua kriteria dan ekstrakurikuler untuk ditampilkan di view // Ambil semua kriteria dan ekstrakurikuler untuk ditampilkan di view
$criterias = Criteria::all(); $criterias = Criteria::all();
@ -113,6 +126,35 @@ public function transformasiNilai(Request $request)
return view('perhitungan.transformasi-nilai', compact('criterias', 'extracuricullars', 'transformedValues')); return view('perhitungan.transformasi-nilai', compact('criterias', 'extracuricullars', 'transformedValues'));
} }
// public function transformasiNilai(Request $request)
// {
// // Ambil data nilai dari subkriteria yang dipilih dari form
// $subcriteriaData = $request->input('subcriteria');
// // Inisialisasi variabel untuk menyimpan nilai hasil transformasi
// $transformedValues = [];
// // Lakukan transformasi nilai berdasarkan bobot subkriteria
// foreach ($subcriteriaData as $extracurricularId => $criteriaData) {
// foreach ($criteriaData as $criteriaId => $subcriteriaId) {
// // Ambil data sub-kriteria berdasarkan ID yang dipilih dari form
// $subcriteria = SubCriteria::findOrFail($subcriteriaId);
// // Ambil bobot dari subkriteria yang dipilih
// $bobot = $subcriteria->bobot;
// // Simpan hasil transformasi nilai ke dalam array
// $transformedValues[$extracurricularId][$criteriaId] = $bobot;
// }
// }
// // Ambil semua kriteria dan ekstrakurikuler untuk ditampilkan di view
// $criterias = Criteria::all();
// $extracuricullars = Extracuricullar::all();
// return view('perhitungan.transformasi-nilai', compact('criterias', 'extracuricullars', 'transformedValues'));
// }
public function index() public function index()
{ {
// //

View File

@ -260,6 +260,28 @@ class="badge btn-danger" data-toggle="modal"
</div> </div>
@endforeach @endforeach
<script> <script>
$(document).ready(function() {
// Event listener for the button click
$('#calculate-bobot').click(function() {
// Send AJAX request to trigger calculation
$.ajax({
type: 'POST',
url: '{{ route('kriteria.calculate') }}',
data: {
_token: '{{ csrf_token() }}'
},
success: function(response) {
swal("Sukses!", "Bobot Kriteria Berhasil Dihitung dan Disimpan.", "success")
},
error: function(xhr, status, error) {
console.error('Error:', error);
}
});
});
});
</script>
{{-- <script>
$(document).ready(function() { $(document).ready(function() {
// Event listener for the button click // Event listener for the button click
$('#calculate-bobot').click(function() { $('#calculate-bobot').click(function() {
@ -280,5 +302,5 @@ class="badge btn-danger" data-toggle="modal"
}); });
}); });
}); });
</script> </script> --}}
@endsection @endsection

View File

@ -37,47 +37,56 @@
</div> </div>
<form method="POST" action="{{ route('transformasiNilai') }}"> <form method="POST" action="{{ route('transformasiNilai') }}">
@csrf @csrf
<div class="pb-10"> <div class="pb-10">
<div class="table-responsive"> <div class="table-responsive">
<table class="data-table table stripe hover nowrap"> <table class="data-table table stripe hover nowrap">
<thead> <thead>
<tr>
<th>No</th>
<th>Ekstrakurikuler</th>
@foreach ($criterias as $criteria)
<th>{{ $criteria->nama }}</th>
@endforeach
</tr>
</thead>
<tbody>
@forelse ($extracuricullars as $extracuricullar)
<tr> <tr>
<td>{{ $loop->iteration }}</td> <th>No</th>
<td>{{ $extracuricullar->nama }}</td> <th>Ekstrakurikuler</th>
@foreach ($criterias as $criteria) @foreach ($criterias as $criteria)
<td> <th>{{ $criteria->nama }}</th>
<select class="form-control" name="subcriteria[{{ $extracuricullar->id }}][{{ $criteria->id }}]">
<option value="" selected disabled>Pilih Sub Kriteria</option>
@foreach ($criteria->subCriteria as $subCriteria)
<option value="{{ $subCriteria->id }}">{{ $subCriteria->prioritas }} ({{ $subCriteria->nama }})</option>
@endforeach
</select>
</td>
@endforeach @endforeach
@empty
<tr>
<td colspan="5" class="text-center">Tidak ada data.</td>
</tr> </tr>
@endforelse </thead>
</tbody> <tbody>
</table> @forelse ($extracuricullars as $extracuricullar)
<div class="col-sm-12"> <tr>
<div class="input-group mb-3 mx-auto"> <td>{{ $loop->iteration }}</td>
<button type="submit" class="btn btn-primary btn-lg btn-block">Transformasi Nilai</button> <td>{{ $extracuricullar->nama }}</td>
@foreach ($criterias as $criteria)
<td>
<select class="form-control"
name="subcriteria[{{ $extracuricullar->id }}][{{ $criteria->id }}]"
required>
<option value="" selected disabled>Pilih Sub Kriteria
</option>
@foreach ($criteria->subCriteria as $subCriteria)
<option value="{{ $subCriteria->id }}">
{{ $subCriteria->prioritas }}
({{ $subCriteria->nama }})</option>
@endforeach
</select>
@error("subcriteria.{$extracuricullar->id}.{$criteria->id}")
<span class="text-danger">{{ $message }}</span>
@enderror
</td>
@endforeach
@empty
<tr>
<td colspan="5" class="text-center">Tidak ada data.</td>
</tr>
@endforelse
</tbody>
</table>
<div class="col-sm-12">
<div class="input-group mb-3 mx-auto">
<button type="submit" class="btn btn-primary btn-lg btn-block">Transformasi
Nilai</button>
</div>
</div> </div>
</div> </div>
</div> </div>
</div>
</form> </form>
</div> </div>
</div> </div>
@ -88,7 +97,7 @@
</div> </div>
@if(session('success')) @if(session('success'))
<script> <script>
alert('{{ session('success') }}'); swal("{{ session('success') }}", "success");
</script> </script>
@endif @endif
@endsection @endsection

View File

@ -330,6 +330,29 @@ class="badge btn-danger" data-toggle="modal"
</div> </div>
@endforeach @endforeach
<script> <script>
$(document).ready(function() {
// Event listener for the button click
$('#calculate-bobot').click(function() {
// Send AJAX request to trigger calculation
$.ajax({
type: 'POST',
url: '{{ route('subkriteria.calculate') }}',
data: {
_token: '{{ csrf_token() }}'
},
success: function(response) {
swal("Sukses!", "Bobot Sub Kriteria Berhasil Dihitung dan Disimpan.", "success")
},
error: function(xhr, status, error) {
console.error('Error:', error);
}
});
});
});
</script>
{{-- <script>
$(document).ready(function() { $(document).ready(function() {
// Event listener for the button click // Event listener for the button click
$('#calculate-bobot').click(function() { $('#calculate-bobot').click(function() {
@ -350,5 +373,5 @@ class="badge btn-danger" data-toggle="modal"
}); });
}); });
}); });
</script> </script> --}}
@endsection @endsection