<?php require_once __DIR__ . '/../base.php'; require_once __DIR__ . '/../../rest/models/guestModel.php'; require_once __DIR__ . '/../../rest/models/paymentModel.php'; require_once __DIR__ . '/../lib/class/payu.php'; $guest = new guestModel(); $payment = new paymentModel(); $timetoapprove = 10 * 24 * 3600; $from = Bootstrap::$main->now - $timetoapprove; $payu = new payu(); $payus = $payment->getAllForChannel('payu', $from, 5); if (is_array($payus)) { foreach ($payus as $p) { $prc = 100 * (Bootstrap::$main->now - $p['d_payment_create']) / $timetoapprove; if ($p['d_cancel']) { $r = $payu->cancel_payment($p); Tools::log('payu', ['cancel', $r, $p]); } elseif ($p['d_deadline'] + 3600 < Bootstrap::$main->now || $prc > 90) { $r = $payu->confirm_payment($p); Tools::log('payu', ['confirm', $r, $p]); } } } foreach ($guest->getCanceledGuests() ?: [] as $g) { $payments = $payment->getForGuest($g['id']); if (is_array($payments)) { foreach ($payments as $p) { $classname = $p['channel']; $classfile = __DIR__ . '/../lib/class/' . $classname . '.php'; if (!file_exists($classfile)) {
public function delete() { require_once __DIR__ . '/../models/paymentModel.php'; require_once __DIR__ . '/../models/imageLabelModel.php'; require_once __DIR__ . '/../models/rateModel.php'; require_once __DIR__ . '/../models/guestModel.php'; require_once __DIR__ . '/../models/tagModel.php'; $this->requiresLogin(); if ($this->id && $this->id != Bootstrap::$main->user['id']) { $this->requiresLogin(true); } $user_id = $this->id ?: Bootstrap::$main->user['id']; $backup = []; $backup['user'] = $this->user($user_id)->data(); $md5hash = $backup['user']['md5hash']; $images = new imageModel(); $labels = new imageLabelModel(); $rates = new rateModel(); $guests = new guestModel(); $events = new eventModel(); $tags = new tagModel(); $payments = new paymentModel(); $backup['image'] = $images->getUsersImages($user_id) ?: []; $backup['imageLabels'] = []; foreach ($backup['image'] as $img) { $backup['imageLabels'] = array_merge($backup['imageLabels'], $labels->select(['image' => $img['id']]) ?: []); } $backup['event'] = $events->select(['user' => $user_id]) ?: []; $backup['tag'] = $tags->select(['user' => $user_id]) ?: []; foreach ($backup['event'] as $event) { $backup['tag'] = array_merge($backup['tag'], $tags->select(['event' => $event['id']]) ?: []); } $backup['rate'] = $rates->select(['user' => $user_id]) ?: []; $backup['rate'] = array_merge($backup['rate'], $rates->select(['host' => $user_id]) ?: []); $backup['guest'] = $guests->select(['user' => $user_id]) ?: []; $backup['payment'] = []; foreach ($backup['guest'] as $guest) { $backup['payment'] = array_merge($backup['payment'], $payments->select(['guest' => $guest['id']]) ?: []); } $backup_json = json_encode($backup, JSON_NUMERIC_CHECK); $path = 'arch/' . $md5hash . '/' . Bootstrap::$main->human_datetime_format(Bootstrap::$main->now); Tools::save($path . '/data.json', $backup_json); Tools::save($path . '/img', null, 'img/' . $md5hash); Tools::log('remove-user', Bootstrap::$main->user['id']); $this->user()->remove(); if (!$this->id || $this->id == Bootstrap::$main->user['id']) { return $this->get_logout(); } 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); } }