<?php
/**
 * Order Detail & Slip Upload Page
 * CMTC Shopping
 */
require_once __DIR__ . '/../includes/header.php';
require_once __DIR__ . '/../includes/navbar.php';

require_login();

$order_id = intval($_GET['id'] ?? 0);
$user_id = $_SESSION['user_id'];
$is_admin = has_permission($db, 'manage_orders');

// Fetch order
$stmt = $db->prepare("
    SELECT o.*, u.username, u.firstname, u.lastname, u.phone, u.email,
           p.id as payment_id, p.slip_path, p.payment_method, p.amount as paid_amount, p.status as payment_status
    FROM orders o
    JOIN users u ON o.user_id = u.id
    LEFT JOIN payments p ON o.id = p.order_id
    WHERE o.id = ? " . ($is_admin ? "" : "AND o.user_id = ?") . "
    LIMIT 1
");
if ($is_admin) {
    $stmt->execute([$order_id]);
} else {
    $stmt->execute([$order_id, $user_id]);
}
$order = $stmt->fetch();

if (!$order) {
    echo "<div class='container my-5 text-center'><h3>ไม่พบข้อมูลคำสั่งซื้อ</h3><a href='" . base_url('views/orders.php') . "' class='btn btn-primary mt-2'>กลับหน้ารายการ</a></div>";
    require_once __DIR__ . '/../includes/footer.php';
    exit();
}

$error = "";
$success = "";

// Upload Slip
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['upload_slip'])) {
    if (!validate_csrf_token($_POST['csrf_token'] ?? '')) {
        $error = "โทเค็นความปลอดภัยไม่ถูกต้อง";
    } else {
        if (isset($_FILES['slip']) && $_FILES['slip']['error'] === UPLOAD_ERR_OK) {
            $upload_res = upload_image($_FILES['slip'], 'slips', 'slip');
            if ($upload_res['success']) {
                $slip_filename = $upload_res['filename'];
                
                // Update payment record
                $stmt_pay = $db->prepare("SELECT id FROM payments WHERE order_id = ? LIMIT 1");
                $stmt_pay->execute([$order_id]);
                $pay_id = $stmt_pay->fetchColumn();

                if ($pay_id) {
                    $stmt_upd = $db->prepare("UPDATE payments SET slip_path = ?, status = 'pending' WHERE id = ?");
                    $stmt_upd->execute([$slip_filename, $pay_id]);
                } else {
                    $stmt_ins = $db->prepare("INSERT INTO payments (order_id, payment_method, amount, slip_path, status) VALUES (?, 'transfer', ?, ?, 'pending')");
                    $stmt_ins->execute([$order_id, $order['net_amount'], $slip_filename]);
                }

                $db->prepare("UPDATE orders SET status = 'paid' WHERE id = ?")->execute([$order_id]);
                $success = "อัปโหลดหลักฐานการชำระเงินเรียบร้อยแล้ว เจ้าหน้าที่จะตรวจสอบข้อมูลโดยเร็ว";
                
                // Refresh order
                header("Location: order_detail.php?id=$order_id&success=1");
                exit();
            } else {
                $error = $upload_res['error'];
            }
        } else {
            $error = "กรุณาเลือกไฟล์สลิปการชำระเงิน";
        }
    }
}

// Fetch order items
$stmt_items = $db->prepare("
    SELECT oi.*, oi.total as subtotal, p.name as prod_name, p.sku,
           (SELECT image_path FROM product_images WHERE product_id = p.id ORDER BY is_main DESC, id ASC LIMIT 1) as main_image
    FROM order_items oi
    JOIN products p ON oi.product_id = p.id
    WHERE oi.order_id = ?
");
$stmt_items->execute([$order_id]);
$items = $stmt_items->fetchAll();
?>

<div class="container my-5">
    <div class="d-flex justify-content-between align-items-center mb-4">
        <div>
            <h3 class="fw-bold mb-0"><i class="bi bi-receipt text-primary me-2"></i>รายละเอียดคำสั่งซื้อ #<?php echo sanitize($order['order_no']); ?></h3>
            <span class="text-muted small">สั่งซื้อเมื่อ: <?php echo format_thai_date($order['created_at'], true); ?></span>
        </div>
        <div>
            <a href="<?php echo base_url('views/orders.php'); ?>" class="btn btn-outline-secondary btn-sm"><i class="bi bi-arrow-left me-1"></i>กลับหน้ารายการ</a>
        </div>
    </div>

    <?php if (!empty($error)): ?>
        <div class="alert alert-danger mb-4"><?php echo $error; ?></div>
    <?php endif; ?>
    <?php if (!empty($success) || isset($_GET['success'])): ?>
        <div class="alert alert-success mb-4">อัปโหลดสลิปเรียบร้อยแล้ว</div>
    <?php endif; ?>

    <div class="row g-4">
        <div class="col-lg-8">
            <!-- Items Table -->
            <div class="card border-0 shadow-sm glass-card p-4 mb-4">
                <h5 class="fw-bold mb-3"><i class="bi bi-cart-check text-primary me-2"></i>รายการสินค้า</h5>
                <div class="table-responsive">
                    <table class="table table-hover align-middle">
                        <thead>
                            <tr>
                                <th>สินค้า</th>
                                <th>ตัวเลือก</th>
                                <th class="text-center">จำนวน</th>
                                <th class="text-end">ราคา/หน่วย</th>
                                <th class="text-end">รวม</th>
                            </tr>
                        </thead>
                        <tbody>
                            <?php foreach ($items as $it): ?>
                                <tr>
                                    <td>
                                        <div class="d-flex align-items-center gap-2">
                                            <?php 
                                            $img_src = !empty($it['main_image']) ? product_image_url($it['main_image']) : base_url('assets/images/no-image.png');
                                            ?>
                                            <img src="<?php echo $img_src; ?>" class="rounded border" width="45" height="45" style="object-fit: cover;" onerror="this.onerror=null; this.src='<?php echo base_url('assets/images/no-image.png'); ?>';">
                                            <div>
                                                <div class="fw-semibold"><?php echo sanitize($it['prod_name']); ?></div>
                                                <small class="text-muted"><?php echo sanitize($it['sku']); ?></small>
                                            </div>
                                        </div>
                                    </td>
                                    <td>
                                        <small class="text-muted">
                                            <?php echo sanitize($it['color_name'] ? 'สี: ' . $it['color_name'] : ''); ?>
                                            <?php echo sanitize($it['size_name'] ? ' | ไซส์: ' . $it['size_name'] : ''); ?>
                                        </small>
                                    </td>
                                    <td class="text-center fw-bold"><?php echo $it['quantity']; ?></td>
                                    <td class="text-end"><?php echo format_price($it['price']); ?></td>
                                    <td class="text-end fw-bold text-primary"><?php echo format_price($it['subtotal']); ?></td>
                                </tr>
                            <?php endforeach; ?>
                        </tbody>
                        <tfoot>
                            <tr>
                                <th colspan="4" class="text-end">ยอดรวมสุทธิ</th>
                                <th class="text-end text-primary fs-5"><?php echo format_price($order['net_amount']); ?></th>
                            </tr>
                        </tfoot>
                    </table>
                </div>
            </div>
        </div>

        <div class="col-lg-4">
            <!-- Payment & Slip Status Card -->
            <div class="card border-0 shadow-sm glass-card p-4">
                <h5 class="fw-bold mb-3"><i class="bi bi-wallet2 text-primary me-2"></i>การชำระเงิน</h5>
                <div class="mb-3">
                    <label class="text-muted small d-block">สถานะคำสั่งซื้อ</label>
                    <span class="badge bg-primary fs-6 px-3 py-2 mt-1"><?php echo sanitize($order['status']); ?></span>
                </div>

                <div class="mb-3">
                    <label class="text-muted small d-block">หลักฐานการโอนเงิน (Slip)</label>
                    <?php if (!empty($order['slip_path'])): ?>
                        <div class="mt-2 text-center">
                            <img src="<?php echo base_url('uploads/slips/' . sanitize($order['slip_path'])); ?>" class="img-fluid rounded border shadow-sm" style="max-height: 250px; object-fit: contain;">
                            <a href="<?php echo base_url('uploads/slips/' . sanitize($order['slip_path'])); ?>" target="_blank" class="btn btn-sm btn-outline-primary d-block mt-2">
                                <i class="bi bi-box-arrow-up-right me-1"></i> ดูรูปเต็ม
                            </a>
                        </div>
                    <?php else: ?>
                        <div class="alert alert-warning py-2 small mt-2">ยังไม่ได้แนบสลิปโอนเงิน</div>
                    <?php endif; ?>
                </div>

                <!-- Slip Upload Form -->
                <form method="POST" enctype="multipart/form-data" class="mt-3">
                    <input type="hidden" name="csrf_token" value="<?php echo get_csrf_token(); ?>">
                    <label class="form-label fw-bold small">แนบสลิปชำระเงินใหม่</label>
                    <input type="file" name="slip" class="form-control form-control-sm mb-2" accept="image/jpeg,image/png,image/webp" required>
                    <button type="submit" name="upload_slip" class="btn btn-success btn-sm w-100">
                        <i class="bi bi-upload me-1"></i> อัปโหลดสลิป
                    </button>
                </form>
            </div>
        </div>
    </div>
</div>

<?php require_once __DIR__ . '/../includes/footer.php'; ?>
