Update Schedules
This commit is contained in:
@@ -149,4 +149,92 @@ class DoctorController extends Controller
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
public function schedule(Request $request, $id)
|
||||
{
|
||||
$request->validate([
|
||||
'speciality_id' => 'required',
|
||||
'type' => 'required',
|
||||
'hospital_id' => 'required_if:type,walkin',
|
||||
'start_date' => ['required', 'date']
|
||||
]);
|
||||
|
||||
if ($request->type == 'walkin') {
|
||||
|
||||
$practitionerRole = PractitionerRole::query()
|
||||
->where('practitioner_id', $id)
|
||||
->where('organization_id', $request->hospital_id)
|
||||
->where('speciality_id', $request->speciality_id)
|
||||
->with(['availabilities', 'availabilities.days'])
|
||||
->first();
|
||||
|
||||
if ($practitionerRole) {
|
||||
|
||||
$schedules = [
|
||||
'Senin' => [],
|
||||
'Selasa' => [],
|
||||
'Rabu' => [],
|
||||
'Kamis' => [],
|
||||
'Jumat' => [],
|
||||
'Sabtu' => [],
|
||||
'Minggu' => []
|
||||
];
|
||||
|
||||
foreach ($practitionerRole->daily_availabilities as $day => $times) {
|
||||
$schedules[$day] = array_unique( array_merge($schedules[$day], $times) );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} else if ($request->type == 'teleconsultation') {
|
||||
|
||||
$practitioner = Practitioner::query()
|
||||
->with([
|
||||
'practitionerRoles' => function($practitionerRole) use ($request) {
|
||||
if (!empty($request->hospital_id)) {
|
||||
$practitionerRole->where('organization_id', $request->hospital_id);
|
||||
}
|
||||
},
|
||||
'practitionerRoles.availabilities',
|
||||
'practitionerRoles.availabilities.days'
|
||||
])
|
||||
->where('id', $id)
|
||||
->first();
|
||||
|
||||
$schedules = [
|
||||
'Senin' => [],
|
||||
'Selasa' => [],
|
||||
'Rabu' => [],
|
||||
'Kamis' => [],
|
||||
'Jumat' => [],
|
||||
'Sabtu' => [],
|
||||
'Minggu' => []
|
||||
];
|
||||
|
||||
foreach ($practitioner->practitionerRoles as $role) {
|
||||
|
||||
foreach ($role->daily_availabilities as $day => $times) {
|
||||
|
||||
// Merge All Role Availabilities
|
||||
$schedules[$day] = array_unique( array_merge($schedules[$day], $times) );
|
||||
// $schedules[] = [
|
||||
// 'day' => $day,
|
||||
// 'times' => array_unique( array_merge($schedules[$day], $times) )
|
||||
// ];
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
$datesAvailabilities = Helper::dailyAvailabilitiesToDate( $schedules, $request->start_date, $request->end_date ?? null);
|
||||
|
||||
return response()->json($datesAvailabilities);
|
||||
|
||||
return response()->json([
|
||||
'message' => 'Jadwal praktek dokter tidak ditemukan'
|
||||
], 404);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user