web_php/hotel_booking/ajax/room.php

127 lines
No EOL
7.1 KiB
PHP

<?php
require('../admin/components/db_config.php');
require('../admin/components/utils.php');
date_default_timezone_set("America/Chicago");
session_start();
if(isset($_GET['fetch_room'])){
//check room availability
$check_filter = json_decode($_GET['check_filter'], true);
if($check_filter['checkin'] != '' && $check_filter['checkout'] != ''){
$today_date = new DateTime(date("F j, Y"));
$checkin_date = new DateTime($check_filter['checkin']);
$checkout_date = new DateTime($check_filter['checkout']);
if($checkin_date == $checkout_date){
echo "<p>No options matching your search, please make sure your check-in and check-out date is not the same!</p>";
exit;
} else if($checkout_date < $checkin_date){
echo "<p>No options matching your search, please check your check-out date</p>";
exit;;
} else if($checkin_date < $today_date){
echo "<p>No options matching your search, please check your check-in date</p>";
exit;
}
}
//check guest filter
$guest_filter = json_decode($_GET['guest_filter'], true);
$adult = ($guest_filter['adult']!='') ? $guest_filter['adult'] : 0;
$children = ($guest_filter['children']!='') ? $guest_filter['children'] : 0;
//output available room
$count_room = 0;
$setting_query = "SELECT *FROM `settings` WHERE `sr_no` = 1";
$settings_result = mysqli_fetch_assoc(mysqli_query($con, $setting_query));
$output = "";
$room_res = select("SELECT * FROM `rooms` WHERE `adult` >=? AND `children` >=? AND `status`=? AND `removed`=?", [$adult, $children, 1, 0], 'iiii');
while($room_data = mysqli_fetch_assoc($room_res)){
//fetch room availability
if($check_filter['checkin'] != '' && $check_filter['check-out'] != ''){
$data_query = "SELECT COUNT(*) AS `total_booking` FROM `booking_order` WHERE booking_status=? AND room_id=? AND check_out > ? AND check_in < ?";
$values = ['pending', $room_data['id'], $check_filter['checkin'], $check_filter['checkout']];
$data_fetch = mysqli_fetch_assoc(select($data_query, $values, 'siss'));
if(($room_data['quantity'] - $data_fetch['total_booking']) == 0){
continue;
}
}
//get accommodation data from database
$accom_q = mysqli_query($con, "SELECT a.name FROM `accommodation` a INNER JOIN `room_accommodation` raccom ON a.id = raccom.accommodation_id WHERE raccom.room_id = '$room_data[id]'");
$accommodation_data = "";
while($accom_row = mysqli_fetch_assoc($accom_q)){
$accommodation_data .="<span class='badge text-dark mb-1' style='border-radius: 25px; background-color: #F3EEEA;'>$accom_row[name]</span>";
}
//get additional accommodation data from database
$addi_q = mysqli_query($con, "SELECT a.name FROM `additional_accomm` a INNER JOIN `room_additionalAccom` raddi ON a.id = raddi.additionalAccom_id WHERE raddi.room_id = '$room_data[id]'");
$additionalAccom_data = "";
while($addi_row = mysqli_fetch_assoc($addi_q)){
$additionalAccom_data .="<span class='badge text-dark mb-1 mx-1' style='border-radius: 25px; background-color: #F3EEEA;'>$addi_row[name]</span>";
}
//get cover image
$room_cover = ROOM_IMG_PATH."logo.png";
$cover_q = mysqli_query($con, "SELECT * FROM `room_images` WHERE `room_id`='$room_data[id]' AND `upload`='1'");
if(mysqli_num_rows($cover_q) > 0){
$cover_res = mysqli_fetch_assoc($cover_q);
$room_cover = ROOM_IMG_PATH.$cover_res['image'];
}
//booking & shutdown booking process
$booking = "";
if(!$settings_r['shutdown']){
$login = 0;
if(isset($_SESSION['login']) && $_SESSION['login'] == true){
$login=1;
}
$booking = "<button onclick='loginToBook($login, $room_data[id])' class='btn-main d-block mb-2' style='font-size: 14px;'>Book</button>";
}
//display room (---**accommodation section did not use from database**---)
$output .= "
<div class='card mb-3 shadow'>
<div class='row g-0 p-2 align-items-center'>
<div class='col-lg-4 col-md-5 mb-lg-0 mb-3'>
<img src='$room_cover' class='img-fluid rounded' alt='room' style='height: 220px; width: 100%; object-fit: cover;'>
</div>
<div class='col-lg-7 col-md-6 px-lg-2 px-md-2 px-0'>
<p class='mb-1' style='font-size: 20px; font-weight: 600;'>$room_data[name]</p>
<div class='accommodation'>
<p class='fw-bold' style='color: #31363F; font-size: 14px; margin-bottom: 5px;'>Accommodation</p>
<span class='badge text-dark mb-1' style='border-radius: 25px; background-color: #F3EEEA;'>Heating and air conditioning</span>
<span class='badge text-dark mb-1' style='border-radius: 25px; background-color: #F3EEEA;'>Mini-fridge</span>
<span class='badge text-dark mb-1' style='border-radius: 25px; background-color: #F3EEEA;'>Coffee & tea</span>
<span class='badge text-dark mb-1' style='border-radius: 25px; background-color: #F3EEEA;'>Desk</span>
<span class='badge text-dark mb-1' style='border-radius: 25px; background-color: #F3EEEA;'>Television</span>
<span class='badge text-dark mb-1' style='border-radius: 25px; background-color: #F3EEEA;'>toiletries</span>
<span class='badge text-dark mb-1' style='border-radius: 25px; background-color: #F3EEEA;'>Wi-Fi</span>
<span class='badge text-dark mb-1' style='border-radius: 25px; background-color: #F3EEEA;'>...</span>
</div>
<div class='extra-accommodation mt-2 mb-2'>
<p class='fw-bold' style='color: #31363F; font-size: 14px; margin-bottom: 5px;'>Additional Accommodation</p>$additionalAccom_data
</div>
</div>
<div class='col-md-1'>
<p class='mb-4 text-center mt-lg-0 mt-4' style='font-size: 14px;'>$$room_data[price]/night</p>
$booking
</div>
</div>
</div>
";
$count_room++;
}
if($count_room > 0 ){
echo $output;
} else{
echo 'We are sorry, but there is no room available at this moment!';
}
}
?>