prepare("SELECT name_$lang FROM employees WHERE id = ?"); $stmt->execute([$doctor_id]); $doctor_name = $stmt->fetchColumn(); } // Fetch Holidays for the date $holidays_on_date = []; if ($doctor_id) { // Specific doctor holiday check (using leave_requests) $stmt = $db->prepare("SELECT reason FROM leave_requests WHERE employee_id = ? AND status = 'Approved' AND ? BETWEEN start_date AND end_date"); $stmt->execute([$doctor_id, $date]); $holiday_note = $stmt->fetchColumn(); if ($holiday_note !== false) { $holidays_on_date[] = [ 'doctor_name' => $doctor_name, 'note' => $holiday_note ]; } } else { // All doctors holiday check (using leave_requests and filtering by position Doctor) $stmt = $db->prepare(" SELECT e.name_$lang as doctor_name, lr.reason as note FROM leave_requests lr JOIN employees e ON lr.employee_id = e.id JOIN positions p ON e.position_id = p.id WHERE lr.status = 'Approved' AND UPPER(p.name_en) = 'DOCTOR' AND ? BETWEEN lr.start_date AND lr.end_date "); $stmt->execute([$date]); $holidays_on_date = $stmt->fetchAll(PDO::FETCH_ASSOC); } // Fetch Appointments $query = " SELECT a.start_time, a.end_time, a.status, a.reason, p.name as patient_name, p.phone as patient_tel, d.name_$lang as doctor_name FROM appointments a JOIN patients p ON a.patient_id = p.id LEFT JOIN employees d ON a.doctor_id = d.id WHERE DATE(a.start_time) = ? "; $params = [$date]; if ($doctor_id) { $query .= " AND a.doctor_id = ?"; $params[] = $doctor_id; } $query .= " ORDER BY a.start_time ASC"; $stmt = $db->prepare($query); $stmt->execute($params); $appointments = $stmt->fetchAll(); ?>