Log Activity
This commit is contained in:
parent
b952c1ed64
commit
6f75678ecc
|
@ -0,0 +1,27 @@
|
|||
<?php
|
||||
|
||||
namespace App\Helpers;
|
||||
|
||||
namespace App\Helpers;
|
||||
use Request;
|
||||
use App\Models\LogActivity as LogActivityModel;
|
||||
|
||||
class LogActivityHelper
|
||||
{
|
||||
public static function LogPerangkinganActivity($userId, $extracurricularId, $nilaiAkhir, $tanggalPerangkingan)
|
||||
{
|
||||
$log = [
|
||||
'user_id' => $userId,
|
||||
'extracuricullar_id' => $extracurricularId,
|
||||
'final_score' => $nilaiAkhir,
|
||||
// 'date' => $tanggalPerangkingan,
|
||||
];
|
||||
|
||||
LogActivityModel::create($log);
|
||||
}
|
||||
|
||||
// public static function getRankingLogs()
|
||||
// {
|
||||
// return LogActivityModel::latest()->get();
|
||||
// }
|
||||
}
|
|
@ -49,9 +49,9 @@ public function login(Request $request)
|
|||
$user = Auth::user();
|
||||
$request->session()->put('user_id', $user->id);
|
||||
|
||||
// Membuat dan menyimpan token "remember me"
|
||||
$token = $user->createToken("auth-token")->plainTextToken;
|
||||
$user->update(['remember_token' => $token]);
|
||||
// // Membuat dan menyimpan token "remember me"
|
||||
// $token = $user->createToken("auth-token")->plainTextToken;
|
||||
// $user->update(['remember_token' => $token]);
|
||||
|
||||
return redirect('/dashboard')->with('success', 'Login berhasil!');
|
||||
} else {
|
||||
|
|
|
@ -6,8 +6,11 @@
|
|||
use App\Models\Criteria;
|
||||
use App\Models\SubCriteria;
|
||||
use App\Models\Extracuricullar;
|
||||
use App\Models\LogActivity;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Support\Facades\Session;
|
||||
use App\Models\ExtracuricullarSubKriteria;
|
||||
use App\Http\Controllers\Auth;
|
||||
use RealRashid\SweetAlert\Facades\Alert;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
|
@ -177,6 +180,7 @@ public function nilaiAkhir(Request $request)
|
|||
}
|
||||
}
|
||||
$totalNilai = array_sum($nilaiAkhir[$extracurricularId]);
|
||||
$totalNilai = min($totalNilai, 100);
|
||||
$totalNilaiAkhir[$extracurricularId] = number_format($totalNilai, 2, '.', '');
|
||||
}
|
||||
|
||||
|
@ -241,51 +245,86 @@ 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 = [];
|
||||
|
||||
// public function perangkingan(Request $request)
|
||||
// {
|
||||
// // Ambil data nilai utility dari session
|
||||
// $nilaiUtility = session('nilaiUtility', []);
|
||||
$logs = LogActivity::all();
|
||||
|
||||
// $criterias = Criteria::all();
|
||||
// $extracuricullars = Extracuricullar::all();
|
||||
foreach ($nilaiUtility as $extracurricularId => $criteriaData) {
|
||||
$totalNilai = 0;
|
||||
|
||||
// // Inisialisasi variabel untuk menyimpan nilai akhir
|
||||
// $nilaiAkhir = [];
|
||||
// $totalNilaiAkhir = [];
|
||||
// $totalNilaiAkhirPersen = []; // Tambahkan deklarasi variabel untuk menyimpan nilai akhir dalam persen
|
||||
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';
|
||||
}
|
||||
}
|
||||
|
||||
// foreach ($nilaiUtility as $extracurricularId => $criteriaData) {
|
||||
// $totalNilai = 0; // Inisialisasi nilai total untuk setiap ekstrakurikuler
|
||||
$totalNilaiAkhir[$extracurricularId] = number_format($totalNilai, 2, '.', '');
|
||||
$totalPersen = ($totalNilai) * 100;
|
||||
$totalNilaiAkhirPersen[$extracurricularId] = number_format($totalPersen, 0, '.', '');
|
||||
$peringkat[$extracurricularId] = $totalPersen;
|
||||
}
|
||||
|
||||
// foreach ($criteriaData as $criteriaId => $utility) {
|
||||
// // Temukan bobot kriteria
|
||||
// $criteria = Criteria::find($criteriaId);
|
||||
// if ($criteria) {
|
||||
// // Lakukan perhitungan nilai akhir
|
||||
// $bobotKriteria = $criteria->bobot;
|
||||
// $nilaiAkhir[$extracurricularId][$criteriaId] = number_format($utility * $bobotKriteria, 2, '.', '');
|
||||
arsort($peringkat);
|
||||
|
||||
// // Tambahkan nilai akhir ke total nilai untuk ekstrakurikuler saat ini
|
||||
// $totalNilai += $utility * $bobotKriteria;
|
||||
// } else {
|
||||
// // Handle jika kriteria tidak ditemukan
|
||||
// $nilaiAkhir[$extracurricularId][$criteriaId] = '0';
|
||||
// }
|
||||
// }
|
||||
// Ambil id ekstrakurikuler dari peringkat pertama
|
||||
$extracurricularIds = array_keys($peringkat);
|
||||
$extracurricularId = reset($extracurricularIds);
|
||||
|
||||
// // Simpan total nilai akhir untuk setiap ekstrakurikuler
|
||||
// $totalNilaiAkhir[$extracurricularId] = number_format($totalNilai, 2, '.', '');
|
||||
// Periksa apakah id ekstrakurikuler valid
|
||||
if (isset($nilaiAkhir[$extracurricularId])) {
|
||||
$nilaiAkhir = $nilaiAkhir[$extracurricularId];
|
||||
|
||||
// // Hitung persentase total nilai akhir
|
||||
// $totalPersen = ($totalNilai) * 100;
|
||||
// $totalNilaiAkhirPersen[$extracurricularId] = $totalPersen;
|
||||
// }
|
||||
// Simpan ke database jika id ekstrakurikuler valid
|
||||
$userId = auth()->check() ? auth()->user()->id : 1;
|
||||
// $tanggalPerangkingan = Carbon::now();
|
||||
// dd($tanggalPerangkingan);
|
||||
|
||||
// // Tampilkan hasil perhitungan nilai akhir ke dalam view
|
||||
// return view('perhitungan.perangkingan', compact('criterias', 'extracuricullars', 'nilaiAkhir', 'totalNilaiAkhir', 'totalNilaiAkhirPersen'));
|
||||
// }
|
||||
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
|
||||
if (auth()->check()) {
|
||||
// Jika pengguna adalah admin, ambil semua aktivitas log
|
||||
if (auth()->user()->role === 'admin') {
|
||||
$logs = LogActivity::all();
|
||||
} else {
|
||||
// Jika pengguna bukan admin, ambil hanya aktivitas log milik mereka sendiri
|
||||
$userId = auth()->id();
|
||||
$logs = LogActivity::where('user_id', $userId)->get();
|
||||
}
|
||||
} else {
|
||||
// Jika pengguna belum login, kembalikan koleksi kosong
|
||||
$logs = collect();
|
||||
}
|
||||
|
||||
// Kembalikan aktivitas log ke dalam tampilan
|
||||
return view('perhitungan.riwayat-hasil', compact('logs'));
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class LogActivity extends Model
|
||||
{
|
||||
protected $fillable = [
|
||||
'user_id',
|
||||
'extracuricullar_id',
|
||||
'final_score',
|
||||
// 'date',
|
||||
];
|
||||
|
||||
// protected $casts = [
|
||||
// 'date' => 'datetime',
|
||||
// ];
|
||||
|
||||
public function User()
|
||||
{
|
||||
return $this->belongsTo(User::class);
|
||||
}
|
||||
|
||||
public function Extracuricullar() {
|
||||
return $this->belongsTo(Extracuricullar::class);
|
||||
}
|
||||
}
|
|
@ -187,5 +187,6 @@
|
|||
])->toArray(),
|
||||
'Alert' => RealRashid\SweetAlert\Facades\Alert::class,
|
||||
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
|
||||
// 'LogActivity' => App\Helpers\LogActivityHelper::class,
|
||||
|
||||
];
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateLogActivityTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('log_activities', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->unsignedBigInteger('user_id');
|
||||
$table->unsignedBigInteger('extracuricullar_id');
|
||||
$table->float('final_score', 5, 2);
|
||||
// $table->dateTime('date');
|
||||
$table->timestamps();
|
||||
|
||||
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
|
||||
$table->foreign('extracuricullar_id')->references('id')->on('extracuricullars')->onDelete('cascade');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('log_activity');
|
||||
}
|
||||
};
|
Binary file not shown.
|
@ -31,9 +31,11 @@
|
|||
<li><a href="{{ route('kriteria.index') }}">Data Kriteria</a></li>
|
||||
<li><a href="{{ route('subkriteria.index') }}">Data Sub Kriteria</a></li>
|
||||
<li><a href="{{ route('user.index') }}">Data User</a></li>
|
||||
<li><a href="{{ route('riwayat.hasil') }}">Hasil Riwayat</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
@endif
|
||||
@if (auth()->user()->role=='siswa')
|
||||
<li class="dropdown">
|
||||
<a href="javascript:;" class="dropdown-toggle">
|
||||
<span class="micon bi bi-table"></span><span class="mtext">Perhitungan</span>
|
||||
|
@ -42,17 +44,18 @@
|
|||
<li><a href="{{ route('penilaian.input-nilai') }}">Input Penilaian</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
{{-- <li class="dropdown">
|
||||
<li class="dropdown">
|
||||
<a class="dropdown-toggle">
|
||||
<span class="micon bi bi-table"></span><span class="mtext">Perhitungan</span>
|
||||
<span class="micon bi bi-table"></span><span class="mtext">Data Riwayat</span>
|
||||
</a>
|
||||
<ul class="submenu">
|
||||
<li><a href="{{ route('transformasiNilai') }}">Transformasi Nilai</a></li>
|
||||
<li><a href="">Nilai utility</a></li>
|
||||
<li><a href="{{ route('riwayat.hasil') }}">Hasil Riwayat</a></li>
|
||||
{{-- <li><a href="">Nilai utility</a></li>
|
||||
<li><a href="">Nilai Akhir</a></li>
|
||||
<li><a href="">Hasil Perangkingan</a></li>
|
||||
<li><a href="">Hasil Perangkingan</a></li> --}}
|
||||
</ul>
|
||||
</li> --}}
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
<div class="pd-20">
|
||||
<h4 class="text-blue h4 mb-0">Hasil Perangkingan</h4>
|
||||
</div>
|
||||
<form method="POST" action="">
|
||||
<form method="POST" action="{{ route('perangkingan.simpan') }}">
|
||||
@csrf
|
||||
<div class="pb-10">
|
||||
<div class="table-responsive">
|
||||
|
@ -70,11 +70,11 @@
|
|||
@endforelse
|
||||
</tbody>
|
||||
</table>
|
||||
{{-- <div class="col-sm-12">
|
||||
<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>
|
||||
</div>
|
||||
</div> --}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
|
@ -0,0 +1,77 @@
|
|||
@extends('layout.main')
|
||||
@section('body')
|
||||
@php
|
||||
$menu = 'Data Riwayat';
|
||||
$pageTitle = 'Hasil Riwayat';
|
||||
@endphp
|
||||
|
||||
@include('layout.navbar')
|
||||
@include('layout.sidebar')
|
||||
|
||||
{{-- Main Content --}}
|
||||
<div class="main-container">
|
||||
<div class="pd-ltr-20 xs-pd-20-10">
|
||||
<div class="min-height-200px">
|
||||
<div class="page-header">
|
||||
<div class="row">
|
||||
<div class="col-md-6 col-sm-12">
|
||||
<div class="title">
|
||||
<h4>{{ $menu }}</h4>
|
||||
</div>
|
||||
<nav aria-label="breadcrumb" role="navigation">
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item"><a href="{{ route('dashboard.index') }}">Dashboard</a></li>
|
||||
@if (isset($pageTitle))
|
||||
<li class="breadcrumb-item active" aria-current="page">{{ $pageTitle }}</li>
|
||||
@else
|
||||
<li class="breadcrumb-item active" aria-current="page"></li>
|
||||
@endif
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-box mb-30">
|
||||
<div class="pd-20">
|
||||
<h4 class="text-blue h4 mb-0">Hasil Riwayat</h4>
|
||||
</div>
|
||||
<form method="POST" action="">
|
||||
@csrf
|
||||
<div class="pb-10">
|
||||
<div class="table-responsive">
|
||||
<table class="data-table table stripe hover nowrap">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>Nama</th>
|
||||
<th>Pilihan Ekstrakurikuler</th>
|
||||
<th>Nilai Akhir</th>
|
||||
{{-- <th>Tanggal Perangkingan</th> --}}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@forelse ($logs as $log)
|
||||
<tr>
|
||||
<td>{{ $loop->iteration }}</td>
|
||||
<td>{{ $log->user->name }}</td>
|
||||
<td>{{ $log->extracuricullar->nama }}</td>
|
||||
<td>{{ $log->final_score }}</td>
|
||||
</tr>
|
||||
@empty
|
||||
<tr>
|
||||
<td colspan="5" class="text-center">Tidak ada data.</td>
|
||||
</tr>
|
||||
@endforelse
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-wrap pd-20 mb-20 card-box">
|
||||
<strong>Sistem Pendukung Keputusan Pemilihan Ekstrakurikuler Metode SMARTER</strong>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
|
@ -107,10 +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::resource('input-nilai', PenilaianController::class);
|
||||
|
||||
// Route::resource('transformasi-nilai', TransformasiNilaiController::class);
|
||||
Route::post('/perangkingan/simpan', [PerhitunganController::class, 'simpanPerangkingan'])->name('perangkingan.simpan');
|
||||
Route::get('/riwayat-hasil', [PerhitunganController::class, 'getRiwayatHasil'])->name('riwayat.hasil');
|
||||
|
||||
Route::get('/logout', [AuthController::class, 'logout'])->name('logout');
|
||||
Route::post('/logout', [AuthController::class, 'logout'])->name('logout');
|
||||
|
|
Loading…
Reference in New Issue