/** * boot * observing model * */ public static function boot() { parent::boot(); PersonSchedule::observe(new PersonScheduleObserver()); }
/** * delete Personschedule and update for persons * * @return void **/ public function delete($id) { $queue = new \App\Models\Queue(); $pending = $queue->find($id); $parameters = json_decode($pending->parameter, true); $messages = json_decode($pending->message, true); $errors = new MessageBag(); $personschedule_data = \App\Models\PersonSchedule::id($parameters['id'])->with(['person'])->first(); if (!$personschedule_data) { $errors->add('Batch', 'Tidak ada Personschedule.'); } elseif (!$personschedule_data->delete()) { $errors->add('Batch', $personschedule_data->getError()); } if (!$errors->count()) { $pnumber = $pending->total_process; $messages['message'][$pnumber] = 'Sukses Menghapus Jadwal ' . (isset($personschedule_data['person']['name']) ? $personschedule_data['person']['name'] : ''); $pending->fill(['process_number' => $pnumber, 'message' => 'Sukses']); } else { $pnumber = $pending->total_process; $messages['message'][$pnumber] = 'Gagal Menghapus Jadwal ' . (isset($personschedule_data['person']['name']) ? $personschedule_data['person']['name'] : ''); $messages['errors'][$pnumber] = $errors; $pending->fill(['process_number' => $pnumber, 'message' => 'Sukses']); } $pending->save(); return true; }
/** * observe Takenworkleave event deleted * 1. check employee on that personschedule * 2. act, accept or refuse * * @param $model * @return bool */ public function deleted($model) { $errors = new MessageBag(); //1. check employee on that day logs if ($model->person()->count()) { $ps = \App\Models\PersonSchedule::ondate($model->on->format('Y-m-d'))->personid($model->person_id)->get(); if ($ps) { foreach ($ps as $key => $value) { if (!$value->delete()) { $errors->add('Schedule', $value->getError()); } } } } if ($errors->count()) { $model['errors'] = $errors; return false; } return true; }