194 lines
4.3 KiB
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'
|
|
));
|
|
}
|
|
} |