Exemplo n.º 1
0
 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);
 }
Exemplo n.º 2
0
 /**
  * @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;
 }
Exemplo n.º 3
0
 /**
  * 
  * @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))];
 }
Exemplo n.º 4
0
 public function time($time)
 {
     $iTime = strtotime($time);
     return DatetimeManager::format($iTime, DatetimeManager::HUMAN_TIME_ONLY);
 }