Add Slot
This commit is contained in:
@@ -6,6 +6,7 @@ use App\Helpers\Helper;
|
||||
use App\Models\Organization;
|
||||
use App\Models\Practitioner;
|
||||
use App\Models\PractitionerRole;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Contracts\Support\Renderable;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Routing\Controller;
|
||||
@@ -156,6 +157,16 @@ class DoctorController extends Controller
|
||||
'hospital_id' => 'required_if:type,walkin',
|
||||
'start_date' => ['required', 'date']
|
||||
]);
|
||||
|
||||
$schedules = [
|
||||
'Senin' => [],
|
||||
'Selasa' => [],
|
||||
'Rabu' => [],
|
||||
'Kamis' => [],
|
||||
'Jumat' => [],
|
||||
'Sabtu' => [],
|
||||
'Minggu' => []
|
||||
];
|
||||
|
||||
if ($request->type == 'walkin') {
|
||||
|
||||
@@ -168,19 +179,41 @@ class DoctorController extends Controller
|
||||
|
||||
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));
|
||||
}
|
||||
$practitionerRole->availabilities->sortBy('start_time')
|
||||
->each(function ($availability) use (&$schedules) {
|
||||
$availability_days = $availability->days->pluck('day')->toArray();
|
||||
|
||||
foreach ($schedules as $day => $schedule) {
|
||||
|
||||
if (!count($availability->days) || in_array($day, $availability_days)) {
|
||||
|
||||
if (Carbon::parse($availability->start_time) < Carbon::parse("10:00")) {
|
||||
$schedules[$day]['Pagi'][] = [
|
||||
"start" => $availability->start_time,
|
||||
'end' => $availability->end_time
|
||||
];
|
||||
}
|
||||
|
||||
else if (Carbon::parse($availability->start_time) < Carbon::parse("15:00")) {
|
||||
$schedules[$day]['Siang'][] = [
|
||||
"start" => $availability->start_time,
|
||||
'end' => $availability->end_time
|
||||
];
|
||||
}
|
||||
|
||||
else {
|
||||
$schedules[$day]['Malam'][] = [
|
||||
"start" => $availability->start_time,
|
||||
'end' => $availability->end_time
|
||||
];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
} else if ($request->type == 'teleconsultation') {
|
||||
|
||||
@@ -197,35 +230,51 @@ class DoctorController extends Controller
|
||||
->where('id', $id)
|
||||
->first();
|
||||
|
||||
$schedules = [
|
||||
'Senin' => [],
|
||||
'Selasa' => [],
|
||||
'Rabu' => [],
|
||||
'Kamis' => [],
|
||||
'Jumat' => [],
|
||||
'Sabtu' => [],
|
||||
'Minggu' => []
|
||||
];
|
||||
|
||||
foreach ($practitioner->practitionerRoles as $role) {
|
||||
|
||||
foreach ($role->daily_availabilities as $day => $times) {
|
||||
$role->availabilities->sortBy('start_time')
|
||||
->each(function ($availability) use (&$schedules) {
|
||||
$availability_days = $availability->days->pluck('day')->toArray();
|
||||
|
||||
// Merge All Role Availabilities
|
||||
$schedules[$day] = array_unique(array_merge($schedules[$day], $times));
|
||||
// $schedules[] = [
|
||||
// 'day' => $day,
|
||||
// 'times' => array_unique( array_merge($schedules[$day], $times) )
|
||||
// ];
|
||||
foreach ($schedules as $day => $schedule) {
|
||||
|
||||
}
|
||||
if (!count($availability->days) || in_array($day, $availability_days)) {
|
||||
|
||||
if (Carbon::parse($availability->start_time) < Carbon::parse("10:00")) {
|
||||
$schedules[$day]['Pagi'][] = [
|
||||
"start" => $availability->start_time,
|
||||
'end' => $availability->end_time
|
||||
];
|
||||
}
|
||||
|
||||
else if (Carbon::parse($availability->start_time) < Carbon::parse("15:00")) {
|
||||
$schedules[$day]['Siang'][] = [
|
||||
"start" => $availability->start_time,
|
||||
'end' => $availability->end_time
|
||||
];
|
||||
}
|
||||
|
||||
else {
|
||||
$schedules[$day]['Malam'][] = [
|
||||
"start" => $availability->start_time,
|
||||
'end' => $availability->end_time
|
||||
];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
continue; // TODO Fix This
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$datesAvailabilities = Helper::dailyAvailabilitiesToDate($schedules, $request->start_date, $request->end_date ?? null);
|
||||
|
||||
return response()->json($datesAvailabilities);
|
||||
return Helper::responseJson(data: $datesAvailabilities);
|
||||
|
||||
return response()->json([
|
||||
'message' => 'Jadwal praktek dokter tidak ditemukan'
|
||||
|
||||
Reference in New Issue
Block a user