|
|
|
<?php
|
|
|
|
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
|
|
|
|
use Illuminate\Http\Request;
|
|
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
|
|
|
|
class HomeController extends Controller
|
|
|
|
{
|
|
|
|
//halaman Admin
|
|
|
|
public function index()
|
|
|
|
{
|
|
|
|
$data = [
|
|
|
|
'reminder' => \App\Models\asset_status::whereNull('enter_at')->count(),
|
|
|
|
'jumlahPeti' => \App\Models\Peti::count(),
|
|
|
|
'jumlahPeminjaman' => \App\Models\asset_status::count(),
|
|
|
|
'jumlahPengembalian' => \App\Models\asset_status::whereNotNull('enter_at')->count(),
|
|
|
|
'active' => 'menu-admin',
|
|
|
|
];
|
|
|
|
|
|
|
|
return view('dashboard.index', $data);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function notification()
|
|
|
|
{
|
|
|
|
$notification = \App\Models\asset_status::whereNull('enter_at')
|
|
|
|
->whereDate('est_pengembalian', \Carbon\Carbon::today())
|
|
|
|
->get();
|
|
|
|
|
|
|
|
$data = [
|
|
|
|
'notifikasi' => $notification,
|
|
|
|
'active' => 'menu-admin',
|
|
|
|
];
|
|
|
|
|
|
|
|
return view('layouts.navbar_list', $data);
|
|
|
|
}
|
|
|
|
|
|
|
|
//data pertahun untuk bar chart
|
|
|
|
public function generateChartData()
|
|
|
|
{
|
|
|
|
$years = [];
|
|
|
|
$exitData = [];
|
|
|
|
$enterData = [];
|
|
|
|
$monthNames = [
|
|
|
|
'Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni',
|
|
|
|
'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember'
|
|
|
|
];
|
|
|
|
|
|
|
|
// Ambil data tahun dari kolom exit_at
|
|
|
|
$exitYears = \App\Models\asset_status::selectRaw('YEAR(exit_at) as year')
|
|
|
|
->distinct()
|
|
|
|
->orderBy('year', 'asc')
|
|
|
|
->get()
|
|
|
|
->pluck('year')
|
|
|
|
->toArray();
|
|
|
|
|
|
|
|
// Ambil data tahun dari kolom enter_at
|
|
|
|
$enterYears = \App\Models\asset_status::selectRaw('YEAR(enter_at) as year')
|
|
|
|
->distinct()
|
|
|
|
->orderBy('year', 'asc')
|
|
|
|
->get()
|
|
|
|
->pluck('year')
|
|
|
|
->toArray();
|
|
|
|
|
|
|
|
// Gabungkan dan sortir tahun-tahun dari kedua kolom
|
|
|
|
$years = array_merge($exitYears, $enterYears);
|
|
|
|
$years = array_unique($years);
|
|
|
|
sort($years);
|
|
|
|
|
|
|
|
foreach ($years as $year) {
|
|
|
|
$yearExitData = [];
|
|
|
|
$yearEnterData = [];
|
|
|
|
|
|
|
|
// Ambil data untuk setiap bulan dalam tahun tersebut
|
|
|
|
foreach ($monthNames as $monthName) {
|
|
|
|
$exitCount = \App\Models\asset_status::whereYear('exit_at', $year)
|
|
|
|
->whereMonth('exit_at', array_search($monthName, $monthNames) + 1)
|
|
|
|
->count();
|
|
|
|
$enterCount = \App\Models\asset_status::whereYear('enter_at', $year)
|
|
|
|
->whereMonth('enter_at', array_search($monthName, $monthNames) + 1)
|
|
|
|
->count();
|
|
|
|
|
|
|
|
$yearExitData[] = $exitCount;
|
|
|
|
$yearEnterData[] = $enterCount;
|
|
|
|
}
|
|
|
|
|
|
|
|
$exitData[] = $yearExitData;
|
|
|
|
$enterData[] = $yearEnterData;
|
|
|
|
}
|
|
|
|
|
|
|
|
return compact('years', 'exitData', 'enterData', 'monthNames');
|
|
|
|
}
|
|
|
|
|
|
|
|
//data pertahun untuk pie chart
|
|
|
|
public function generateChartDataPie()
|
|
|
|
{
|
|
|
|
$years = [];
|
|
|
|
$enterData = [];
|
|
|
|
$monthNames = [
|
|
|
|
'Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni',
|
|
|
|
'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember'
|
|
|
|
];
|
|
|
|
|
|
|
|
// Ambil data tahun dari kolom date_pembuatan
|
|
|
|
$enterYears = \App\Models\Peti::selectRaw('YEAR(date_pembuatan) as year')
|
|
|
|
->distinct()
|
|
|
|
->orderBy('year', 'asc')
|
|
|
|
->get()
|
|
|
|
->pluck('year')
|
|
|
|
->toArray();
|
|
|
|
|
|
|
|
// Gabungkan dan sortir tahun-tahun dari kolom date_pembuatan
|
|
|
|
$years = array_unique($enterYears);
|
|
|
|
sort($years);
|
|
|
|
|
|
|
|
foreach ($years as $year) {
|
|
|
|
$yearEnterData = [];
|
|
|
|
|
|
|
|
// Ambil data untuk setiap bulan dalam tahun tersebut
|
|
|
|
foreach ($monthNames as $monthName) {
|
|
|
|
$enterCount = \App\Models\Peti::whereYear('date_pembuatan', $year)
|
|
|
|
->whereMonth('date_pembuatan', array_search($monthName, $monthNames) + 1)
|
|
|
|
->count();
|
|
|
|
|
|
|
|
$yearEnterData[] = $enterCount;
|
|
|
|
}
|
|
|
|
|
|
|
|
$enterData[] = $yearEnterData;
|
|
|
|
}
|
|
|
|
|
|
|
|
return compact('years', 'enterData', 'monthNames');
|
|
|
|
}
|
|
|
|
}
|