Fix Hasil Riwayat
This commit is contained in:
parent
6f75678ecc
commit
fba20e68c5
|
@ -245,66 +245,6 @@ public function perangkingan(Request $request)
|
||||||
return view('perhitungan.perangkingan', compact('criterias', 'extracuricullars', 'nilaiAkhir', 'totalNilaiAkhir', 'totalNilaiAkhirPersen', 'peringkat'));
|
return view('perhitungan.perangkingan', compact('criterias', 'extracuricullars', 'nilaiAkhir', 'totalNilaiAkhir', 'totalNilaiAkhirPersen', 'peringkat'));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function simpanPerangkingan(Request $request)
|
|
||||||
{
|
|
||||||
// Ambil data dari formulir atau perhitungan Anda
|
|
||||||
$nilaiUtility = session('nilaiUtility', []);
|
|
||||||
|
|
||||||
// Lakukan perhitungan perangkingan
|
|
||||||
$nilaiAkhir = [];
|
|
||||||
|
|
||||||
$logs = LogActivity::all();
|
|
||||||
|
|
||||||
foreach ($nilaiUtility as $extracurricularId => $criteriaData) {
|
|
||||||
$totalNilai = 0;
|
|
||||||
|
|
||||||
foreach ($criteriaData as $criteriaId => $utility) {
|
|
||||||
$criteria = Criteria::find($criteriaId);
|
|
||||||
if ($criteria) {
|
|
||||||
$bobotKriteria = $criteria->bobot;
|
|
||||||
$nilaiAkhir[$extracurricularId][$criteriaId] = number_format($utility * $bobotKriteria, 2, '.', '');
|
|
||||||
$totalNilai += $utility * $bobotKriteria;
|
|
||||||
} else {
|
|
||||||
$nilaiAkhir[$extracurricularId][$criteriaId] = '0';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$totalNilaiAkhir[$extracurricularId] = number_format($totalNilai, 2, '.', '');
|
|
||||||
$totalPersen = ($totalNilai) * 100;
|
|
||||||
$totalNilaiAkhirPersen[$extracurricularId] = number_format($totalPersen, 0, '.', '');
|
|
||||||
$peringkat[$extracurricularId] = $totalPersen;
|
|
||||||
}
|
|
||||||
|
|
||||||
arsort($peringkat);
|
|
||||||
|
|
||||||
// Ambil id ekstrakurikuler dari peringkat pertama
|
|
||||||
$extracurricularIds = array_keys($peringkat);
|
|
||||||
$extracurricularId = reset($extracurricularIds);
|
|
||||||
|
|
||||||
// Periksa apakah id ekstrakurikuler valid
|
|
||||||
if (isset($nilaiAkhir[$extracurricularId])) {
|
|
||||||
$nilaiAkhir = $nilaiAkhir[$extracurricularId];
|
|
||||||
|
|
||||||
// Simpan ke database jika id ekstrakurikuler valid
|
|
||||||
$userId = auth()->check() ? auth()->user()->id : 1;
|
|
||||||
// $tanggalPerangkingan = Carbon::now();
|
|
||||||
// dd($tanggalPerangkingan);
|
|
||||||
|
|
||||||
LogActivity::create([
|
|
||||||
'user_id' => $userId,
|
|
||||||
'extracuricullar_id' => $extracurricularId,
|
|
||||||
'final_score' => reset($nilaiAkhir),
|
|
||||||
// 'date' => $tanggalPerangkingan,
|
|
||||||
]);
|
|
||||||
|
|
||||||
// Redirect atau tampilkan view hasil perangkingan
|
|
||||||
return view('perhitungan.riwayat-hasil', compact('logs', 'userId', 'extracurricularId', 'nilaiAkhir'));
|
|
||||||
} else {
|
|
||||||
// Handle jika id ekstrakurikuler tidak valid
|
|
||||||
return redirect()->back()->with('error', 'Ekstrakurikuler tidak valid');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getRiwayatHasil()
|
public function getRiwayatHasil()
|
||||||
{
|
{
|
||||||
// Periksa apakah pengguna telah login
|
// Periksa apakah pengguna telah login
|
||||||
|
@ -322,7 +262,74 @@ public function getRiwayatHasil()
|
||||||
$logs = collect();
|
$logs = collect();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Kembalikan aktivitas log ke dalam tampilan
|
// Ambil data dari formulir atau perhitungan Anda
|
||||||
|
$nilaiUtility = session('nilaiUtility', []);
|
||||||
|
|
||||||
|
// Lakukan perhitungan perangkingan jika ada data
|
||||||
|
if (!empty($nilaiUtility)) {
|
||||||
|
$nilaiAkhir = [];
|
||||||
|
foreach ($nilaiUtility as $extracurricularId => $criteriaData) {
|
||||||
|
$totalNilai = 0;
|
||||||
|
|
||||||
|
foreach ($criteriaData as $criteriaId => $utility) {
|
||||||
|
$criteria = Criteria::find($criteriaId);
|
||||||
|
if ($criteria) {
|
||||||
|
$bobotKriteria = $criteria->bobot;
|
||||||
|
$nilaiAkhir[$extracurricularId][$criteriaId] = $utility * $bobotKriteria;
|
||||||
|
$totalNilai += $utility * $bobotKriteria;
|
||||||
|
} else {
|
||||||
|
$nilaiAkhir[$extracurricularId][$criteriaId] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$totalNilaiAkhir[$extracurricularId] = $totalNilai;
|
||||||
|
$totalPersen = $totalNilai * 100;
|
||||||
|
$totalNilaiAkhirPersen[$extracurricularId] = $totalPersen;
|
||||||
|
$peringkat[$extracurricularId] = $totalPersen;
|
||||||
|
}
|
||||||
|
|
||||||
|
arsort($peringkat);
|
||||||
|
|
||||||
|
// Ambil id ekstrakurikuler dari peringkat pertama
|
||||||
|
$extracurricularIds = array_keys($peringkat);
|
||||||
|
$extracurricularId = reset($extracurricularIds);
|
||||||
|
|
||||||
|
// Periksa apakah id ekstrakurikuler valid
|
||||||
|
if (isset($nilaiAkhir[$extracurricularId])) {
|
||||||
|
$nilaiAkhir = $nilaiAkhir[$extracurricularId];
|
||||||
|
|
||||||
|
// Simpan ke database jika id ekstrakurikuler valid
|
||||||
|
$userId = auth()->check() ? auth()->user()->id : 1;
|
||||||
|
|
||||||
|
// Check apakah sudah ada log untuk ekskul peringkat pertama
|
||||||
|
$existingLog = LogActivity::where('user_id', $userId)
|
||||||
|
->where('extracuricullar_id', $extracurricularId)
|
||||||
|
->first();
|
||||||
|
|
||||||
|
// Jika belum ada log, buat log baru
|
||||||
|
if (!$existingLog) {
|
||||||
|
LogActivity::create([
|
||||||
|
'user_id' => $userId,
|
||||||
|
'extracuricullar_id' => $extracurricularId,
|
||||||
|
'final_score' => $totalNilaiAkhir[$extracurricularId],
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
// Jika sudah ada log, perbarui final score jika nilai akhir baru lebih tinggi
|
||||||
|
if ($existingLog->final_score < $totalNilaiAkhir[$extracurricularId]) {
|
||||||
|
$existingLog->final_score = $totalNilaiAkhir[$extracurricularId];
|
||||||
|
$existingLog->save();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Tampilkan view hasil perangkingan dan riwayat
|
||||||
|
return view('perhitungan.riwayat-hasil', compact('logs', 'userId', 'extracurricularId', 'nilaiAkhir'));
|
||||||
|
} else {
|
||||||
|
// Handle jika id ekstrakurikuler tidak valid
|
||||||
|
return redirect()->back()->with('error', 'Ekstrakurikuler tidak valid');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Jika tidak ada data perhitungan, langsung tampilkan riwayat hasil
|
||||||
return view('perhitungan.riwayat-hasil', compact('logs'));
|
return view('perhitungan.riwayat-hasil', compact('logs'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
<div class="pd-20">
|
<div class="pd-20">
|
||||||
<h4 class="text-blue h4 mb-0">Hasil Perangkingan</h4>
|
<h4 class="text-blue h4 mb-0">Hasil Perangkingan</h4>
|
||||||
</div>
|
</div>
|
||||||
<form method="POST" action="{{ route('perangkingan.simpan') }}">
|
<form method="POST" action="{{ route('riwayat.hasil') }}">
|
||||||
@csrf
|
@csrf
|
||||||
<div class="pb-10">
|
<div class="pb-10">
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
|
@ -72,7 +72,7 @@
|
||||||
</table>
|
</table>
|
||||||
<div class="col-sm-12">
|
<div class="col-sm-12">
|
||||||
<div class="input-group mb-3 mx-auto">
|
<div class="input-group mb-3 mx-auto">
|
||||||
<button type="submit" class="btn btn-primary btn-lg btn-block">Hasil Perangkingan</button>
|
<button type="submit" class="btn btn-primary btn-lg btn-block">Simpan Hasil</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -46,7 +46,6 @@
|
||||||
<th>Nama</th>
|
<th>Nama</th>
|
||||||
<th>Pilihan Ekstrakurikuler</th>
|
<th>Pilihan Ekstrakurikuler</th>
|
||||||
<th>Nilai Akhir</th>
|
<th>Nilai Akhir</th>
|
||||||
{{-- <th>Tanggal Perangkingan</th> --}}
|
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|
|
@ -107,7 +107,8 @@
|
||||||
Route::post('nilai-utility', [PerhitunganController::class, 'nilaiUtility'])->name('nilaiUtility');
|
Route::post('nilai-utility', [PerhitunganController::class, 'nilaiUtility'])->name('nilaiUtility');
|
||||||
Route::post('nilai-akhir', [PerhitunganController::class, 'nilaiAkhir'])->name('nilaiAkhir');
|
Route::post('nilai-akhir', [PerhitunganController::class, 'nilaiAkhir'])->name('nilaiAkhir');
|
||||||
Route::post('perangkingan', [PerhitunganController::class, 'perangkingan'])->name('perangkingan');
|
Route::post('perangkingan', [PerhitunganController::class, 'perangkingan'])->name('perangkingan');
|
||||||
Route::post('/perangkingan/simpan', [PerhitunganController::class, 'simpanPerangkingan'])->name('perangkingan.simpan');
|
|
||||||
|
Route::post('/riwayat-hasil', [PerhitunganController::class, 'getRiwayatHasil'])->name('riwayat.hasil');
|
||||||
Route::get('/riwayat-hasil', [PerhitunganController::class, 'getRiwayatHasil'])->name('riwayat.hasil');
|
Route::get('/riwayat-hasil', [PerhitunganController::class, 'getRiwayatHasil'])->name('riwayat.hasil');
|
||||||
|
|
||||||
Route::get('/logout', [AuthController::class, 'logout'])->name('logout');
|
Route::get('/logout', [AuthController::class, 'logout'])->name('logout');
|
||||||
|
|
Loading…
Reference in New Issue