rsabhk-joko_prasetio/app/Http/Controllers/dashboardController.php
2025-04-27 23:22:00 +07:00

68 lines
2.1 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\asuransi;
use App\Models\patient;
use App\Models\roomService;
use App\Models\transaksi;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Spatie\FlareClient\View;
class dashboardController extends Controller
{
public function index(Request $request){
$filter = $request->filter ?? 'today'; // default hari ini
$startDate = null;
$endDate = null;
if ($filter == 'today') {
$startDate = Carbon::today();
$endDate = Carbon::today();
} elseif ($filter == 'yesterday') {
$startDate = Carbon::yesterday();
$endDate = Carbon::yesterday();
} elseif ($filter == '7days') {
$startDate = Carbon::now()->subDays(6);
$endDate = Carbon::today();
} elseif ($filter == '30days') {
$startDate = Carbon::now()->subDays(29);
$endDate = Carbon::today();
} elseif ($filter == 'this_month') {
$startDate = Carbon::now()->startOfMonth();
$endDate = Carbon::now()->endOfMonth();
} elseif ($filter == 'custom' && $request->start_date && $request->end_date) {
$startDate = Carbon::parse($request->start_date);
$endDate = Carbon::parse($request->end_date);
}
// Query transaksi berdasarkan range tanggal
$query = Transaksi::where('is_delete', false);
if ($startDate && $endDate) {
$query->whereBetween('created_at', [$startDate->startOfDay(), $endDate->endOfDay()]);
}
$trx_today = $query->count();
$trx_nominal = $query->sum('price');
$transaksi = $query->limit(5)->get();
// Data tambahan
$total_rp = RoomService::where('is_delete', false)->count();
$asuransi = Asuransi::where('is_delete', false)->count();
$pasien = Patient::where('is_delete', false)->count();
$data =[
'title' => 'Dashboard',
'trx_today' => $trx_today,
'trx_nominal' => $trx_nominal,
'asuransi' => $asuransi,
'pasien' => $pasien,
'total_rp'=>$total_rp,
'transaksi' => $transaksi
];
return view('dashboard.index', $data);
}
}