예제 #1
0
 /**
  * boot
  * observing model
  *
  */
 public static function boot()
 {
     parent::boot();
     PersonSchedule::observe(new PersonScheduleObserver());
 }
예제 #2
0
 /**
  * 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;
 }
예제 #3
0
 /** 
  * 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;
 }