File manager - Edit - /home/webapp69.cm.in.th/u69319090028/Shop/views/admin/orders/index.php
Back
<?php $statusMap = [ 'pending_payment' => ['status-pending', 'รอชำระเงิน'], 'payment_confirmed' => ['status-approved', 'ชำระเงินแล้ว'], 'preparing' => ['status-preparing', 'กำลังแพ็ค'], 'shipping' => ['status-shipping', 'จัดส่งแล้ว'], 'completed' => ['status-completed', 'สำเร็จ'], 'cancelled' => ['status-danger', 'ยกเลิก'], 'refunded' => ['status-secondary', 'คืนเงิน'], ]; $s = $stats ?? []; ?> <div class="d-flex flex-column flex-md-row justify-content-between align-items-md-center gap-2 mb-3"> <div> <h4 class="fw-bold mb-1 text-dark">ติดตามคำสั่งซื้อข้ามร้านค้า (Orders Monitoring)</h4> <p class="text-muted small mb-0">ตรวจสอบสถานะคำสั่งซื้อ ตรวจสอบการชำระเงิน และสืบค้นปัญหาการจัดส่ง (Read-Only Audit)</p> </div> </div> <!-- ── Metric Status Chips ─────────────────────────────── --> <div class="d-flex flex-wrap gap-2 mb-3"> <div class="p-2 px-3 bg-white border rounded-3 small"> <span class="text-muted">ทั้งหมด:</span> <strong><?= number_format((int)($s['total_orders'] ?? 0)) ?></strong> </div> <div class="p-2 px-3 bg-white border rounded-3 small"> <span class="text-warning">รอชำระ:</span> <strong><?= number_format((int)($s['pending_payment'] ?? 0)) ?></strong> </div> <div class="p-2 px-3 bg-white border rounded-3 small"> <span class="text-primary">กำลังแพ็ค:</span> <strong><?= number_format((int)($s['preparing'] ?? 0)) ?></strong> </div> <div class="p-2 px-3 bg-white border rounded-3 small"> <span class="text-info">จัดส่งแล้ว:</span> <strong><?= number_format((int)($s['shipping'] ?? 0)) ?></strong> </div> <div class="p-2 px-3 bg-white border rounded-3 small"> <span class="text-success">สำเร็จ:</span> <strong><?= number_format((int)($s['completed'] ?? 0)) ?></strong> </div> </div> <!-- ── Filter Bar ──────────────────────────────────────── --> <div class="admin-filter-bar mb-3"> <form method="GET" class="row g-2 align-items-end"> <div class="col-md-3"> <label class="form-label small fw-semibold text-muted mb-1">ค้นหา</label> <div class="input-group input-group-sm"> <span class="input-group-text bg-light"><i class="bi bi-search text-muted"></i></span> <input type="text" name="q" value="<?= e($filters['q'] ?? '') ?>" class="form-control" placeholder="เลขออเดอร์, ชื่อลูกค้า, เบอร์..."> </div> </div> <div class="col-6 col-md-2"> <label class="form-label small fw-semibold text-muted mb-1">สถานะออเดอร์</label> <select name="status" class="form-select form-select-sm"> <option value="all">ทุกสถานะ</option> <?php foreach ($statusMap as $k => [$c, $label]): ?> <option value="<?= $k ?>" <?= ($filters['status'] ?? '') === $k ? 'selected' : '' ?>><?= $label ?></option> <?php endforeach; ?> </select> </div> <div class="col-6 col-md-2"> <label class="form-label small fw-semibold text-muted mb-1">ตั้งแต่วันที่</label> <input type="date" name="date_from" value="<?= e($filters['date_from'] ?? '') ?>" class="form-control form-control-sm"> </div> <div class="col-6 col-md-2"> <label class="form-label small fw-semibold text-muted mb-1">ถึงวันที่</label> <input type="date" name="date_to" value="<?= e($filters['date_to'] ?? '') ?>" class="form-control form-control-sm"> </div> <div class="col-6 col-md-3 d-flex gap-2"> <button type="submit" class="btn btn-primary btn-sm w-100"><i class="bi bi-funnel me-1"></i>ค้นหา</button> <?php if (!empty($filters['q']) || ($filters['status'] ?? 'all') !== 'all' || !empty($filters['date_from']) || !empty($filters['date_to'])): ?> <a href="<?= url('/admin/orders') ?>" class="btn btn-outline-secondary btn-sm" title="ล้างการกรอง"><i class="bi bi-x-lg"></i></a> <?php endif; ?> </div> </form> </div> <!-- ── Data Table Container ────────────────────────────── --> <div class="admin-table-container"> <div class="admin-table-header"> <div class="d-flex align-items-center gap-2"> <i class="bi bi-receipt text-primary"></i> <span class="fw-bold text-dark" style="font-size: 0.9rem;">รายการคำสั่งซื้อ</span> <span class="badge bg-light text-muted border ms-1"><?= number_format($total ?? 0) ?> ออเดอร์</span> </div> </div> <div class="table-responsive d-none d-md-block"> <table class="admin-table"> <thead> <tr> <th>เลขออเดอร์</th> <th>ลูกค้า</th> <th>ร้านค้า</th> <th class="text-center">รายการ</th> <th>ยอดรวม</th> <th>สถานะออเดอร์</th> <th>การชำระเงิน</th> <th>วันที่สั่งซื้อ</th> <th class="text-end">การจัดการ</th> </tr> </thead> <tbody> <?php if (empty($orders)): ?> <tr> <td colspan="9" class="text-center text-muted py-4">ไม่พบคำสั่งซื้อตามเงื่อนไขที่ระบุ</td> </tr> <?php else: foreach ($orders as $o): ?> <tr> <td> <a href="<?= url('/admin/orders/' . e($o['order_no'])) ?>" class="fw-semibold text-primary font-monospace"> <?= e($o['order_no']) ?> </a> </td> <td> <div class="small fw-medium text-dark"><?= e($o['customer_name']) ?></div> <div class="text-muted small"><?= e($o['customer_phone'] ?? '—') ?></div> </td> <td> <span class="text-dark small fw-medium"><?= e($o['store_name']) ?></span> </td> <td class="text-center font-monospace small"> <?= (int)$o['total_items'] ?> </td> <td> <span class="fw-semibold text-dark">฿<?= number_format((float)$o['total_amount'], 2) ?></span> </td> <td> <?php [$pillClass, $pillLabel] = $statusMap[$o['order_status']] ?? ['status-secondary', $o['order_status']]; ?> <span class="status-pill <?= $pillClass ?>"><?= $pillLabel ?></span> </td> <td> <?php if ($o['payment_status'] === 'paid'): ?> <span class="status-pill status-active">ชำระแล้ว</span> <?php elseif ($o['payment_status'] === 'pending'): ?> <span class="status-pill status-pending">รอชำระ</span> <?php else: ?> <span class="status-pill status-secondary"><?= e($o['payment_status'] ?? '—') ?></span> <?php endif; ?> </td> <td class="text-muted small"><?= date('d/m/Y H:i', strtotime($o['created_at'])) ?></td> <td class="text-end"> <a href="<?= url('/admin/orders/' . e($o['order_no'])) ?>" class="btn btn-outline-primary btn-sm py-1 px-2" style="font-size: 0.75rem;"> <i class="bi bi-search me-1"></i>ตรวจสอบ </a> </td> </tr> <?php endforeach; endif; ?> </tbody> </table> </div> <!-- Mobile Card List View --> <div class="d-md-none p-3"> <?php if (empty($orders)): ?> <div class="text-center text-muted py-3 small">ไม่พบคำสั่งซื้อ</div> <?php else: foreach ($orders as $o): ?> <div class="admin-mobile-card"> <div class="d-flex justify-content-between align-items-start mb-2"> <div> <div class="fw-bold font-monospace text-primary"><?= e($o['order_no']) ?></div> <div class="text-muted small"><?= e($o['store_name']) ?> • ฿<?= number_format((float)$o['total_amount'], 2) ?></div> </div> <?php [$pillClass, $pillLabel] = $statusMap[$o['order_status']] ?? ['status-secondary', $o['order_status']]; ?> <span class="status-pill <?= $pillClass ?>"><?= $pillLabel ?></span> </div> <div class="d-flex justify-content-between align-items-center pt-2 border-top"> <span class="text-muted small">ลูกค้า: <?= e($o['customer_name']) ?></span> <a href="<?= url('/admin/orders/' . e($o['order_no'])) ?>" class="btn btn-outline-primary btn-sm py-1 px-2" style="font-size: 0.75rem;"> ตรวจสอบ → </a> </div> </div> <?php endforeach; endif; ?> </div> <!-- Pagination --> <?php if (($total_pages ?? 1) > 1): ?> <div class="p-3 border-top d-flex justify-content-center"> <nav> <ul class="pagination pagination-sm mb-0"> <?php for ($i = 1; $i <= $total_pages; $i++): ?> <li class="page-item <?= $i === $page ? 'active' : '' ?>"> <a class="page-link" href="?<?= http_build_query(array_merge($filters, ['page' => $i])) ?>"><?= $i ?></a> </li> <?php endfor; ?> </ul> </nav> </div> <?php endif; ?> </div>
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.24 |
proxy
|
phpinfo
|
Settings