public function doUpcommingReservations() { $gameTypeId = $this->getParam('game'); $date_from = DatetimeManager::format(strtotime('now'), DatetimeManager::DB_FULL); $date_to = DatetimeManager::format(strtotime('+ 1 month'), DatetimeManager::DB_FULL); $reservations = $this->reservations->fetchWithinByGame($date_from, $date_to, $gameTypeId); $subTemplate = ['reservations' => $reservations, 'urlgen' => $this->urlGen]; $this->template['response'] = $this->twig->render('ajax/upcommingReservations.twig', $subTemplate); }
/** * @param PDO $pdo * @return UserExtended */ public function getCurrentUser() { if (!isset($_SESSION['user'])) { return new UserExtended(); } $orion_login = $_SESSION['user']; $dbUser = UserExtended::fetch($this->pdo, $orion_login); if (!$dbUser) { return new UserExtended(); } $time = DatetimeManager::format(time(), DatetimeManager::DB_FULL); User::updateActivity($this->pdo, $orion_login, $time); return $dbUser; }
/** * * @param Tables\Reservation $reservation * @return mixed[] */ private function validateReservation($reservation, $game_type_id) { $dateTimeRaw = ['date' => strtotime($reservation->reservation_date), 'time_from' => strtotime($reservation->time_from), 'time_to' => strtotime($reservation->time_to)]; $dateTime = ['date' => DatetimeManager::format($dateTimeRaw['date'], DatetimeManager::DB_DATE_ONLY), 'time_from' => DatetimeManager::format($dateTimeRaw['time_from'], DatetimeManager::DB_TIME_ONLY), 'time_to' => DatetimeManager::format($dateTimeRaw['time_to'], DatetimeManager::DB_TIME_ONLY)]; if ($dateTimeRaw['time_from'] > $dateTimeRaw['time_to']) { return ['result' => false, 'message' => "Čas konce rezervace musí následovat čas začátku rezervace."]; } $hour = date("H", $dateTimeRaw['time_from']); if ($hour * 1 < Tables\Reservation::EARLY_RESERVATION) { return ['result' => false, 'message' => "Nelze vytvářet rezervace před začátkem rezervací({$hour})"]; } $hour = date("H", $dateTimeRaw['time_to']); if ($hour * 1 > Tables\Reservation::LATE_RESERVATION) { return ['result' => false, 'message' => "Nelze vytvářet rezervace po konci rezervací({$hour})"]; } $eventExists = Tables\Event::existsDuring($this->pdo, $dateTime['date'], $dateTime['time_from'], $dateTime['time_to']); if ($eventExists) { return ['result' => false, 'message' => sprtintf('Ve vámi zvolený čas je již naplánovaná událost a nelze tedy uložit rezervaci.')]; } if ($reservation->desk_id != Tables\Desk::NO_DESK) { if (!Views\ReservationExtended::checkDeskAvailable($this->pdo, $reservation->desk_id, $dateTime['date'], $dateTime['time_from'], $dateTime['time_to'])) { return ['result' => false, 'message' => \sprintf("Stůl č %02d je ve vámi zvolený čas obsazený", $reservation->desk_id)]; } } $boxes = Views\ReservationExtended::getAvailableGameBox($this->pdo, $game_type_id, $dateTime['date'], $dateTime['time_from'], $dateTime['time_from']); if ($boxes === false) { return ['result' => false, 'message' => "Při kontrole použitých krabic nastala chyba."]; } if (empty($boxes)) { return ['result' => false, 'message' => "Ve vámi zvolený čas není dostupná žádná herní krabice požadované hry."]; } return ['result' => true, 'box' => array_shift(array_slice($boxes, 0, 1))]; }
public function time($time) { $iTime = strtotime($time); return DatetimeManager::format($iTime, DatetimeManager::HUMAN_TIME_ONLY); }