| Server IP : 172.67.187.206 / Your IP : 172.71.28.155 Web Server : Apache/2.4.25 (Win32) OpenSSL/1.0.2j PHP/5.6.30 System : Windows NT WIN-ECQAAA40806 6.2 build 9200 (Windows Server 2012 Standard Edition) i586 User : SYSTEM ( 0) PHP Version : 5.6.30 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /Inetpub/www/pr/ |
Upload File : |
<?php
include 'functions.php';
// เช็คว่าต้องเข้าสู่ระบบ และบล็อก User ทั่วไปไม่ให้เข้าหน้านี้
if(!isset($_SESSION['user_id']) || $_SESSION['role'] == 'user') {
echo "<script>alert('คุณไม่มีสิทธิ์เข้าถึงหน้านี้'); window.location='dashboard.php';</script>";
exit();
}
// วันที่ปัจจุบัน
$today = date('Y-m-d');
$role = $_SESSION['role'];
// กำหนดหัวเว็บตาม Role
if($role == 'admin') {
echo get_header("ตารางงาน - จอโทรทัศน์");
} else {
echo get_header("ตารางงาน - จอห้องประชุม");
}
?>
<?php if($role == 'admin') {
// ดึงข้อมูลทั้งหมดที่ตรงกับวันนี้ (ไม่สนใจสถานะ)
$sql_today = "SELECT r.*, u.group_name
FROM requests r
JOIN users u ON r.user_id = u.user_id
WHERE '$today' BETWEEN r.start_date AND r.end_date
ORDER BY r.start_date ASC";
$res_today = mysqli_query($conn, $sql_today);
$count_today = mysqli_num_rows($res_today);
?>
<div class="row mb-5">
<div class="col-12">
<div class="card shadow border-primary border-3">
<div class="card-header bg-primary text-white d-flex justify-content-between align-items-center">
<h4 class="mb-0"><i class="bi bi-display"></i> มอนิเตอร์: ต้องขึ้นรูปจอโทรทัศน์วันนี้</h4>
<span class="badge bg-white text-primary fs-5"><?php echo $count_today; ?> รายการ</span>
</div>
<div class="card-body bg-light">
<?php if($count_today > 0) { ?>
<div class="row">
<?php while($row = mysqli_fetch_assoc($res_today)) {
$is_design = ($row['req_type'] == 'design');
$is_pending = ($row['status'] == 'pending');
// ตั้งค่าสีการ์ดและสถานะ
$card_border = $is_pending ? "border-danger" : "border-primary";
$status_badge = $is_pending ? '<span class="badge bg-danger mt-1"><i class="bi bi-exclamation-triangle"></i> ยังไม่ได้ดำเนินการ</span>' : '<span class="badge bg-success mt-1"><i class="bi bi-check-circle"></i> พร้อมแสดงผล</span>';
?>
<div class="col-md-6 col-lg-4 mb-3">
<div class="card h-100 shadow-sm <?php echo $card_border; ?>" style="border-width: 0 0 0 4px;">
<div class="card-body">
<div class="d-flex justify-content-between align-items-start">
<h5 class="card-title fw-bold text-primary mb-0"><?php echo $row['title']; ?></h5>
</div>
<?php echo $status_badge; ?>
<p class="mb-1 mt-2 small text-muted">
<i class="bi bi-person-circle"></i> <?php echo $row['group_name']; ?> |
<i class="bi bi-calendar-check"></i> ถึง <?php echo thai_date($row['end_date']); ?>
</p>
<hr>
<p class="mb-2 fw-bold small"><i class="bi bi-images"></i> รูปที่ต้องใช้แสดงผล:</p>
<div class="d-flex flex-wrap gap-2">
<?php
$role_condition = $is_design ? "AND uploader_role = 'admin'" : "AND (uploader_role = 'user' OR uploader_role IS NULL)";
$sql_img = "SELECT filename FROM request_images WHERE req_id = ".$row['req_id']." $role_condition";
$res_img = mysqli_query($conn, $sql_img);
if(mysqli_num_rows($res_img) > 0) {
while($img = mysqli_fetch_assoc($res_img)){
echo "<div class='text-center'>
<a href='uploads/".$img['filename']."' target='_blank'>
<img src='uploads/".$img['filename']."' class='img-thumbnail border-success' style='height:100px; object-fit:cover;'>
</a>
<div class='mt-1'><a href='uploads/".$img['filename']."' download class='btn btn-xs btn-outline-secondary py-0' style='font-size:10px;'>ดาวน์โหลด</a></div>
</div>";
}
} else {
if($is_design && $is_pending) {
echo "<div class='alert alert-danger py-1 px-2 small w-100 mb-0'><i class='bi bi-x-circle'></i> งานนี้ยังไม่ได้ทำรูป/ยังไม่ได้อัปโหลด</div>";
} else {
echo "<div class='alert alert-warning py-1 px-2 small w-100 mb-0'>ไม่พบไฟล์รูป</div>";
}
}
?>
</div>
</div>
</div>
</div>
<?php } ?>
</div>
<?php } else { ?>
<div class="text-center py-4 text-muted"><i class="bi bi-calendar-x fs-1"></i><p class="mt-2">วันนี้ไม่มีรายการขึ้นจอโทรทัศน์</p></div>
<?php } ?>
</div>
</div>
</div>
</div>
<div class="d-flex justify-content-between align-items-center mb-3">
<h4><i class="bi bi-calendar3"></i> ตารางประชาสัมพันธ์จอโทรทัศน์ทั้งหมด</h4>
</div>
<div class="row">
<?php
// ดึงทั้งหมดมาเรียง
$sql_all = "SELECT r.*, u.group_name FROM requests r JOIN users u ON r.user_id = u.user_id ORDER BY start_date DESC";
$result = mysqli_query($conn, $sql_all);
if(mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$modal_id = "tvModal_" . $row['req_id'];
$status_class = "border-secondary";
$status_text = "";
$job_status = ($row['status'] == 'done') ? '<span class="badge bg-primary ms-1">เสร็จ</span>' : '<span class="badge bg-danger ms-1">รอทำ</span>';
if($today >= $row['start_date'] && $today <= $row['end_date']) {
$status_class = "border-success shadow";
$status_text = '<span class="badge bg-success">On Air</span>';
} elseif ($today < $row['start_date']) {
$status_class = "border-info";
$status_text = '<span class="badge bg-info text-dark">รอแสดงผล</span>';
} else {
$status_class = "border-light text-muted opacity-75";
$status_text = '<span class="badge bg-secondary">จบแล้ว</span>';
}
// ถ้า On Air แต่ยังไม่ได้ทำ ให้เน้นขอบแดงเตือน
if($row['status'] == 'pending' && $today >= $row['start_date'] && $today <= $row['end_date']) {
$status_class = "border-danger shadow border-2";
}
?>
<div class="col-md-3 mb-3">
<div class="card h-100 <?php echo $status_class; ?>">
<div class="card-header bg-transparent d-flex justify-content-between align-items-center px-2 py-1">
<small><?php echo thai_date($row['start_date']); ?></small>
<?php echo $status_text; ?>
</div>
<div class="card-body p-2">
<h6 class="card-title text-truncate mb-1">
<a href="#" class="text-decoration-none fw-bold text-dark stretched-link" data-bs-toggle="modal" data-bs-target="#<?php echo $modal_id; ?>"><?php echo $row['title']; ?></a>
</h6>
<p class="card-text small mb-0 d-flex justify-content-between align-items-center">
<span class="text-truncate text-muted"><i class="bi bi-people"></i> <?php echo $row['group_name']; ?></span>
<?php echo $job_status; ?>
</p>
</div>
</div>
</div>
<div class="modal fade" id="<?php echo $modal_id; ?>" tabindex="-1">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header bg-primary text-white">
<h5 class="modal-title">รายละเอียดจอโทรทัศน์: <?php echo $row['title']; ?></h5>
<button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal"></button>
</div>
<div class="modal-body">
<p>
<strong>ผู้ขอ:</strong> <?php echo $row['group_name']; ?> |
<strong>เวลา:</strong> <?php echo thai_date($row['start_date']); ?> - <?php echo thai_date($row['end_date']); ?> |
<strong>สถานะงาน:</strong> <?php echo ($row['status'] == 'done') ? '<span class="text-success">ดำเนินการแล้ว</span>' : '<span class="text-danger fw-bold">ยังไม่ได้ดำเนินการ (Pending)</span>'; ?>
</p>
<div class="alert alert-light border p-2"><strong>รายละเอียด:</strong><br><?php echo nl2br($row['details']); ?></div>
<h6>รูปภาพที่เกี่ยวข้อง:</h6>
<div class="d-flex flex-wrap gap-2">
<?php
$sql_img = "SELECT filename FROM request_images WHERE req_id = " . $row['req_id'];
$res_img = mysqli_query($conn, $sql_img);
if(mysqli_num_rows($res_img) > 0) {
while($img = mysqli_fetch_assoc($res_img)){
echo "<a href='uploads/".$img['filename']."' target='_blank'><img src='uploads/".$img['filename']."' class='img-thumbnail' style='height:100px;'></a>";
}
} else {
echo "<span class='text-muted small'>ไม่มีรูปภาพ</span>";
}
?>
</div>
</div>
</div>
</div>
</div>
<?php }} else { echo "<div class='col-12'><div class='alert alert-light text-center'>ยังไม่มีตารางงาน</div></div>"; } ?>
</div>
<?php } else if($role == 'admin_meeting') {
$sql_today_m = "SELECT m.*, u.group_name
FROM meeting_requests m
JOIN users u ON m.user_id = u.user_id
WHERE '$today' BETWEEN m.start_date AND m.end_date
ORDER BY m.start_date ASC";
$res_today_m = mysqli_query($conn, $sql_today_m);
$count_today_m = mysqli_num_rows($res_today_m);
?>
<div class="row mb-5">
<div class="col-12">
<div class="card shadow border-success border-3">
<div class="card-header bg-success text-white d-flex justify-content-between align-items-center">
<h4 class="mb-0"><i class="bi bi-projector"></i> มอนิเตอร์: ต้องขึ้นจอห้องประชุมวันนี้</h4>
<span class="badge bg-white text-success fs-5"><?php echo $count_today_m; ?> ห้อง</span>
</div>
<div class="card-body bg-light">
<?php if($count_today_m > 0) { ?>
<div class="row">
<?php while($row_m = mysqli_fetch_assoc($res_today_m)) {
$is_pending_m = ($row_m['status'] == 'pending');
$card_border_m = $is_pending_m ? "border-danger" : "border-success";
$status_badge_m = $is_pending_m ? '<span class="badge bg-danger mt-1"><i class="bi bi-exclamation-triangle"></i> ยังไม่ได้ดำเนินการ</span>' : '<span class="badge bg-success mt-1"><i class="bi bi-check-circle"></i> พร้อมใช้งาน</span>';
?>
<div class="col-md-6 col-lg-4 mb-3">
<div class="card h-100 shadow-sm <?php echo $card_border_m; ?>" style="border-width: 0 0 0 4px;">
<div class="card-body">
<div class="d-flex justify-content-between align-items-start">
<h5 class="card-title fw-bold text-success mb-0"><?php echo $row_m['topic']; ?></h5>
<span class="badge bg-success"><?php echo $row_m['room']; ?></span>
</div>
<?php echo $status_badge_m; ?>
<p class="mb-1 small text-muted mt-2">
<i class="bi bi-person-circle"></i> <?php echo $row_m['group_name']; ?> <br>
<i class="bi bi-calendar-check"></i>
<?php echo ($row_m['date_type']=='single') ? thai_date($row_m['start_date']) : "ถึง " . thai_date($row_m['end_date']); ?>
</p>
<hr>
<p class="mb-2 fw-bold small"><i class="bi bi-paperclip"></i> ไฟล์ที่ต้องใช้แสดงผล:</p>
<div class="d-flex flex-wrap gap-2">
<?php
$sql_f = "SELECT * FROM meeting_files WHERE mreq_id = ".$row_m['mreq_id'];
$res_f = mysqli_query($conn, $sql_f);
if(mysqli_num_rows($res_f) > 0) {
while($file = mysqli_fetch_assoc($res_f)){
$ext = strtolower(pathinfo($file['filename'], PATHINFO_EXTENSION));
$is_image = in_array($ext, ['jpg','jpeg','png','gif','webp']);
echo "<div class='text-center'>";
if($is_image){
echo "<a href='uploads/".$file['filename']."' target='_blank'>
<img src='uploads/".$file['filename']."' class='img-thumbnail border-success' style='height:80px; width:80px; object-fit:cover;' title='".$file['original_name']."'>
</a>";
} else {
echo "<a href='uploads/".$file['filename']."' target='_blank' class='btn btn-outline-secondary p-1 d-flex flex-column align-items-center justify-content-center bg-white shadow-sm' style='height:80px; width:80px;' title='".$file['original_name']."'>
<i class='bi bi-file-earmark-text fs-4'></i>
<span class='small text-truncate w-100 mt-1' style='font-size:9px;'>".strtoupper($ext)."</span>
</a>";
}
echo "<div class='mt-1'><a href='uploads/".$file['filename']."' download class='btn btn-xs btn-outline-success py-0' style='font-size:10px;' title='โหลดไฟล์'>ดาวน์โหลด</a></div>";
echo "</div>";
}
} else {
echo "<span class='text-muted small w-100'>ไม่มีไฟล์แนบ</span>";
}
?>
</div>
</div>
</div>
</div>
<?php } ?>
</div>
<?php } else { ?>
<div class="text-center py-4 text-muted"><i class="bi bi-projector fs-1"></i><p class="mt-2">วันนี้ไม่มีการใช้งานจอห้องประชุม</p></div>
<?php } ?>
</div>
</div>
</div>
</div>
<div class="d-flex justify-content-between align-items-center mb-3">
<h4><i class="bi bi-calendar3"></i> ตารางใช้จอห้องประชุมทั้งหมด</h4>
</div>
<div class="row">
<?php
$sql_all_m = "SELECT m.*, u.group_name FROM meeting_requests m JOIN users u ON m.user_id = u.user_id ORDER BY start_date DESC";
$result_m = mysqli_query($conn, $sql_all_m);
if(mysqli_num_rows($result_m) > 0) {
while($row_m = mysqli_fetch_assoc($result_m)) {
$modal_id = "mtgModal_" . $row_m['mreq_id'];
$status_class = "border-secondary";
$status_text = "";
$job_status_m = ($row_m['status'] == 'done') ? '<span class="badge bg-primary ms-1">เสร็จ</span>' : '<span class="badge bg-danger ms-1">รอทำ</span>';
if($today >= $row_m['start_date'] && $today <= $row_m['end_date']) {
$status_class = "border-success shadow";
$status_text = '<span class="badge bg-success">ใช้งานวันนี้</span>';
} elseif ($today < $row_m['start_date']) {
$status_class = "border-info";
$status_text = '<span class="badge bg-info text-dark">รอใช้งาน</span>';
} else {
$status_class = "border-light text-muted opacity-75";
$status_text = '<span class="badge bg-secondary">จบแล้ว</span>';
}
// เน้นขอบแดงถ้าถึงเวลาใช้แล้วแต่ยังไม่ได้กดเสร็จงาน
if($row_m['status'] == 'pending' && $today >= $row_m['start_date'] && $today <= $row_m['end_date']) {
$status_class = "border-danger shadow border-2";
}
?>
<div class="col-md-3 mb-3">
<div class="card h-100 <?php echo $status_class; ?>">
<div class="card-header bg-transparent d-flex justify-content-between align-items-center px-2 py-1">
<small><?php echo thai_date($row_m['start_date']); ?></small>
<?php echo $status_text; ?>
</div>
<div class="card-body p-2">
<h6 class="card-title text-truncate mb-1">
<a href="#" class="text-decoration-none fw-bold text-dark stretched-link" data-bs-toggle="modal" data-bs-target="#<?php echo $modal_id; ?>"><?php echo $row_m['topic']; ?></a>
</h6>
<p class="card-text small mb-1"><span class="badge bg-light text-dark border"><?php echo $row_m['room']; ?></span></p>
<p class="card-text small mb-0 d-flex justify-content-between align-items-center">
<span class="text-truncate text-muted"><i class="bi bi-people"></i> <?php echo $row_m['group_name']; ?></span>
<?php echo $job_status_m; ?>
</p>
</div>
</div>
</div>
<div class="modal fade" id="<?php echo $modal_id; ?>" tabindex="-1">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header bg-success text-white">
<h5 class="modal-title">รายละเอียดห้องประชุม: <?php echo $row_m['topic']; ?></h5>
<button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal"></button>
</div>
<div class="modal-body">
<p>
<strong>ห้อง:</strong> <span class="badge bg-success"><?php echo $row_m['room']; ?></span> |
<strong>ผู้ขอ:</strong> <?php echo $row_m['group_name']; ?> <br>
<strong>วันที่ใช้งาน:</strong> <?php echo ($row_m['date_type']=='single') ? thai_date($row_m['start_date']) : thai_date($row_m['start_date']) . " - " . thai_date($row_m['end_date']); ?> <br>
<strong>สถานะงาน:</strong> <?php echo ($row_m['status'] == 'done') ? '<span class="text-success">ดำเนินการแล้ว</span>' : '<span class="text-danger fw-bold">ยังไม่ได้ดำเนินการ (Pending)</span>'; ?>
</p>
<hr>
<h6>ไฟล์ที่เกี่ยวข้อง:</h6>
<div class="d-flex flex-wrap gap-2">
<?php
$sql_f = "SELECT * FROM meeting_files WHERE mreq_id = " . $row_m['mreq_id'];
$res_f = mysqli_query($conn, $sql_f);
if(mysqli_num_rows($res_f) > 0){
while($file = mysqli_fetch_assoc($res_f)){
$ext = strtolower(pathinfo($file['filename'], PATHINFO_EXTENSION));
$is_image = in_array($ext, ['jpg','jpeg','png','gif','webp']);
if($is_image){
echo "<a href='uploads/".$file['filename']."' target='_blank'><img src='uploads/".$file['filename']."' class='img-thumbnail' style='height:80px; object-fit:cover;' title='".$file['original_name']."'></a>";
} else {
echo "<a href='uploads/".$file['filename']."' target='_blank' class='btn btn-outline-secondary p-1 d-flex flex-column align-items-center justify-content-center' style='height:80px; width:80px;' title='".$file['original_name']."'>
<i class='bi bi-file-earmark-text fs-4'></i><span class='small text-truncate w-100 mt-1' style='font-size:9px;'>".strtoupper($ext)."</span>
</a>";
}
}
} else { echo "<span class='text-muted small'>ไม่มีไฟล์แนบ</span>"; }
?>
</div>
</div>
</div>
</div>
</div>
<?php }} else { echo "<div class='col-12'><div class='alert alert-light text-center'>ยังไม่มีตารางงานห้องประชุม</div></div>"; } ?>
</div>
<?php } ?>
<?php echo get_footer(); ?>