![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/syn.corals.io/Corals/modules/Utility/Classes/Schedule/ |
<?php namespace Corals\Modules\Utility\Classes\Schedule; use Carbon\Carbon; use Corals\Modules\Utility\Models\Schedule\Schedule as ScheduleModel; class ScheduleManager { protected $instance; public function __construct($instance) { $this->instance = $instance; } public function createSchedule($schedule, $user = null) { if (!$user) { $user = user(); } foreach ($schedule ?? [] as $day => $value) { $data_schedules = [ 'scheduleable_id' => $this->instance->id, 'scheduleable_type' => getMorphAlias($this->instance), 'user_id' => $user->id, 'day_of_the_week' => $day, 'start_time' => $value['start'] == 'Off' ? null : Carbon::createFromFormat('H', $value['start']), 'end_time' => $value['end'] == 'Off' ? null : Carbon::createFromFormat('H', $value['end']), ]; ScheduleModel::create($data_schedules); } } public function getSchedule() { $schedules = []; foreach (\Settings::get('utility_days_of_the_week', []) as $key => $day) { $schedules = array_merge($schedules, [ $key => [ 'start' => in_array($key, ['Sat', 'Sun']) ? 'Off' : '08', 'end' => in_array($key, ['Sat', 'Sun']) ? 'Off' : '17', ] ]); } if ($this->instance) { foreach ($this->instance->schedules as $schedule) { $schedules[$schedule->day_of_the_week] = [ 'start' => is_null($schedule->start_time) ? 'Off' : Carbon::createFromFormat('H:i:s', $schedule->start_time)->format('H'), 'end' => is_null($schedule->end_time) ? 'Off' : Carbon::createFromFormat('H:i:s', $schedule->end_time)->format('H'), ]; } } return $schedules; } public function updateSchedule($schedule) { foreach ($schedule ?? [] as $day => $value) { $this->instance->schedules()->updateOrCreate(['day_of_the_week' => $day], [ 'start_time' => $value['start'] == 'Off' ? null : Carbon::createFromFormat('H', $value['start']), 'end_time' => $value['end'] == 'Off' ? null : Carbon::createFromFormat('H', $value['end']), ]); } } }