sim_rs/app/Http/Controllers/DashboardController.php
Muhammad Thoriq 7966b1f95d Set Project
2025-04-27 20:58:13 +07:00

138 lines
4.1 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Module_line;
use App\Models\Registrasi;
use App\Models\Transaksi;
use Exception;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class DashboardController extends Controller
{
//
public function index()
{
$data['title'] = 'DASHBOARD';
return view('dashboard.index', $data);
}
public function get_module()
{
$module_access = json_decode(session('module_access'));
$get_parent = Module_line::whereIn('id', $module_access)->where('parent_id', 0)->get();
try {
$data = [];
foreach ($get_parent as $key => $value) {
$get_child = Module_line::select(['id', 'module_name', 'image', 'module_url'])->whereIn('id', $module_access)->where('parent_id', $value->id)->get();
$data[] = [
'id' => $value->id,
'module_name' => $value->module_name,
'image' => $value->image,
'module_url' => $value->module_url,
'child' => $get_child
];
}
$data_return = [
'status' => true,
'data' => $data,
'msg' => null
];
return response()->json($data_return, 200);
} catch (Exception $e) {
//throw $th;
dd($e);
$data_return = [
'status' => false,
'data' => null,
'msg' => 'something wrong!!'
];
return response()->json($data_return, 500);
}
}
public function get_total_pasien()
{
$get_data = Registrasi::select([
DB::raw('count(*) as total'),
'registrasi_tanggal',
])
->whereRaw('MONTH(registrasi_tanggal) = ?', [date('m')])
->whereRaw('registrasi_tanggal <= ?', [date('Y-m-d')])
->whereIn('status', [0, 1, 2, 3])
->groupBy('registrasi_tanggal')
->get();
$get_total_today = Registrasi::select([
DB::raw('count(*) as total'),
'registrasi_tanggal',
])
->whereRaw('registrasi_tanggal = ?', [date('Y-m-d')])
->whereIn('status', [0, 1, 2, 3])
->first();
if ($get_data && $get_total_today) {
$data_return = [
'status' => true,
'data' => [
'chart' => $get_data,
'total_today' => $get_total_today
],
'msg' => null
];
return response()->json($data_return, 200);
} else {
$data_return = [
'status' => false,
'data' => null,
'msg' => 'Data Not Found!'
];
return response()->json($data_return, 404);
}
}
public function get_total_fund()
{
$get_data = Transaksi::select([
DB::raw('SUM(tindakan_tarif_total + biaya_tambahan) as total'),
DB::raw('DATE(created_at) as tanggal'),
])
->whereRaw('MONTH(created_at) = ?', [date('m')])
->whereRaw('DATE(created_at) <= ?', [date('Y-m-d')])
->whereIn('is_pay', [1])
->groupBy('tanggal')
->get();
$get_total_today = Transaksi::select([
DB::raw('SUM(tindakan_tarif_total + biaya_tambahan) as total'),
DB::raw('DATE(created_at) as tanggal'),
])
->whereRaw('DATE(created_at) = ?', [date('Y-m-d')])
->whereIn('is_pay', [1])
->first();
if ($get_data && $get_total_today) {
$data_return = [
'status' => true,
'data' => [
'chart' => $get_data,
'total_today' => $get_total_today
],
'msg' => null
];
return response()->json($data_return, 200);
} else {
$data_return = [
'status' => false,
'data' => null,
'msg' => 'Data Not Found!'
];
return response()->json($data_return, 404);
}
}
}