68 lines
2.1 KiB
PHP
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);
|
|
}
|
|
}
|