Files
onboard/app/Http/Controllers/Api/DepartmentController.php

54 lines
1.7 KiB
PHP

<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Models\Department;
use App\Models\MisLpuDoctor;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class DepartmentController extends Controller
{
public function index(Request $request)
{
$user = $request->user();
$departmentIds = $user->departments()->pluck('rf_department_id');
$departments = Department::whereIn('department_id', $departmentIds)->orderBy('name_short')->get();
return response()->json($departments);
}
public function getDepartmentUsers(Department $department, Request $request)
{
$onlyUserDepartment = filter_var($request->query('onlyUserDepartment', false), FILTER_VALIDATE_BOOLEAN);
$type = $request->query('type', 'duty');
if ($onlyUserDepartment) {
$departmentId = $department->rf_mis_department_id;
} else {
$user = Auth::user();
$departmentId = $user->department->rf_mis_department_id;
}
$users = MisLpuDoctor::select(['LPUDoctorID', 'FAM_V', 'IM_V', 'OT_V'])
->whereHas('prvds', function ($query) use ($departmentId, $type) {
$query->when($type === 'nurse', function ($query) {
$query->whereIn('rf_PRVDID', [1567, 1629]);
})
->where('rf_DepartmentID', $departmentId)
->whereDate('D_END', '2222-01-01 00:00:00.000000');
})
->active()
->whereNotIn('LPUDoctorID', [0, 1])
->orderBy('FAM_V')
->get();
return response()->json([
...$users,
])->setStatusCode(200);
}
}