/** * store Personschedule and update for persons * * @return void **/ public function store($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(); $data = \App\Models\PersonSchedule::ondate($parameters['on'])->personid($parameters['person_id'])->with(['person'])->first(); if ($data) { $personschedule_data = $data; } else { $personschedule_data = new \App\Models\PersonSchedule(); } $personschedule_data->fill($parameters); if (!$personschedule_data->save()) { $errors->add('Batch', $personschedule_data->getError()); } if (!$errors->count()) { $morphed = new \App\Models\QueueMorph(); $morphed->fill(['queue_id' => $id, 'queue_morph_id' => $personschedule_data->id, 'queue_morph_type' => get_class($personschedule_data)]); $morphed->save(); $pnumber = $pending->total_process; $messages['message'][$pnumber] = 'Sukses Menyimpan 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 Menyimpan 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; }