File manager - Edit - /var/www/order.cmtc.ac.th/admin/orders_5.php
Back
<?php session_start(); if(!isset($_SESSION['admin'])) { header('Location: index.php'); exit; } include('../config/db.php'); date_default_timezone_set('Asia/Bangkok'); $today = date('Y-m-d'); $default_from = date('Y-m-d', strtotime('-6 days', strtotime($today))); // รับค่ากรอง $date_from = $_GET['date_from'] ?? $default_from; $date_to = $_GET['date_to'] ?? $today; $filter_receive = $_GET['receive'] ?? 'all'; $search = trim($_GET['search'] ?? ''); // ✅ สร้างเงื่อนไข WHERE แบบยืดหยุ่น $where = "WHERE DATE(o.created_at) BETWEEN ? AND ?"; $params = [$date_from, $date_to]; $types = 'ss'; // กรองตามวิธีรับสินค้า if($filter_receive != 'all'){ $where .= " AND o.receive_method = ?"; $params[] = ($filter_receive == 'self' ? 'รับสินค้าด้วยตนเอง' : 'จัดส่งทางไปรษณีย์'); $types .= 's'; } // กรองตามคำค้นหา if($search != ''){ $where .= " AND (o.booking_no LIKE ? OR o.fullname LIKE ? OR o.phone LIKE ?)"; $s = "%".$search."%"; $params[] = $s; $params[] = $s; $params[] = $s; $types .= 'sss'; } // ✅ ดึงข้อมูลคำสั่งซื้อ $sql = " SELECT o.*, GROUP_CONCAT(CONCAT(p.name,' x',i.qty) SEPARATOR ', ') AS items FROM orders o JOIN order_items i ON o.id = i.order_id JOIN products p ON i.product_id = p.id $where GROUP BY o.id ORDER BY o.id DESC "; $stmt = $conn->prepare($sql); $stmt->bind_param($types, ...$params); $stmt->execute(); $res = $stmt->get_result(); ?> <!DOCTYPE html> <html lang="th"> <head> <meta charset="UTF-8"> <title>📋 รายการจองทั้งหมด</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Kanit:wght@300;400;500;600&display=swap" rel="stylesheet"> <style> body,*{font-family:'Kanit',sans-serif!important;} .table th,.table td{vertical-align:middle!important;} .text-free{color:#ff9800;font-weight:bold;} </style> </head> <body class="bg-light"> <?php include("menu.php"); ?> <div class="container py-4"> <div class="d-flex justify-content-between align-items-center mb-3"> <h3>📦 รายการจองทั้งหมด</h3> <a href="orders_free.php" class="btn btn-outline-warning btn-sm">🟡 ไปหน้า Free Order</a> </div> <!-- ✅ ฟอร์มกรองข้อมูล --> <div class="card mb-3 shadow-sm"> <div class="card-body"> <form class="row g-2 align-items-end"> <div class="col-md-2"> <label class="form-label">จากวันที่</label> <input type="date" name="date_from" value="<?=htmlspecialchars($date_from)?>" class="form-control"> </div> <div class="col-md-2"> <label class="form-label">ถึงวันที่</label> <input type="date" name="date_to" value="<?=htmlspecialchars($date_to)?>" class="form-control"> </div> <div class="col-md-2"> <label class="form-label">วิธีรับสินค้า</label> <select name="receive" class="form-select"> <option value="all" <?=($filter_receive=='all'?'selected':'')?>>ทั้งหมด</option> <option value="self" <?=($filter_receive=='self'?'selected':'')?>>รับสินค้าด้วยตนเอง</option> <option value="post" <?=($filter_receive=='post'?'selected':'')?>>จัดส่งทางไปรษณีย์</option> </select> </div> <div class="col-md-3"> <label class="form-label">ค้นหา (ชื่อ, เบอร์โทร, เลขที่ใบจอง)</label> <input type="text" name="search" value="<?=htmlspecialchars($search)?>" class="form-control" placeholder="พิมพ์คำค้น..."> </div> <div class="col-md-3 text-end"> <button class="btn btn-primary">🔍 แสดง</button> </div> </form> </div> </div> <!-- ปุ่มรายงาน --> <div class="d-flex justify-content-end gap-2 mb-3"> <a href="orders_print.php?date_from=<?=$date_from?>&date_to=<?=$date_to?>&receive=<?=$filter_receive?>&search=<?=urlencode($search)?>" target="_blank" class="btn btn-success">🖨 พิมพ์รายงาน</a> <a href="orders_export.php?date_from=<?=$date_from?>&date_to=<?=$date_to?>&receive=<?=$filter_receive?>&search=<?=urlencode($search)?>" class="btn btn-outline-success">📊 Export Excel</a> </div> <div class="card shadow-sm"> <div class="card-header bg-dark text-white fw-bold"> รายการจอง (<?=htmlspecialchars($date_from)?> ถึง <?=htmlspecialchars($date_to)?>) <?php if($filter_receive=='self'): ?> <span class="ms-2">(รับด้วยตนเอง)</span> <?php elseif($filter_receive=='post'): ?> <span class="ms-2">(จัดส่งทางไปรษณีย์)</span> <?php endif; ?> <?php if($search!=''): ?> <span class="ms-2 text-warning">ผลการค้นหา: "<?=htmlspecialchars($search)?>"</span> <?php endif; ?> </div> <div class="card-body p-0"> <div class="table-responsive"> <table class="table table-bordered align-middle text-center mb-0"> <thead class="table-light"> <tr> <th>เลขที่ใบจอง</th> <th>ชื่อผู้จอง</th> <th>เบอร์โทร</th> <th>รายการเหรียญ</th> <th>ยอดรวม</th> <th>สถานะ</th> <th>วิธีรับสินค้า</th> <th>วันที่จอง</th> <th>จัดการ</th> </tr> </thead> <tbody> <?php if($res->num_rows > 0): ?> <?php while($row = $res->fetch_assoc()): ?> <tr> <td><?= $row['booking_no'] ?: '-' ?></td> <td><?= htmlspecialchars($row['fullname']) ?></td> <td><?= htmlspecialchars($row['phone']) ?></td> <td><?= htmlspecialchars($row['items']) ?></td> <td><?= number_format($row['total'],2) ?></td> <td> <?php if(strpos($row['status'],'Free Order')!==false): ?> <span class="text-free">🟡 <?= $row['status'] ?></span> <?php else: ?> <span class="text-primary fw-bold"><?= $row['status'] ?></span> <?php endif; ?> </td> <td><?= htmlspecialchars($row['receive_method']) ?></td> <td><?= htmlspecialchars($row['created_at']) ?></td> <td> <?php if($row['status']!='ชำระเงินแล้ว'): ?> <a href="?confirm=<?=$row['id']?>" class="btn btn-success btn-sm mb-1">ยืนยัน</a> <?php else: ?> <button class="btn btn-secondary btn-sm mb-1" disabled>✔️ ยืนยันแล้ว</button> <?php endif; ?> <a href="print_invoice.php?id=<?=$row['id']?>" target="_blank" class="btn btn-outline-primary btn-sm">🖨 พิมพ์</a> </td> </tr> <?php endwhile; ?> <?php else: ?> <tr><td colspan="9" class="text-center text-muted py-4">ไม่พบข้อมูลที่ค้นหา</td></tr> <?php endif; ?> </tbody> </table> </div> </div> </div> </div> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script> </body> </html>
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.42 |
proxy
|
phpinfo
|
Settings