42 lines
1.1 KiB
PHP
42 lines
1.1 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
namespace Controller;
|
|
|
|
use Model\Session;
|
|
use View\BookingOverviewPage;
|
|
use View\Sendable;
|
|
|
|
class BookingOverviewController extends RestrictedPageController
|
|
{
|
|
public function __construct()
|
|
{
|
|
parent::__construct('/bookings.php');
|
|
}
|
|
|
|
protected function runLogic(): Sendable
|
|
{
|
|
$userId = $this->context->session->user->id;
|
|
$page = new BookingOverviewPage($this->context);
|
|
|
|
$sql = Sql::connection();
|
|
$sql->query('START TRANSACTION');
|
|
$stmt = $sql->prepare(
|
|
'SELECT time, type, amount, comment, name as relatedName FROM booking
|
|
LEFT JOIN user ON booking.related = user.id
|
|
WHERE affected = ?
|
|
ORDER BY time, booking.id'
|
|
);
|
|
$stmt->execute([$userId]);
|
|
$page->bookings = $stmt->fetchAll(\PDO::FETCH_ASSOC);
|
|
|
|
$stmt = $sql->prepare('SELECT balance FROM user WHERE id = ?');
|
|
$stmt->execute([$userId]);
|
|
$page->finalBalance = $stmt->fetch(\PDO::FETCH_ASSOC)['balance'];
|
|
|
|
$sql->query('COMMIT');
|
|
|
|
return $page;
|
|
}
|
|
}
|