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(); }
protected function paid(paymentModel $payment, $amount) { if (0.9 * $payment->amount < $amount) { $image = new imageModel(); $guest = new guestModel($payment->guest); if ($guest->d_payment) { return; } $guest->d_payment = Bootstrap::$main->now; $guest->save(); $e = $this->event()->get($guest->event); Tools::userHasAccessToEvent($guest->event, $guest->user, true); $data = []; $data['event'] = $this->event()->data(); $user = new userModel($data['event']['user']); $data['host'] = $user->data(); Bootstrap::$main->session('time_delta', $user->delta); Bootstrap::$main->human_datetime_format(); $data['event'] = $this->event()->get($guest->event); $data['event']['img'] = $image->get($data['event']['img']); $user->get($guest->user); $data['guest'] = $user->data(); $data['data'] = $guest->data(); $data['payment'] = $payment->data(); if (isset($data['payment']['notify'])) { $data['notify'] = json_decode($data['payment']['notify'], true); } $ics = Ics::invitation($e, $data['host'], $data['guest'], $e['create'], $guest->create); Tools::observe('event-paid-to-host', $data); Tools::observe('event-paid-to-guest', $data, [['invite.ics' => $ics]]); Tools::log('guest', $data); $eventController = new eventController(); $eventController->recalculate_fullhouse($guest->event); } }