MIF_E31221281/TA-website/app/Http/Controllers/DashboardController.php

60 lines
2.4 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Admin;
use App\Models\Karyawan;
use App\Models\Pelanggan;
use App\Models\Reservasi;
use Illuminate\Support\Facades\Auth;
class DashboardController extends Controller
{
public function index()
{
if (Auth::check()) {
$role = auth()->user()->roles;
switch ($role) {
case 'admin':
$myData = Admin::all()->where('id_user', '=', auth()->user()->id)->first();
$reservasi = Reservasi::where('tanggal_pemesanan', today()->toDateString())->whereIn('status', ['upcoming', 'processing'])->count();
$pendapatan = Reservasi::whereYear('tanggal_pemesanan', now()->year)
->whereIn('status', ['finished'])
->whereMonth('tanggal_pemesanan', now()->month)
->sum('biaya');
$pelanggan = Pelanggan::count();
$datas = [
'myData' => $myData,
'countReservasi' => $reservasi,
'pendapatan' => $pendapatan,
'countPelanggan' => $pelanggan,
];
break;
case 'karyawan':
$id_karyawan = auth()->user()->karyawans->id;
$myData = Karyawan::all()->where('id_user', auth()->user()->id)->first();
$reservasi = Reservasi::where('tanggal_pemesanan', today()->toDateString())->where('id_karyawan', $id_karyawan)->whereIn('status', ['upcoming', 'processing'])->count();
$datas = [
'myData' => $myData,
'countReservasi' => $reservasi,
];
break;
case 'pelanggan':
$id_user = auth()->user()->id;
$myData = Pelanggan::all()->where('id_user', auth()->user()->id)->first();
$reservasi = Reservasi::where('tanggal_pemesanan', '>=', today()->toDateString())
->where('id_user', $id_user)
->count();
$datas = [
'myData' => $myData,
'countReservasi' => $reservasi,
];
break;
}
}
return view('pages.dashboard.dashboard', $datas);
}
}