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'));
|
||||
}
|
||||
|
||||
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()
|
||||
{
|
||||
// Periksa apakah pengguna telah login
|
||||
|
@ -322,7 +262,74 @@ public function getRiwayatHasil()
|
|||
$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'));
|
||||
}
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
<div class="pd-20">
|
||||
<h4 class="text-blue h4 mb-0">Hasil Perangkingan</h4>
|
||||
</div>
|
||||
<form method="POST" action="{{ route('perangkingan.simpan') }}">
|
||||
<form method="POST" action="{{ route('riwayat.hasil') }}">
|
||||
@csrf
|
||||
<div class="pb-10">
|
||||
<div class="table-responsive">
|
||||
|
@ -72,7 +72,7 @@
|
|||
</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">Hasil Perangkingan</button>
|
||||
<button type="submit" class="btn btn-primary btn-lg btn-block">Simpan Hasil</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -46,7 +46,6 @@
|
|||
<th>Nama</th>
|
||||
<th>Pilihan Ekstrakurikuler</th>
|
||||
<th>Nilai Akhir</th>
|
||||
{{-- <th>Tanggal Perangkingan</th> --}}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
|
|
@ -107,7 +107,8 @@
|
|||
Route::post('nilai-utility', [PerhitunganController::class, 'nilaiUtility'])->name('nilaiUtility');
|
||||
Route::post('nilai-akhir', [PerhitunganController::class, 'nilaiAkhir'])->name('nilaiAkhir');
|
||||
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('/logout', [AuthController::class, 'logout'])->name('logout');
|
||||
|
|
Loading…
Reference in New Issue