<?php
// ১. একদম উপরে পিএইচপির সব এরর দেখার জন্য এই ২ লাইন যোগ করা হলো (যাতে সাদা স্ক্রিন না আসে)
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

session_start();

// ২. ডাটাবেজ কানেকশন পাথ (পাথটি চেক করে নেবেন)
require_once __DIR__ . '/../config.php'; 

// অর্ডার স্ট্যাটাস অথবা পেমেন্ট স্ট্যাটাস আপডেটের রিকোয়েস্ট হ্যান্ডেল করা
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action'])) {
    $order_id = intval($_POST['order_id']);
    
    if ($_POST['action'] === 'update_order_status') {
        $new_status = trim($_POST['order_status']);
        try {
            $stmt = $pdo->prepare("UPDATE orders SET order_status = ? WHERE id = ?");
            $stmt->execute([$new_status, $order_id]);
            $_SESSION['success_msg'] = "অর্ডার স্ট্যাটাস সফলভাবে আপডেট করা হয়েছে।";
        } catch (PDOException $e) {
            $_SESSION['error_msg'] = "স্ট্যাটাস আপডেটে ত্রুটি: " . $e->getMessage();
        }
    }
    
    if ($_POST['action'] === 'update_payment_status') {
        $new_pay_status = trim($_POST['payment_status']);
        try {
            $stmt = $pdo->prepare("UPDATE orders SET payment_status = ? WHERE id = ?");
            $stmt->execute([$new_pay_status, $order_id]);
            $_SESSION['success_msg'] = "পেমেন্ট স্ট্যাটাস সফলভাবে আপডেট করা হয়েছে।";
        } catch (PDOException $e) {
            $_SESSION['error_msg'] = "পেমেন্ট আপডেটে ত্রুটি: " . $e->getMessage();
        }
    }
    
    header("Location: orders_manager.php");
    exit();
}

// ফিল্টারিং লজিক (Search & Filter)
$where_clauses = [];
$params = [];

if (isset($_GET['search']) && !empty($_GET['search'])) {
    $search = trim($_GET['search']);
    $where_clauses[] = "(customer_name LIKE ? OR customer_phone LIKE ? OR id = ? OR transaction_id = ?)";
    $params[] = "%$search%";
    $params[] = "%$search%";
    $params[] = intval($search);
    $params[] = $search;
}

if (isset($_GET['order_status']) && !empty($_GET['order_status'])) {
    $where_clauses[] = "order_status = ?";
    $params[] = trim($_GET['order_status']);
}

if (isset($_GET['payment_method']) && !empty($_GET['payment_method'])) {
    $where_clauses[] = "payment_method = ?";
    $params[] = trim($_GET['payment_method']);
}

$where_sql = "";
if (count($where_clauses) > 0) {
    $where_sql = "WHERE " . implode(" AND ", $where_clauses);
}

// ডাটাবেজ থেকে সকল অর্ডার তুলে আনা
try {
    $query = "SELECT * FROM orders $where_sql ORDER BY id DESC";
    $stmt = $pdo->prepare($query);
    $stmt->execute($params);
    $orders = $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
    die("ডাটাবেজ কানেকশন বা কোয়েরি ত্রুটি: " . $e->getMessage());
}
?>
<!DOCTYPE html>
<html lang="bn">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>অর্ডার ম্যানেজমেন্ট ড্যাশবোর্ড | ShopVista</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <link href="https://fonts.googleapis.com/css2?family=Hind+Siliguri:wght@400;500;600;700&display=swap" rel="stylesheet">
    <link rel="stylesheet" href="css/orders_manager.css">
</head>
<body>

    <div class="admin-container">
        <header class="admin-header">
            <div class="header-title">
                <h1><i class="fa-solid fa-boxes-packing"></i> অর্ডার ম্যানেজমেন্ট ড্যাশবোর্ড</h1>
                <p>কাস্টমারদের অর্ডার প্রসেসিং, পেমেন্ট ট্র্যাকিং এবং স্ট্যাটাস আপডেট করুন</p>
            </div>
            <a href="index.php" class="back-btn"><i class="fa-solid fa-house"></i> হোম পেজ</a>
        </header>

        <!-- সেশন মেসেজ এলার্ট -->
        <?php if (isset($_SESSION['success_msg'])): ?>
            <div class="alert alert-success">
                <i class="fa-solid fa-circle-check"></i> <?php echo $_SESSION['success_msg']; unset($_SESSION['success_msg']); ?>
            </div>
        <?php endif; ?>
        <?php if (isset($_SESSION['error_msg'])): ?>
            <div class="alert alert-danger">
                <div class="alert alert-danger">
                <i class="fa-solid fa-circle-exclamation"></i> <?php echo $_SESSION['error_msg']; unset($_SESSION['error_msg']); ?>
            </div>
        <?php endif; ?>

        <!-- সার্চ এবং ফিল্টার সেকশন -->
        <div class="filter-card">
            <form action="" method="GET" class="filter-form">
                <div class="input-group">
                    <label>খুঁজুন (নাম, ফোন, অর্ডার আইডি, TxnID)</label>
                    <input type="text" name="search" value="<?php echo htmlspecialchars($_GET['search'] ?? ''); ?>" placeholder="যেমন: 017XXXXXXXX বা #12">
                </div>
                
                <div class="input-group">
                    <label>অর্ডার স্ট্যাটাস</label>
                    <select name="order_status">
                        <option value="">সবগুলো</option>
                        <option value="Pending" <?php echo (($_GET['order_status'] ?? '') === 'Pending') ? 'selected' : ''; ?>>Pending</option>
                        <option value="Processing" <?php echo (($_GET['order_status'] ?? '') === 'Processing') ? 'selected' : ''; ?>>Processing</option>
                        <option value="Shipped" <?php echo (($_GET['order_status'] ?? '') === 'Shipped') ? 'selected' : ''; ?>>Shipped</option>
                        <option value="Delivered" <?php echo (($_GET['order_status'] ?? '') === 'Delivered') ? 'selected' : ''; ?>>Delivered</option>
                        <option value="Cancelled" <?php echo (($_GET['order_status'] ?? '') === 'Cancelled') ? 'selected' : ''; ?>>Cancelled</option>
                    </select>
                </div>

                <div class="input-group">
                    <label>পেমেন্ট পদ্ধতি</label>
                    <select name="payment_method">
                        <option value="">সবগুলো</option>
                        <option value="cod" <?php echo (($_GET['payment_method'] ?? '') === 'cod') ? 'selected' : ''; ?>>Cash on Delivery</option>
                        <option value="manual" <?php echo (($_GET['payment_method'] ?? '') === 'manual') ? 'selected' : ''; ?>>Manual Bkash/Nagad</option>
                        <option value="sslcommerz" <?php echo (($_GET['payment_method'] ?? '') === 'sslcommerz') ? 'selected' : ''; ?>>SSLCommerz</option>
                    </select>
                </div>

                <div class="filter-buttons">
                    <button type="submit" class="btn btn-filter"><i class="fa-solid fa-magnifying-glass"></i> ফিল্টার করুন</button>
                    <a href="orders_manager.php" class="btn btn-reset">রিসেট</a>
                </div>
            </form>
        </div>

        <!-- অর্ডার লিস্ট টেবিল -->
        <div class="table-card">
            <div class="table-responsive">
                <table>
                    <thead>
                        <tr>
                            <th>অর্ডার আইডি</th>
                            <th>কাস্টমারের তথ্য</th>
                            <th>প্রোডাক্টের বিবরণ</th>
                            <th>সর্বমোট বিল</th>
                            <th>পেমেন্ট তথ্য</th>
                            <th>অর্ডার স্ট্যাটাস</th>
                            <th>অ্যাকশন</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php if (count($orders) > 0): ?>
                            <?php foreach ($orders as $order): 
                                // অর্ডারের অন্তর্ভুক্ত প্রোডাক্টগুলো তুলে আনা
                                $items_stmt = $pdo->prepare("SELECT * FROM order_items WHERE order_id = ?");
                                $items_stmt->execute([$order['id']]);
                                $items = $items_stmt->fetchAll(PDO::FETCH_ASSOC);
                            ?>
                                <tr>
                                    <td class="text-center">
                                        <span class="order-id">#<?php echo $order['id']; ?></span>
                                        <span class="order-date"><?php echo date('d M, Y', strtotime($order['created_at'])); ?></span>
                                    </td>
                                    
                                    <td>
                                        <div class="cust-info">
                                            <strong><i class="fa-solid fa-user"></i> <?php echo htmlspecialchars($order['customer_name']); ?></strong><br>
                                            <span class="phone"><i class="fa-solid fa-phone"></i> <?php echo htmlspecialchars($order['customer_phone']); ?></span><br>
                                            <span class="address" title="<?php echo htmlspecialchars($order['shipping_address']); ?>">
                                                <i class="fa-solid fa-location-dot"></i> <?php echo htmlspecialchars($order['shipping_address']); ?>
                                            </span>
                                        </div>
                                    </td>

                                    <td>
                                        <div class="order-items-list">
                                            <?php foreach ($items as $item): ?>
                                                <div class="single-item">
                                                    <i class="fa-solid fa-caret-right"></i> <?php echo htmlspecialchars($item['product_name']); ?> 
                                                    <?php if(!empty($item['size'])): ?><span class="badge badge-outline"><?php echo htmlspecialchars($item['size']); ?></span><?php endif; ?>
                                                    <?php if(!empty($item['color'])): ?><span class="badge badge-outline"><?php echo htmlspecialchars($item['color']); ?></span><?php endif; ?>
                                                    <strong>x<?php echo $item['qty']; ?></strong>
                                                </div>
                                            <?php endforeach; ?>
                                        </div>
                                    </td>

                                    <td>
                                        <div class="billing-info">
                                            <span>সাবটোটাল: ৳<?php echo number_format($order['total_amount']); ?></span><br>
                                            <span>ডেলিভারি: ৳<?php echo number_format($order['delivery_charge']); ?></span><br>
                                            <!-- এখানে টাইপো এররটি সমাধান করা হয়েছে -->
                                            <strong class="total-price">মোট: ৳<?php echo number_format($order['grand_total']); ?></strong>
                                        </div>
                                    </td>

                                    <td>
                                        <div class="payment-col">
                                            <span class="badge method-badge <?php echo htmlspecialchars($order['payment_method']); ?>">
                                                <?php 
                                                if ($order['payment_method'] === 'cod') echo 'Cash On Delivery';
                                                elseif ($order['payment_method'] === 'manual') echo 'Bkash/Nagad';
                                                elseif ($order['payment_method'] === 'sslcommerz') echo 'SSLCommerz';
                                                ?>
                                            </span>

                                            <?php if (!empty($order['transaction_id'])): ?>
                                                <div class="txn-box">
                                                    TxnID: <code><?php echo htmlspecialchars($order['transaction_id']); ?></code>
                                                </div>
                                            <?php endif; ?>

                                            <form action="orders_manager.php" method="POST">
                                                <input type="hidden" name="order_id" value="<?php echo $order['id']; ?>">
                                                <input type="hidden" name="action" value="update_payment_status">
                                                <select name="payment_status" onchange="this.form.submit()" class="select-status pay-<?php echo strtolower($order['payment_status']); ?>">
                                                    <option value="Pending" <?php echo ($order['payment_status'] === 'Pending') ? 'selected' : ''; ?>>Pending</option>
                                                    <option value="Pending-Verification" <?php echo ($order['payment_status'] === 'Pending-Verification') ? 'selected' : ''; ?>>Verification Pending</option>
                                                    <option value="Completed" <?php echo ($order['payment_status'] === 'Completed') ? 'selected' : ''; ?>>Completed</option>
                                                    <option value="Failed" <?php echo ($order['payment_status'] === 'Failed') ? 'selected' : ''; ?>>Failed</option>
                                                </select>
                                            </form>
                                        </div>
                                    </td>

                                    <td>
                                        <form action="orders_manager.php" method="POST">
                                            <input type="hidden" name="order_id" value="<?php echo $order['id']; ?>">
                                            <input type="hidden" name="action" value="update_order_status">
                                            <select name="order_status" onchange="this.form.submit()" class="select-status order-<?php echo strtolower($order['order_status']); ?>">
                                                <option value="Pending" <?php echo ($order['order_status'] === 'Pending') ? 'selected' : ''; ?>>Pending</option>
                                                <option value="Processing" <?php echo ($order['order_status'] === 'Processing') ? 'selected' : ''; ?>>Processing</option>
                                                <option value="Shipped" <?php echo ($order['order_status'] === 'Shipped') ? 'selected' : ''; ?>>Shipped</option>
                                                <option value="Delivered" <?php echo ($order['order_status'] === 'Delivered') ? 'selected' : ''; ?>>Delivered</option>
                                                <option value="Cancelled" <?php echo ($order['order_status'] === 'Cancelled') ? 'selected' : ''; ?>>Cancelled</option>
                                            </select>
                                        </form>
                                    </td>

                                    <td>
                                        <div class="action-buttons">
                                            <button onclick="window.print()" class="btn-action btn-print">
                                                <i class="fa-solid fa-print"></i>
                                            </button>
                                        </div>
                                    </td>
                                </tr>
                            <?php endforeach; ?>
                        <?php else: ?>
                            <tr>
                                <td colspan="7" class="no-records">
                                    <i class="fa-solid fa-folder-open"></i> কোনো অর্ডারের তথ্য পাওয়া যায়নি!
                                </td>
                            </tr>
                        <?php endif; ?>
                    </tbody>
                </table>
            </div>
        </div>
    </div>

</body>
</html>