gastrosaw/app/Http/Controllers/DashboardController.php

194 lines
4.3 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Pasien;
use App\Models\Makanan;
use App\Models\Laporan;
use Carbon\Carbon;
class DashboardController extends Controller
{
public function index()
{
// =========================
// TOTAL DATA
// =========================
$pasienCount = Pasien::count();
$makananCount = Makanan::count();
$laporanCount = Laporan::count();
// =========================
// DATA PASIEN
// =========================
// HARIAN (7 hari)
$pasienHarian = [];
for ($i = 6; $i >= 0; $i--) {
$tanggal = Carbon::now()->subDays($i);
$pasienHarian[] = Pasien::whereDate(
'created_at',
$tanggal
)->count();
}
// MINGGUAN (4 minggu)
$pasienMingguan = [];
for ($i = 3; $i >= 0; $i--) {
$start = Carbon::now()
->subWeeks($i)
->startOfWeek();
$end = Carbon::now()
->subWeeks($i)
->endOfWeek();
$pasienMingguan[] = Pasien::whereBetween(
'created_at',
[$start, $end]
)->count();
}
// BULANAN (6 bulan)
$pasienBulanan = [];
for ($i = 5; $i >= 0; $i--) {
$bulan = Carbon::now()->subMonths($i);
$pasienBulanan[] = Pasien::whereMonth(
'created_at',
$bulan->month
)->whereYear(
'created_at',
$bulan->year
)->count();
}
// =========================
// DATA MAKANAN
// =========================
$makananHarian = [];
for ($i = 6; $i >= 0; $i--) {
$tanggal = Carbon::now()->subDays($i);
$makananHarian[] = Makanan::whereDate(
'created_at',
$tanggal
)->count();
}
$makananMingguan = [];
for ($i = 3; $i >= 0; $i--) {
$start = Carbon::now()
->subWeeks($i)
->startOfWeek();
$end = Carbon::now()
->subWeeks($i)
->endOfWeek();
$makananMingguan[] = Makanan::whereBetween(
'created_at',
[$start, $end]
)->count();
}
$makananBulanan = [];
for ($i = 5; $i >= 0; $i--) {
$bulan = Carbon::now()->subMonths($i);
$makananBulanan[] = Makanan::whereMonth(
'created_at',
$bulan->month
)->whereYear(
'created_at',
$bulan->year
)->count();
}
// =========================
// DATA LAPORAN
// =========================
$laporanHarian = [];
for ($i = 6; $i >= 0; $i--) {
$tanggal = Carbon::now()->subDays($i);
$laporanHarian[] = Laporan::whereDate(
'created_at',
$tanggal
)->count();
}
$laporanMingguan = [];
for ($i = 3; $i >= 0; $i--) {
$start = Carbon::now()
->subWeeks($i)
->startOfWeek();
$end = Carbon::now()
->subWeeks($i)
->endOfWeek();
$laporanMingguan[] = Laporan::whereBetween(
'created_at',
[$start, $end]
)->count();
}
$laporanBulanan = [];
for ($i = 5; $i >= 0; $i--) {
$bulan = Carbon::now()->subMonths($i);
$laporanBulanan[] = Laporan::whereMonth(
'created_at',
$bulan->month
)->whereYear(
'created_at',
$bulan->year
)->count();
}
// =========================
// VIEW
// =========================
return view('dashboard.index', compact(
'pasienCount',
'makananCount',
'laporanCount',
'pasienHarian',
'pasienMingguan',
'pasienBulanan',
'makananHarian',
'makananMingguan',
'makananBulanan',
'laporanHarian',
'laporanMingguan',
'laporanBulanan'
));
}
}