61 lines
1.9 KiB
PHP
61 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Buku;
|
|
use App\Models\User;
|
|
use App\Models\Kategori;
|
|
use App\Models\Pinjaman;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\DB;
|
|
use App\Http\Controllers\User\Peminjaman;
|
|
|
|
class DashboardController extends Controller
|
|
{
|
|
public function index()
|
|
|
|
{
|
|
$jumlah_kategori = Kategori::count();
|
|
$jumlah_buku = Buku::count();
|
|
$jumlah_user = User::where('id_role', 2)->count();
|
|
$total_peminjaman = Pinjaman::where('status', 'Pinjam')->count();
|
|
|
|
// Ambil data pinjaman per hari dari database
|
|
$chart_pinjaman_per_hari = DB::table('pinjaman')
|
|
->selectRaw('DATE(created_at) as date, count(*) as total')
|
|
->where('status', 'Pinjam')
|
|
->groupByRaw('DATE(created_at)')
|
|
->get();
|
|
|
|
// dd($chart_pinjaman_per_hari);
|
|
|
|
// Inisialisasi array untuk menyimpan data pinjaman per hari
|
|
$daysOfWeek = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
|
|
$pinjamanPerHari = array_fill_keys($daysOfWeek, 0);
|
|
|
|
// Isi array dengan data dari database
|
|
foreach ($chart_pinjaman_per_hari as $data) {
|
|
$dayName = date('l', strtotime($data->date)); // Ambil nama hari dalam bahasa Inggris
|
|
$pinjamanPerHari[$dayName] = $data->total;
|
|
}
|
|
|
|
// Urutkan array sesuai dengan urutan hari
|
|
$pinjamanPerHariOrdered = [];
|
|
foreach ($daysOfWeek as $day) {
|
|
$pinjamanPerHariOrdered[] = $pinjamanPerHari[$day];
|
|
}
|
|
|
|
// dd($pinjamanPerHariOrdered, $daysOfWeek);
|
|
|
|
|
|
return view('admin.pages.dashboard', [
|
|
'jumlah_kategori' => $jumlah_kategori,
|
|
'jumlah_buku' => $jumlah_buku,
|
|
'jumlah_user' => $jumlah_user,
|
|
'total_peminjaman' => $total_peminjaman,
|
|
'pinjamanPerHariOrdered' => $pinjamanPerHariOrdered,
|
|
'daysOfWeek' => $daysOfWeek,
|
|
]);
|
|
}
|
|
}
|