Пример #1
0
 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();
 }
Пример #2
0
 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);
     }
 }