diff --git a/admin/allocations.php b/admin/allocations.php new file mode 100644 index 0000000..20a0dac --- /dev/null +++ b/admin/allocations.php @@ -0,0 +1,160 @@ +prepare("SELECT capacity, occupied FROM Rooms WHERE id = ?"); + $stmt->execute([$room_id]); + $room = $stmt->fetch(); + + if ($room && $room['occupied'] < $room['capacity']) { + // Allocate student + $stmt = $pdo->prepare("INSERT INTO Allocations (student_id, room_id, allocation_date, status) VALUES (?, ?, CURDATE(), 'Allocated')"); + $stmt->execute([$student_id, $room_id]); + + // Update room occupancy + $stmt = $pdo->prepare("UPDATE Rooms SET occupied = occupied + 1 WHERE id = ?"); + $stmt->execute([$room_id]); + } + header('Location: allocations.php'); + exit(); +} + +// Handle Deallocation +if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['deallocate'])) { + $allocation_id = $_POST['allocation_id']; + + // Get allocation details + $stmt = $pdo->prepare("SELECT room_id FROM Allocations WHERE id = ?"); + $stmt->execute([$allocation_id]); + $allocation = $stmt->fetch(); + + if ($allocation) { + // Remove allocation + $stmt = $pdo->prepare("DELETE FROM Allocations WHERE id = ?"); + $stmt->execute([$allocation_id]); + + // Update room occupancy + $stmt = $pdo->prepare("UPDATE Rooms SET occupied = occupied - 1 WHERE id = ?"); + $stmt->execute([$allocation['room_id']]); + } + header('Location: allocations.php'); + exit(); +} + + +// Fetch unallocated students +$unallocated_students_stmt = $pdo->query("SELECT u.id, u.name FROM Users u LEFT JOIN Allocations a ON u.id = a.student_id WHERE a.id IS NULL AND u.role = 'Student'"); +$unallocated_students = $unallocated_students_stmt->fetchAll(); + +// Fetch available rooms +$available_rooms_stmt = $pdo->query("SELECT id, room_no, block FROM Rooms WHERE occupied < capacity"); +$available_rooms = $available_rooms_stmt->fetchAll(); + +// Fetch current allocations +$allocations_stmt = $pdo->query("SELECT a.id, u.name as student_name, r.room_no, r.block, a.allocation_date FROM Allocations a JOIN Users u ON a.student_id = u.id JOIN Rooms r ON a.room_id = r.id ORDER BY a.allocation_date DESC"); +$allocations = $allocations_stmt->fetchAll(); + +$pageTitle = "Room Allocations"; +include '../includes/header.php'; +?> + +
| Student Name | +Room No | +Block | +Allocation Date | +Action | + + + +
|---|---|---|---|---|
| + | + | + | + | + + | +
Welcome, !
+ +| Student | +Room | +Status | +Date | +Action | +
|---|---|---|---|---|
| + | + | + | + | + + + + | +