public function delete($auto = false) { $this->requiresLogin(); $event = $this->event()->get(0 + $this->id); if (!isset($event['user']) || $event['user'] != Bootstrap::$main->user['id']) { return $this->error(19); } $model = new eventModel($event); if (!$model->getGuests() && count($model->get_dates($model->id, false)) == 1) { $model->remove(); return $this->status(); } elseif (!$auto && $model->d_event_start < Bootstrap::$main->now) { return $this->error(60); } else { $guests = $model->getGuests(); $guestModel = new guestModel(); $otoken = $auto ? 'auto-cancel' : 'host-cancel'; Bootstrap::$main->human_datetime_format(); $event = $this->event()->get(0 + $this->id); $host = $this->user()->get($event['user']); if (is_array($guests)) { foreach ($guests as $guest) { $guestModel->get($guest['guest_id']); $guestModel->cancel_reason = $this->data('reason'); $guestModel->d_cancel = Bootstrap::$main->now; $guestModel->canceler = Bootstrap::$main->user['id']; $guestModel->save(); $ics = Ics::cancelation($event, $host, $guest, $event['create'], $event['change']); $data = $guestModel->data(); $data['event'] = $event; $data['guest'] = $guest; $data['host'] = $host; if ($guestModel->d_payment) { Tools::observe($otoken, $data, [['cancel.ics' => $ics]]); } } } $model->active = -1; $model->save(); Tools::log('event-' . $otoken, ['event' => $model->data(), 'guests' => $guests]); } return $this->status(); }
public function delete() { $this->requiresLogin(); $this->check_input(); $guest = $this->guest()->get($this->id); if (!isset($guest['user'])) { $this->error(29); } if ($guest['user'] != Bootstrap::$main->user['id']) { Bootstrap::$main->human_datetime_format(); } $event = $this->event()->get($guest['event']); if ($guest['user'] != Bootstrap::$main->user['id'] && $event['user'] != Bootstrap::$main->user['id']) { $this->error(19); } if (!$this->guest()->d_payment) { $this->guest()->remove(); return $this->status(); } if ($event['d_event_start'] < Bootstrap::$main->now) { $this->error(70); } $this->guest()->cancel_reason = $this->data('reason'); $this->guest()->d_cancel = Bootstrap::$main->now; $this->guest()->canceler = Bootstrap::$main->user['id']; $this->guest()->save(); $eventController = new eventController(); $eventController->recalculate_fullhouse($this->guest()->event); Bootstrap::$main->human_datetime_format(); $this->event()->get($this->guest()->event); $data = $this->guest()->data(); $data['event'] = $this->event()->data(); $data['guest'] = $this->user()->get($guest['user']); $data['host'] = $this->user()->get($event['user']); $ics = Ics::cancelation($event, $data['host'], $data['guest'], $event['create'], $event['change']); if ($event['user'] == Bootstrap::$main->user['id']) { Tools::observe('guest-canceled-by-host', $data, [['cancel.ics' => $ics]]); } else { Tools::observe('event-canceled', $data, [['cancel.ics' => $ics]]); Tools::observe('event-canceled-to-host', $data); } return $this->status($this->guest()->data()); }