0% found this document useful (0 votes)
7 views8 pages

Dash PHP

Uploaded by

Nassar Al-shabi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views8 pages

Dash PHP

Uploaded by

Nassar Al-shabi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

<?

php
require_once '../includes/[Link]';
require_once '../includes/auth_check.php';
require_once '../includes/[Link]';

// ‫جلب بيانات الغرف‬


$rooms_query = "SELECT * FROM rooms ORDER BY room_number ASC";
$rooms_result = $conn->query($rooms_query);
$rooms = [];
if ($rooms_result) {
while ($room = $rooms_result->fetch_assoc()) {
$rooms[] = $room;
}
}

// ‫جلب الحجوزات النشطة‬


$active_bookings_query = "
SELECT b.*, r.room_number
FROM bookings b
JOIN rooms r ON b.room_id = [Link]
WHERE [Link] IN ('‫'محجوزة‬, 'checked_in')
";
$active_bookings_result = $conn->query($active_bookings_query);
$occupied_rooms = [];
if ($active_bookings_result) {
while ($booking = $active_bookings_result->fetch_assoc()) {
$occupied_rooms[$booking['room_number']] = $booking;
}
}
?>

<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>‫ فندق مارينا‬- ‫<لوحة التحكم‬/title>

<!-- ‫ الموارد المحلية‬-->


<link href="../assets/css/vendor/[Link]" rel="stylesheet">
<link href="../assets/css/vendor/[Link]" rel="stylesheet">
<link href="../assets/css/vendor/tajawal_google_fonts.css" rel="stylesheet">
<link href="../assets/css/[Link]" rel="stylesheet">

<style>
body {
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
font-family: 'Tajawal', sans-serif;
min-height: 100vh;
}

.dashboard-header {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 20px;
border-radius: 15px;
margin-bottom: 30px;
text-align: center;
box-shadow: 0 8px 25px rgba(0,0,0,0.1);
}

.dashboard-header h1 {
margin: 0;
font-weight: 700;
text-shadow: 0 2px 4px rgba(0,0,0,0.3);
}

.rooms-container {
background: white;
border-radius: 15px;
padding: 25px;
box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}

.rooms-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
gap: 15px;
margin-top: 20px;
}

.room-button {
border: none;
border-radius: 12px;
padding: 20px 15px;
font-size: 16px;
font-weight: 600;
color: white;
cursor: pointer;
transition: all 0.3s ease;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
position: relative;
overflow: hidden;
}

.room-button:hover {
transform: translateY(-3px);
box-shadow: 0 8px 20px rgba(0,0,0,0.2);
}

.[Link] {
background: linear-gradient(135deg, #28a745 0%, #20c997 100%);
}

.[Link] {
background: linear-gradient(135deg, #dc3545 0%, #fd7e14 100%);
}

.[Link] {
background: linear-gradient(135deg, #ffc107 0%, #fd7e14 100%);
color: #212529;
}

.room-number {
font-size: 24px;
font-weight: 700;
margin-bottom: 5px;
}
.room-status {
font-size: 12px;
opacity: 0.9;
}

.room-type {
font-size: 11px;
opacity: 0.8;
margin-top: 3px;
}

.guest-info {
font-size: 10px;
margin-top: 5px;
opacity: 0.9;
}

.section-title {
color: #495057;
font-weight: 700;
font-size: 24px;
margin-bottom: 15px;
display: flex;
align-items: center;
gap: 10px;
}

.legend {
display: flex;
justify-content: center;
gap: 30px;
margin-bottom: 20px;
flex-wrap: wrap;
}

.legend-item {
display: flex;
align-items: center;
gap: 8px;
font-weight: 600;
}

.legend-color {
width: 20px;
height: 20px;
border-radius: 6px;
}

.[Link] {
background: linear-gradient(135deg, #28a745 0%, #20c997 100%);
}

.[Link] {
background: linear-gradient(135deg, #dc3545 0%, #fd7e14 100%);
}

.[Link] {
background: linear-gradient(135deg, #ffc107 0%, #fd7e14 100%);
}

.quick-actions {
background: white;
border-radius: 15px;
padding: 20px;
margin-top: 20px;
box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}

.action-buttons {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 15px;
margin-top: 15px;
}

.action-btn {
background: linear-gradient(135deg, #6c757d 0%, #495057 100%);
color: white;
border: none;
border-radius: 10px;
padding: 15px 20px;
font-weight: 600;
text-decoration: none;
text-align: center;
transition: all 0.3s ease;
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
}

.action-btn:hover {
transform: translateY(-2px);
box-shadow: 0 6px 15px rgba(0,0,0,0.2);
color: white;
text-decoration: none;
}

.[Link] {
background: linear-gradient(135deg, #0d6efd 0%, #0b5ed7 100%);
}

.[Link] {
background: linear-gradient(135deg, #198754 0%, #157347 100%);
}

.[Link] {
background: linear-gradient(135deg, #0dcaf0 0%, #31d2f2 100%);
}

.[Link] {
background: linear-gradient(135deg, #ffc107 0%, #ffca2c 100%);
color: #212529;
}

@media (max-width: 768px) {


.rooms-grid {
grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
gap: 10px;
}

.room-button {
padding: 15px 10px;
font-size: 14px;
}

.room-number {
font-size: 20px;
}

.legend {
gap: 15px;
}

.action-buttons {
grid-template-columns: 1fr;
}
}

@media (max-width: 576px) {


.dashboard-header {
padding: 15px;
margin-bottom: 20px;
}

.rooms-container {
padding: 15px;
}

.rooms-grid {
grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
}

.room-button {
padding: 12px 8px;
font-size: 12px;
}

.room-number {
font-size: 18px;
}
}
</style>
</head>
<body>
<div class="container-fluid py-4">
<!-- ‫ رأس لوحة التحكم‬-->
<div class="dashboard-header">
<h1><i class="fas fa-tachometer-alt me-3"></i> ‫ فندق‬- ‫لوحة التحكم‬
‫<مارينا‬/h1>
<p class="mb-0">‫مرحبًا بك‬، <?php echo
htmlspecialchars($_SESSION['username'] ?? '‫<>? ;)'المدير‬/p>
</div>

<!-- ‫ عرض الغرف‬-->


<div class="rooms-container">
<div class="section-title">
<i class="fas fa-bed"></i>
‫حالة الغرف‬
</div>

<!-- ‫ مفتاح الألوان‬-->


<div class="legend">
<div class="legend-item">
<div class="legend-color available"></div>
<span>‫<شاغرة‬/span>
</div>
<div class="legend-item">
<div class="legend-color occupied"></div>
<span>‫<محجوزة‬/span>
</div>
<div class="legend-item">
<div class="legend-color maintenance"></div>
<span>‫<صيانة‬/span>
</div>
</div>

<!-- ‫ شبكة الغرف‬-->


<div class="rooms-grid">
<?php foreach ($rooms as $room): ?>
<?php
$room_status = 'available';
$status_text = '‫;'شاغرة‬
$guest_info = '';

if (isset($occupied_rooms[$room['room_number']])) {
$room_status = 'occupied';
$status_text = '‫;'محجوزة‬
$booking = $occupied_rooms[$room['room_number']];
$guest_info = htmlspecialchars($booking['guest_name'] ?? '
‫;)'ضيف‬
} elseif ($room['status'] == '‫ || 'صيانة‬$room['status'] ==
'maintenance') {
$room_status = 'maintenance';
$status_text = '‫;'صيانة‬
}
?>

<button class="room-button <?php echo $room_status; ?>"


onclick="handleRoomClick(<?php echo $room['id']; ?>,
'<?php echo $room['room_number']; ?>', '<?php echo $room_status; ?>')">
<div class="room-number"><?php echo
htmlspecialchars($room['room_number']); ?></div>
<div class="room-status"><?php echo $status_text; ?></div>
<div class="room-type"><?php echo
htmlspecialchars($room['type'] ?? '‫<>? ;)'عادية‬/div>
<?php if ($guest_info): ?>
<div class="guest-info"><?php echo $guest_info;
?></div>
<?php endif; ?>
</button>
<?php endforeach; ?>
</div>
</div>
<!-- ‫ الإجراءات السريعة‬-->
<div class="quick-actions">
<div class="section-title">
<i class="fas fa-bolt"></i>
‫الإجراءات السريعة‬
</div>

<div class="action-buttons">
<a href="bookings/[Link]" class="action-btn primary">
<i class="fas fa-plus"></i>
‫حجز جديد‬
</a>
<a href="bookings/[Link]" class="action-btn success">
<i class="fas fa-list"></i>
‫قائمة الحجوزات‬
</a>
<a href="reports/comprehensive_reports.php" class="action-btn
info">
<i class="fas fa-chart-bar"></i>
‫التقارير‬
</a>
<a href="expenses/[Link]" class="action-btn warning">
<i class="fas fa-receipt"></i>
‫المصروفات‬
</a>
<a href="settings/[Link]" class="action-btn">
<i class="fas fa-cog"></i>
‫الإعدادات‬
</a>
<a href="../[Link]" class="action-btn" style="background:
linear-gradient(135deg, #dc3545 0%, #c82333 100%); color: white;">
<i class="fas fa-sign-out-alt"></i>
‫تسجيل الخروج‬
</a>
</div>
</div>
</div>

<!-- ‫ الموارد المحلية‬-->


<script src="../assets/js/vendor/[Link]"></script>

<script>
function handleRoomClick(roomId, roomNumber, status) {
if (status === 'available') {
// ‫ اذهب لصفحة الحجز‬،‫إذا كانت الغرفة شاغرة‬
[Link] = `bookings/[Link]?room_id=$
{roomId}&room_number=${roomNumber}`;
} else if (status === 'occupied') {
// ‫ اذهب لصفحة تفاصيل الحجز‬،‫إذا كانت الغرفة محجوزة‬
[Link] = `bookings/[Link]?room_number=$
{roomNumber}`;
} else if (status === 'maintenance') {
// ‫ اعرض رسالة‬،‫إذا كانت الغرفة تحت الصيانة‬
alert(`‫ الغرفة رقم‬${roomNumber} ‫;)`تحت الصيانة حاليًا‬
}
}

// ‫ ثانية لعرض أحدث حالة للغرف‬30 ‫تحديث الصفحة كل‬


setInterval(function() {
[Link]();
}, 30000);

// ‫إضافة تأثيرات بصرية‬


[Link]('DOMContentLoaded', function() {
// ‫تأثير الظهور التدريجي للغرف‬
const roomButtons = [Link]('.room-button');
[Link]((button, index) => {
[Link] = '0';
[Link] = 'translateY(20px)';

setTimeout(() => {
[Link] = 'all 0.5s ease';
[Link] = '1';
[Link] = 'translateY(0)';
}, index * 50);
});

// ‫تأثير النبض للغرف المحجوزة‬


const occupiedRooms = [Link]('.room-
[Link]');
[Link](room => {
setInterval(() => {
[Link] = 'scale(1.05)';
setTimeout(() => {
[Link] = 'scale(1)';
}, 200);
}, 3000);
});
});

// ‫إضافة صوت عند النقر على الغرف‬


function playClickSound() {
// ‫يمكن إضافة صوت هنا إذا رغبت‬
const audio = new
Audio('data:audio/wav;base64,UklGRnoGAABXQVZFZm10IBAAAAABAAEAQB8AAEAfAAABAAgAZGF0YQ
oGAACBhYqFbF1fdJivrJBhNjVgodDbq2EcBj+a2/
LDciUFLIHO8tiJNwgZaLvt559NEAxQp+PwtmMcBjiR1/
LMeSwFJHfH8N2QQAoUXrTp66hVFApGn+DyvmwhBSuBzvLZiTYIG2m98OScTgwOUarm7blmGgU7k9n1unEiB
C13yO/eizEIHWq+8+OWT');
[Link]().catch(() => {});
}

// ‫إضافة الصوت لجميع أزرار الغرف‬


[Link]('.room-button').forEach(button => {
[Link]('click', playClickSound);
});
</script>
</body>
</html>

<?php $conn->close(); ?>

You might also like