please fix this codes (<?php
// public/orders/view_order_customer.php

// Enable error reporting for debugging (disable in production)
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
// Now include the header after handling actions
require_once __DIR__ . '/../../includes/header.php';

// Start output buffering to prevent "headers already sent" errors
ob_start();

// Include authentication, database connection, and functions
require_once __DIR__ . '/../../includes/auth.php';
require_once __DIR__ . '/../../includes/db_connect.php';
require_once __DIR__ . '/../../includes/functions.php'; // Include the functions.php for sanitize_input()

// Helper Function: Generate WhatsApp link
/**
 * Generate a WhatsApp link from a contact number.
 *
 * @param string $contact The contact number.
 * @return string The WhatsApp URL.
 */
function generate_whatsapp_link($contact) {
    // Remove any non-digit characters
    $digits = preg_replace('/\D+/', '', $contact);
    
    // Assuming Kuwait country code (+965). Adjust as needed.
    if (substr($digits, 0, 3) !== '965') {
        $digits = '965' . $digits;
    }
    
    return "https://wa.me/" . $digits;
}

// Helper Function: Format currency
/**
 * Format a number into currency format.
 *
 * @param float $amount The amount to format.
 * @return string The formatted currency string.
 */
function format_currency($amount) {
    return "KWD " . number_format($amount, 2);
}

// Initialize variables for messages
$success_message = '';
$error_message = '';

// Function to get day name from datetime
function get_day_name($datetime) {
    if ($datetime) {
        return date("l", strtotime($datetime));
    }
    return 'N/A';
}

// Check if order_id is given
$order_id = isset($_GET['order_id']) ? intval($_GET['order_id']) : 0;

if ($order_id <= 0) {
    header("Location: view_orders.php?error=6"); // Invalid order ID
    exit();
}

// Fetch order details along with customer information
$order_sql = "
    SELECT 
        orders.id AS order_id,
        orders.status,
        orders.priority,
        orders.order_date,
        orders.delivery_datetime,
        orders.delivery_fee,
        orders.free_shipping,
        customers.name AS customer_name,
        customers.contact,
        customers.delivery_address
    FROM 
        orders
    JOIN 
        customers ON orders.customer_id = customers.id
    WHERE 
        orders.id = ?
";
$order_stmt = $conn->prepare($order_sql);
if (!$order_stmt) {
    die("Prepare failed: (" . $conn->errno . ") " . htmlspecialchars($conn->error));
}
$order_stmt->bind_param("i", $order_id);
$order_stmt->execute();
$order_result = $order_stmt->get_result();
$order = $order_result->fetch_assoc();
$order_stmt->close();

if (!$order) {
    header("Location: view_orders.php?error=7"); // Order not found
    exit();
}

// Handle Status Update Form Submission
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['update_status'])) {
    // Sanitize and validate inputs
    $new_status = isset($_POST['status']) ? sanitize_input($_POST['status']) : '';
    $allowed_statuses = ['Pending', 'Completed', 'Delivered']; // Removed 'In Progress'
    
    if (in_array($new_status, $allowed_statuses)) {
        // If setting to 'Delivered', ensure delivery_datetime is set
        if ($new_status === 'Delivered' && empty($order['delivery_datetime'])) {
            $error_message = "Cannot set status to Delivered without a delivery date and time.";
        } else {
            // Prepare SQL to update status
            $update_sql = "UPDATE orders SET status = ? WHERE id = ?";
            $update_stmt = $conn->prepare($update_sql);
            if ($update_stmt) {
                $update_stmt->bind_param("si", $new_status, $order_id);
                if ($update_stmt->execute()) {
                    $success_message = "Order status updated successfully to '" . htmlspecialchars($new_status) . "'.";
                    $order['status'] = $new_status; // Update the local variable to reflect change
                } else {
                    $error_message = "Failed to update order status. Please try again.";
                }
                $update_stmt->close();
            } else {
                $error_message = "Database error: " . htmlspecialchars($conn->error);
            }
        }
    } else {
        $error_message = "Invalid status selected.";
    }
}

// Fetch order items with product details
$order_items_sql = "
    SELECT 
        order_items.id AS item_id,
        order_items.product_id,
        order_items.quantity,
        order_items.packaging_preferences,
        order_items.discount_percentage,
        order_items.discount_reason,
        products.name AS product_name,
        products.size AS product_size,
        products.price AS product_price
    FROM 
        order_items
    JOIN 
        products ON order_items.product_id = products.id
    WHERE 
        order_items.order_id = ?
";
$item_stmt = $conn->prepare($order_items_sql);
if (!$item_stmt) {
    die("Prepare failed: (" . $conn->errno . ") " . htmlspecialchars($conn->error));
}
$item_stmt->bind_param("i", $order_id);
$item_stmt->execute();
$order_items_result = $item_stmt->get_result();
$order_items = [];
while ($item = $order_items_result->fetch_assoc()) {
    $order_items[] = $item;
}
$item_stmt->close();

// Calculate totals, including delivery fee and free shipping
$total_before_discounts = 0;
$total_discounts = 0;
$final_total = 0;

foreach ($order_items as &$item) {
    $item_total = $item['quantity'] * $item['product_price'];
    $discount_amount = ($item['discount_percentage'] / 100) * $item_total;
    $item['discount_amount'] = $discount_amount;
    $item['total_after_discount'] = $item_total - $discount_amount;

    $total_before_discounts += $item_total;
    $total_discounts += $discount_amount;
}
unset($item); // Break reference

$final_total = $total_before_discounts - $total_discounts;

// Add delivery fee if free_shipping is not applied
if ($order['free_shipping'] == 0) {
    $final_total += $order['delivery_fee'];
}

?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Order #<?= htmlspecialchars($order['order_id']) ?> Details - Kaak Alia Management System</title>
    
    <!-- Google Fonts -->
    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap" rel="stylesheet">
    
    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="/kaak_alia_management_system/assets/bootstrap/css/bootstrap.min.css">
    
    <!-- Bootstrap Icons -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css">
    
    <!-- Flatpickr CSS for Date Picker (if needed in future) -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css">
    
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <!-- Custom Styles -->
    <style>
        :root {
            /* Primary Colors */
            --background-color: #FFFFFF; /* Crisp White */
            --light-grey: #F5F5F5;
            --medium-grey: #CCCCCC;
            --dark-grey: #333333;
            --charcoal: #374151; /* Updated to requested color */

            /* Accent Colors */
            --accent-blue: #4A90E2;
            --accent-green: #50C878;
            --accent-red: #FF6B6B;
            --accent-teal: #20B2AA;
            --accent-soft-blue: #A3D2CA;
            --accent-purple: #8A65FF;
            --accent-orange: #FFA500;

            /* Text Colors */
            --primary-text: var(--dark-grey);
            --secondary-text: #666666;

            /* UI Elements */
            --input-border: var(--medium-grey);
            --input-focus-border: var(--accent-teal);
            --box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
            --box-border-radius: 12px;
            --hover-shadow: rgba(0, 0, 0, 0.2);
        }

        /* Custom scrollbar for better UX */
        ::-webkit-scrollbar {
            width: 8px;
        }

        ::-webkit-scrollbar-track {
            background: #f1f5f9; /* Tailwind's gray-100 */
        }

        ::-webkit-scrollbar-thumb {
            background: #4b6584; /* Teal-500 */
            border-radius: 4px;
        }

        ::-webkit-scrollbar-thumb:hover {
            background: #0d9488; /* Teal-600 */
        }

        /* Global Styles */
        body, html {
            font-family: 'Inter', sans-serif;
            background-color: var(--background-color);
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        .container-body {
            padding: 20px;
            max-width: 1200px;
            margin: 0 auto;
        }

        h1, h2, h3, h4, h5, p {
            margin: 0;
        }

        /* Welcome Section */
        .welcome-section {
            background-color: var(--background-color);
            border-radius: 12px;
            box-shadow: var(--box-shadow);
            padding: 40px;
            text-align: center;
            margin-bottom: 40px;
            width: 100%;
            display: flex;
            flex-direction: column;
            align-items: center;
        }

        .welcome-section h3 {
            font-size: 32px;
            color: var(--primary-text);
            margin-bottom: 15px;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .welcome-section h3 .bi {
            margin-right: 10px;
            color: var(--accent-red);
            font-size: 36px;
        }

        .welcome-section hr {
            width: 120px;
            height: 6px;
            background-color: var(--button-add-order);
            border: none;
            margin: 20px auto;
            border-radius: 3px;
        }

        /* Order Information Section */
        .order-info-section {
            background-color: var(--background-color);
            border-radius: 12px;
            box-shadow: var(--box-shadow);
            padding: 35px;
            margin-bottom: 40px;
            display: flex;
            flex-direction: column;
        }

        .order-info-header {
            display: flex;
            align-items: center;
            margin-bottom: 25px;
        }

        .order-info-header .bi {
            font-size: 36px;
            color: var(--accent-red);
            margin-right: 15px;
        }

        .order-info-header h4 {
            font-size: 28px;
            color: var(--primary-text);
            font-weight: 700;
        }

        .order-info-content {
            display: flex;
            flex-wrap: wrap;
            gap: 20px;
        }

        .order-info-item {
            width: 50%;
            display: flex;
            align-items: center;
        }

        .order-info-item .bi {
            font-size: 24px;
            color: var(--accent-blue);
            margin-right: 12px;
        }

        .order-info-item .info-text {
            font-size: 18px;
            color: var(--primary-text);
            font-weight: 600;
        }

        /* Product Summary Section */
        .product-summary-section {
            background-color: #f0f4f8; /* Subtle light background */
            border-left: 6px solid var(--accent-teal);
            border-radius: 12px;
            padding: 30px;
            margin-bottom: 40px;
            box-shadow: var(--box-shadow);
        }

        .product-summary-section h4 {
            font-size: 24px;
            color: var(--accent-teal);
            margin-bottom: 20px;
            display: flex;
            align-items: center;
        }

        .product-summary-section h4 .bi {
            margin-right: 10px;
            color: var(--accent-teal);
            font-size: 28px;
        }

        .product-summary-list {
            display: flex;
            flex-wrap: wrap;
            gap: 20px;
        }

        .product-item {
            background-color: #fff;
            border: 1px solid #e0e0e0;
            border-radius: 8px;
            padding: 20px;
            width: calc(33.333% - 13.333px);
            box-shadow: var(--box-shadow);
            display: flex;
            align-items: flex-start;
            transition: transform 0.3s, box-shadow 0.3s;
        }

        .product-item:hover {
            transform: translateY(-5px);
            box-shadow: var(--hover-shadow);
        }

        .product-item .bi {
            font-size: 24px;
            color: var(--accent-soft-blue);
            margin-right: 15px;
            margin-top: 5px;
        }

        .product-details {
            flex-grow: 1;
        }

        .product-details p {
            font-size: 16px;
            margin-bottom: 8px;
            color: var(--primary-text);
        }

        .product-details p strong {
            color: var(--accent-teal);
        }

        /* Order Items Table Section */
        .recent-orders-section {
            background-color: var(--background-color);
            border-radius: 12px;
            padding: 35px;
            box-shadow: var(--box-shadow);
            margin-bottom: 40px;
        }

        .recent-orders-section h4 {
            font-size: 24px;
            font-weight: 700;
            color: var(--primary-text);
            margin-bottom: 25px;
        }

        /* Make table responsive */
        .table-responsive {
            overflow-x: auto;
        }

        .recent-orders-section table {
            width: 100%;
            border-collapse: collapse;
            min-width: 900px;
        }

        .recent-orders-section th, 
        .recent-orders-section td {
            padding: 16px;
            text-align: center;
            font-size: 14px;
            vertical-align: middle;
        }

        .recent-orders-section th {
            background-color: var(--light-grey);
            color: var(--primary-text);
            font-weight: 700;
            position: sticky;
            top: 0;
            z-index: 1;
        }

        .recent-orders-section tr:nth-child(even) {
            background-color: #fafafa;
        }

        .recent-orders-section tr:hover {
            background-color: var(--light-grey);
        }

        .recent-orders-section td.number {
            text-align: center;
        }

        .recent-orders-section td.price, 
        .recent-orders-section td.quantity, 
        .recent-orders-section td.discount_percentage, 
        .recent-orders-section td.discount_amount, 
        .recent-orders-section td.total_after_discount {
            font-weight: 600;
            color: var(--primary-text);
        }

        /* Order Summary Section */
        .total-section {
            text-align: right;
            margin-top: 25px;
        }

        .total-section p {
            font-size: 18px;
            color: var(--primary-text);
            margin-bottom: 10px;
        }

        .total-section p strong {
            font-size: 20px;
            color: var(--accent-blue);
        }

        /* Action Buttons */
        .action-buttons {
            display: flex;
            gap: 20px;
            justify-content: flex-end;
            margin-bottom: 50px;
            flex-wrap: wrap;
        }

        .action-button {
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 12px 20px;
            font-size: 16px;
            font-weight: 600;
            color: var(--background-color);
            border: none;
            border-radius: 8px;
            cursor: pointer;
            transition: transform 0.3s, box-shadow 0.3s;
            text-decoration: none;
            min-width: 180px;
            text-align: center;
        }

        .action-button.print-order { background-color: var(--accent-blue); }
        .action-button.edit-order { background-color: var(--button-add-order); }
        .action-button.copy-order { background-color: var(--accent-teal); }

        .action-button:hover {
            transform: scale(1.05);
            box-shadow: var(--hover-shadow);
        }

        .action-button .bi {
            margin-right: 8px;
            font-size: 20px;
        }

        /* Footer Styles */
        .footer {
            background-color: var(--charcoal);
            color: var(--background-color);
            padding: 20px;
            text-align: center;
            border-radius: 12px;
            font-size: 16px;
            line-height: 1.5;
            margin-top: 60px;
            box-shadow: var(--box-shadow);
        }

        /* Responsive Design Enhancements */
        @media (max-width: 992px) {
            .product-item {
                width: calc(50% - 10px);
            }

            .welcome-section h3 {
                font-size: 28px;
            }

            .order-info-header h4 {
                font-size: 24px;
            }

            .order-info-item .bi {
                font-size: 20px;
            }

            .order-info-item .info-text {
                font-size: 16px;
            }

            .recent-orders-section th, 
            .recent-orders-section td {
                padding: 12px;
                font-size: 14px;
            }

            .recent-orders-section h4 {
                font-size: 22px;
            }

            .action-button {
                font-size: 14px;
                padding: 10px 18px;
                min-width: 160px;
            }

            .action-button .bi {
                font-size: 18px;
            }

            /* Adjust Product Summary Items */
            .product-item {
                width: 100%;
            }
        }

        @media (max-width: 576px) {
            .welcome-section h3 {
                font-size: 24px;
            }

            .welcome-section h3 .bi {
                font-size: 28px;
            }

            .order-info-header h4 {
                font-size: 22px;
            }

            .order-info-item .bi {
                font-size: 18px;
            }

            .order-info-item .info-text {
                font-size: 14px;
            }

            .recent-orders-section th, 
            .recent-orders-section td {
                padding: 10px;
                font-size: 12px;
            }

            .recent-orders-section h4 {
                font-size: 20px;
            }

            .action-button {
                font-size: 14px;
                padding: 8px 16px;
                min-width: 140px;
            }

            .action-button .bi {
                font-size: 16px;
            }

            /* Adjust Product Summary Items */
            .product-item {
                width: 100%;
            }
        }
    </style>

    <!-- Additional JavaScript for Print and Copy Functionality -->
    <script>
        function printOrder() {
            window.print();
        }

        function copyOrderDetails() {
            // Gather the required information
            const orderId = "<?= htmlspecialchars($order['order_id']) ?>";
            const status = "<?= htmlspecialchars($order['status']) ?>";
            const priority = "<?= htmlspecialchars($order['priority']) ?>";
            const orderDate = "<?= date("l, d M Y, h:i A", strtotime($order['order_date'])) ?>";
            const deliveryDateTime = "<?= get_day_name($order['delivery_datetime']) ?>, <?= $order['delivery_datetime'] ? date("l, d M Y, h:i A", strtotime($order['delivery_datetime'])) : 'N/A' ?>";
            const customerName = "<?= htmlspecialchars($order['customer_name']) ?>";
            const contactNumber = "<?= htmlspecialchars($order['contact']) ?>";
            const deliveryAddress = "<?= nl2br(htmlspecialchars($order['delivery_address'])) ?>";
            const deliveryFee = <?= htmlspecialchars($order['free_shipping']) == 1 ? '0.00' : htmlspecialchars($order['delivery_fee']) ?>;
            const freeShippingStatus = <?= htmlspecialchars($order['free_shipping']) == 1 ? '"Yes"' : '"No"' ?>;

            let productSummary = '';
            document.querySelectorAll('.product-summary-item').forEach(function(item) {
                const productName = item.querySelector('.product-name').innerText;
                const productSize = item.querySelector('.product-size').innerText.replace('Size: ', '');
                const productQuantityText = item.querySelector('.product-quantity').innerText.replace('Quantity: ', '');
                const productQuantity = parseInt(productQuantityText);
                const packagingPreferences = item.querySelector('.packaging-preferences').innerText.replace('Packaging: ', '');

                if (!isNaN(productQuantity) && productQuantity > 1) {
                    productSummary += `• Item: ${productQuantity} Boxes\n  Size: ${productSize}\n  Product: ${productName}\n  Packaging: ${packagingPreferences}\n\n`;
                } else if (!isNaN(productQuantity) && productQuantity === 1) {
                    productSummary += `• Item: ${productQuantity} Box\n  Size: ${productSize}\n  Product: ${productName}\n  Packaging: ${packagingPreferences}\n\n`;
                } else {
                    productSummary += `• Product: ${productName}\n  Size: ${productSize}\n  Packaging: ${packagingPreferences}\n\n`;
                }
            });

            // Construct the formatted text
            const formattedText = `🔴 Order Details 🔴
• Order ID: ${orderId}
• Status: ${status}
• Priority: ${priority}
• Order Date: ${orderDate}
• Delivery Date & Time: ${deliveryDateTime}
• Customer Name: ${customerName}

📦 Product Summary:
${productSummary}📍 Delivery Address:
${deliveryAddress}

💰 Delivery Fee: KWD ${deliveryFee} (${freeShippingStatus} Shipping)
📞 Contact Number: ${contactNumber}`;

            // Copy to clipboard using Clipboard API
            navigator.clipboard.writeText(formattedText).then(() => {
                alert('Order details copied to clipboard!');
            }).catch(err => {
                alert('Failed to copy: ' + err);
            });
        }
    </script>
</head>
<body>
    <!-- Header Already Included via header.php -->

    <main class='container-body'>
        <!-- Welcome Section -->
        <div class="welcome-section">
            <h3><i class="bi bi-box-seam-fill"></i> Order #<?= htmlspecialchars($order['order_id']) ?></h3>
            <hr>
            <!-- Copy Info Button Above HR -->
            <button class="btn btn-outline-secondary btn-sm mt-3" onclick="copyOrderDetails()">
                <i class="bi bi-clipboard-fill"></i> Copy Order Info
            </button>
        </div>

        <!-- Display Success or Error Messages -->
        <?php if (!empty($success_message)): ?>
            <div class="alert alert-success alert-dismissible fade show" role="alert">
                <?= htmlspecialchars($success_message) ?>
                <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
            </div>
        <?php endif; ?>
        <?php if (!empty($error_message)): ?>
            <div class="alert alert-danger alert-dismissible fade show" role="alert">
                <?= htmlspecialchars($error_message) ?>
                <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
            </div>
        <?php endif; ?>

        <!-- Product Summary Section -->
        <div class="product-summary-section">
            <h4><i class="bi bi-bag-fill"></i> Product Summary</h4>
            <div class="product-summary-list">
                <?php foreach ($order_items as $item): ?>
                    <?php if (strtolower($item['packaging_preferences']) !== 'n/a'): // Only display if Packaging Preferences is not 'N/A' ?>
                        <div class="product-item d-flex align-items-start product-summary-item">
                            <i class="bi bi-box-seam-fill"></i>
                            <div class="product-details">
                                <p class="product-name"><strong><?= htmlspecialchars($item['product_name']) ?></strong></p>
                                <p class="product-size"><i class="bi bi-arrows-angle-contract"></i> Size: <?= htmlspecialchars($item['product_size']) ?></p>
                                <p class="product-quantity"><i class="bi bi-people-fill"></i> Quantity: <?= htmlspecialchars($item['quantity']) ?></p>
                                <p class="packaging-preferences"><i class="bi bi-box-seam-fill"></i> Packaging: <?= htmlspecialchars($item['packaging_preferences']) ?></p>
                            </div>
                        </div>
                    <?php else: ?>
                        <div class="product-item d-flex align-items-start product-summary-item">
                            <i class="bi bi-box-seam-fill"></i>
                            <div class="product-details">
                                <p class="product-name"><strong><?= htmlspecialchars($item['product_name']) ?></strong></p>
                                <p class="product-size"><i class="bi bi-arrows-angle-contract"></i> Size: <?= htmlspecialchars($item['product_size']) ?></p>
                                <p class="product-quantity"><i class="bi bi-people-fill"></i> Quantity: <?= htmlspecialchars($item['quantity']) ?></p>
                                <!-- Packaging Preferences not displayed if 'N/A' -->
                            </div>
                        </div>
                    <?php endif; ?>
                <?php endforeach; ?>
            </div>
        </div>

        <!-- Order Information Section -->
        <div class="order-info-section">
            <div class="order-info-header">
                <i class="bi bi-info-circle-fill"></i>
                <h4>Order Information</h4>
            </div>
            <div class="order-info-content">
                <!-- Status -->
                <div class="order-info-item">
                    <i class="bi bi-tag-fill"></i>
                    <div class="info-text">
                        <form method="POST" action="" class="d-flex align-items-center">
                            <strong>Status:</strong>&nbsp;
                            <select name="status" class="form-select form-select-lg ms-2 me-2 px-3 py-2 status-dropdown" style="width: auto;" aria-label="Order Status">
                                <?php
                                    $statuses = ['Pending', 'Completed', 'Delivered']; // Removed 'In Progress'
                                    foreach ($statuses as $status) {
                                        $selected = ($order['status'] === $status) ? 'selected' : '';
                                        echo "<option value=\"{$status}\" {$selected}>{$status}</option>";
                                    }
                                ?>
                            </select>
                            <button type="submit" name="update_status" class="btn btn-primary btn-lg px-4">
                                <i class="bi bi-arrow-repeat"></i> Update
                            </button>
                        </form>
                    </div>
                </div>
                <!-- Priority -->
                <div class="order-info-item">
                    <i class="bi bi-exclamation-triangle-fill"></i>
                    <div class="info-text"><strong>Priority:</strong> <?= htmlspecialchars($order['priority']) ?></div>
                </div>
                <!-- Order Date -->
                <div class="order-info-item">
                    <i class="bi bi-calendar-event-fill"></i>
                    <div class="info-text"><strong>Order Date:</strong> <?= date("l, d M Y, h:i A", strtotime($order['order_date'])) ?></div>
                </div>
                <!-- Delivery Date & Time -->
                <div class="order-info-item">
                    <i class="bi bi-clock-fill"></i>
                    <div class="info-text delivery-date-time"><strong>Delivery Date & Time:</strong> <?= get_day_name($order['delivery_datetime']) ?>, <?= $order['delivery_datetime'] ? date("l, d M Y, h:i A", strtotime($order['delivery_datetime'])) : 'N/A' ?></div>
                </div>
                <!-- Customer Name -->
                <div class="order-info-item">
                    <i class="bi bi-person-fill"></i>
                    <div class="info-text"><strong>Customer Name:</strong> <?= htmlspecialchars($order['customer_name']) ?></div>
                </div>
                <!-- Contact -->
                <div class="order-info-item">
                    <i class="bi bi-whatsapp"></i>
                    <div class="info-text contact-info"><strong>Contact:</strong> 
                        <a href="<?= generate_whatsapp_link($order['contact']) ?>" target="_blank" class="d-inline-flex align-items-center text-decoration-none">
                            <i class="bi bi-whatsapp text-success"></i>
                            <span class="ms-2"><?= htmlspecialchars($order['contact']) ?></span>
                        </a>
                    </div>
                </div>
                <!-- Delivery Address -->
                <div class="order-info-item">
                    <i class="bi bi-geo-alt-fill"></i>
                    <div class="info-text delivery-address">
                        <strong>Delivery Address:</strong> <?= nl2br(htmlspecialchars($order['delivery_address'])) ?>
                    </div>
                </div>
                <!-- Delivery Fee and Free Shipping -->
                <div class="order-info-item">
                    <i class="bi bi-cash-stack"></i>
                    <div class="info-text">
                        <strong>Delivery Fee:</strong> <?= $order['free_shipping'] == 1 ? '<span style="color: var(--accent-green); font-weight:bold;">Free</span>' : format_currency($order['delivery_fee']) ?>
                    </div>
                </div>
            </div>
        </div>

        <!-- Order Items Table Section -->
        <div class="recent-orders-section">
            <h4>Order Items</h4>
            <div class="table-responsive">
                <table class="table table-bordered">
                    <thead>
                        <tr>
                            <th>#</th>
                            <th>Product</th>
                            <th>Size</th>
                            <th>Price per Unit (KWD)</th>
                            <th>Quantity</th>
                            <th>Packaging Preferences</th>
                            <th>Discount (%)</th>
                            <th>Discount Amount (KWD)</th>
                            <th>Total (KWD)</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php foreach ($order_items as $index => $item): ?>
                            <tr>
                                <td class="number"><?= $index + 1 ?></td>
                                <td><?= htmlspecialchars($item['product_name']) ?></td>
                                <td><?= htmlspecialchars($item['product_size']) ?></td>
                                <td class="price"><?= format_currency($item['product_price']) ?></td>
                                <td class="quantity"><?= htmlspecialchars($item['quantity']) ?></td>
                                <td><?= htmlspecialchars($item['packaging_preferences']) ?: 'N/A' ?></td>
                                <td class="discount_percentage"><?= number_format($item['discount_percentage'], 2) ?>%</td>
                                <td class="discount_amount"><?= format_currency($item['discount_amount']) ?></td>
                                <td class="total_after_discount"><?= format_currency($item['total_after_discount']) ?></td>
                            </tr>
                        <?php endforeach; ?>
                    </tbody>
                </table>
            </div>

            <!-- Order Summary -->
            <div class="total-section">
                <p><strong>Total Before Discounts:</strong> <?= format_currency($total_before_discounts) ?></p>
                <p><strong>Total Discounts:</strong> <?= format_currency($total_discounts) ?></p>
                <?php if ($order['free_shipping'] == 0): ?>
                    <p><strong>Delivery Fee:</strong> <?= format_currency($order['delivery_fee']) ?></p>
                <?php endif; ?>
                <hr>
                <p><strong>Final Total:</strong> <?= format_currency($final_total) ?></p>
            </div>
        </div>

        <!-- Action Buttons -->
        <div class="action-buttons">
            <a href="edit_order.php?id=<?= htmlspecialchars($order['order_id']) ?>" class="action-button edit-order" style="color:var(--button-add-order);">
                <i class="bi bi-pencil-square"></i> Edit Order
            </a>

            <button class="action-button print-order" onclick="printOrder()">
                <i class="bi bi-printer-fill"></i> Print Order
            </button>
            <button class="action-button copy-order" onclick="copyOrderDetails()">
                <i class="bi bi-clipboard-fill"></i> Copy Order Details
            </button>
        </div>

        <!-- Footer -->
        <div class="footer">
            &copy; <?= date("Y") ?> Kaak Alia Bakery. All rights reserved.
        </div>
    </main>
    <!-- Bootstrap JS Bundle -->
    <script src="/kaak_alia_management_system/assets/bootstrap/js/bootstrap.bundle.min.js"></script>
    
    <!-- Flatpickr JS for Date Picker (if needed in future) -->
    <script src="https://cdn.jsdelivr.net/npm/flatpickr"></script>

    <!-- Bootstrap Tooltip Initialization (if using tooltips in future) -->
    <script>
        var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
        var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
            return new bootstrap.Tooltip(tooltipTriggerEl)
        })
    </script>

    <!-- Custom JS for Print and Copy Functionality -->
    <script>
        function printOrder() {
            window.print();
        }

        function copyOrderDetails() {
            // Gather the required information
            const orderId = "<?= htmlspecialchars($order['order_id']) ?>";
            const status = "<?= htmlspecialchars($order['status']) ?>";
            const priority = "<?= htmlspecialchars($order['priority']) ?>";
            const orderDate = "<?= date("l, d M Y, h:i A", strtotime($order['order_date'])) ?>";
            const deliveryDateTime = "<?= get_day_name($order['delivery_datetime']) ?>, <?= $order['delivery_datetime'] ? date("l, d M Y, h:i A", strtotime($order['delivery_datetime'])) : 'N/A' ?>";
            const customerName = "<?= htmlspecialchars($order['customer_name']) ?>";
            const contactNumber = "<?= htmlspecialchars($order['contact']) ?>";
            const deliveryAddress = "<?= nl2br(htmlspecialchars($order['delivery_address'])) ?>";
            const deliveryFee = <?= htmlspecialchars($order['free_shipping']) == 1 ? '0.00' : htmlspecialchars($order['delivery_fee']) ?>;
            const freeShippingStatus = <?= htmlspecialchars($order['free_shipping']) == 1 ? '"Yes"' : '"No"' ?>;

            let productSummary = '';
            document.querySelectorAll('.product-summary-item').forEach(function(item) {
                const productName = item.querySelector('.product-name').innerText;
                const productSize = item.querySelector('.product-size').innerText.replace('Size: ', '');
                const productQuantityText = item.querySelector('.product-quantity').innerText.replace('Quantity: ', '');
                const productQuantity = parseInt(productQuantityText);
                const packagingPreferences = item.querySelector('.packaging-preferences').innerText.replace('Packaging: ', '');

                if (!isNaN(productQuantity) && productQuantity > 1) {
                    productSummary += `• Item: ${productQuantity} Boxes\n  Size: ${productSize}\n  Product: ${productName}\n  Packaging: ${packagingPreferences}\n\n`;
                } else if (!isNaN(productQuantity) && productQuantity === 1) {
                    productSummary += `• Item: ${productQuantity} Box\n  Size: ${productSize}\n  Product: ${productName}\n  Packaging: ${packagingPreferences}\n\n`;
                } else {
                    productSummary += `• Product: ${productName}\n  Size: ${productSize}\n  Packaging: ${packagingPreferences}\n\n`;
                }
            });

            // Construct the formatted text
            const formattedText = `🔴 Order Details 🔴
• Order ID: ${orderId}
• Status: ${status}
• Priority: ${priority}
• Order Date: ${orderDate}
• Delivery Date & Time: ${deliveryDateTime}
• Customer Name: ${customerName}

📦 Product Summary:
${productSummary}📍 Delivery Address:
${deliveryAddress}

💰 Delivery Fee: KWD ${deliveryFee} (${freeShippingStatus} Shipping)
📞 Contact Number: ${contactNumber}`;

            // Copy to clipboard using Clipboard API
            navigator.clipboard.writeText(formattedText).then(() => {
                alert('Order details copied to clipboard!');
            }).catch(err => {
                alert('Failed to copy: ' + err);
            });
        }
    </script>
</body>
</html>
<?php
// Flush the output buffer
ob_end_flush();
// No closing PHP tag to prevent unwanted output
?>) and add in progress in stutus and type full codes (-- phpMyAdmin SQL Dump
-- version 5.2.1
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1:3306
-- Generation Time: Nov 13, 2024 at 12:00 PM
-- Server version: 10.11.9-MariaDB
-- PHP Version: 7.2.34

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `u406552082_kaakalia`
--

-- --------------------------------------------------------

--
-- Table structure for table `ads`
--

CREATE TABLE `ads` (
  `id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `ad_type` enum('Post','Story') NOT NULL,
  `related_id` int(11) NOT NULL,
  `budget` decimal(10,2) NOT NULL,
  `total_spent` decimal(10,2) DEFAULT 0.00,
  `start_date` date NOT NULL,
  `end_date` date NOT NULL,
  `status` enum('Active','Paused','Completed') DEFAULT 'Active',
  `created_at` datetime DEFAULT current_timestamp(),
  `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `ad_spend_logs`
--

CREATE TABLE `ad_spend_logs` (
  `id` int(11) NOT NULL,
  `ad_id` int(11) NOT NULL,
  `amount` decimal(10,2) NOT NULL,
  `spend_date` datetime DEFAULT current_timestamp(),
  `description` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `customers`
--

CREATE TABLE `customers` (
  `id` int(11) NOT NULL,
  `name` varchar(100) NOT NULL,
  `contact` varchar(50) DEFAULT NULL,
  `delivery_address` text DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `drivers`
--

CREATE TABLE `drivers` (
  `id` int(11) NOT NULL,
  `name` varchar(100) NOT NULL,
  `number` varchar(15) NOT NULL,
  `is_star` tinyint(1) DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `notifications`
--

CREATE TABLE `notifications` (
  `id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  `type` enum('order','post','plan','note','ad') NOT NULL,
  `message` varchar(255) NOT NULL,
  `link` varchar(255) NOT NULL,
  `created_at` datetime DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `orders`
--

CREATE TABLE `orders` (
  `id` int(11) NOT NULL,
  `customer_id` int(11) NOT NULL,
  `status` enum('Pending','In Progress','Completed','Delivered') DEFAULT 'Pending',
  `priority` enum('Normal','Important','Quick') DEFAULT 'Normal',
  `order_date` datetime DEFAULT current_timestamp(),
  `delivery_datetime` datetime DEFAULT NULL,
  `delivery_date` date DEFAULT NULL,
  `delivery_fee` decimal(10,2) NOT NULL DEFAULT 0.00,
  `free_shipping` tinyint(1) NOT NULL DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `order_items`
--

CREATE TABLE `order_items` (
  `id` int(11) NOT NULL,
  `order_id` int(11) NOT NULL,
  `product_id` int(11) NOT NULL,
  `quantity` int(11) NOT NULL DEFAULT 1,
  `packaging_preferences` varchar(255) DEFAULT NULL,
  `discount_percentage` decimal(5,2) DEFAULT 0.00,
  `discount_reason` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `products`
--

CREATE TABLE `products` (
  `id` int(11) NOT NULL,
  `name` varchar(100) NOT NULL,
  `size` varchar(50) DEFAULT NULL,
  `price` decimal(10,2) NOT NULL,
  `category` varchar(50) DEFAULT NULL,
  `thumbnail` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `users`
--

CREATE TABLE `users` (
  `id` int(11) NOT NULL,
  `username` varchar(50) NOT NULL,
  `email` varchar(100) DEFAULT NULL,
  `password` varchar(255) NOT NULL,
  `role` enum('admin','staff') NOT NULL,
  `profile_image` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `workspace_notes`
--

CREATE TABLE `workspace_notes` (
  `id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  `title` varchar(255) NOT NULL,
  `content` text NOT NULL,
  `created_at` datetime DEFAULT current_timestamp(),
  `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `workspace_plans`
--

CREATE TABLE `workspace_plans` (
  `id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  `title` varchar(255) NOT NULL,
  `description` text DEFAULT NULL,
  `audio_path` varchar(255) DEFAULT NULL,
  `due_date` datetime DEFAULT NULL,
  `status` enum('Not Started','In Progress','Completed') DEFAULT 'Not Started',
  `created_at` datetime DEFAULT current_timestamp(),
  `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `priority` enum('Normal','Important','Critical') NOT NULL DEFAULT 'Normal'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `workspace_posts`
--

CREATE TABLE `workspace_posts` (
  `id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  `platform` enum('Instagram','Facebook','Twitter','Other') NOT NULL,
  `content` text NOT NULL,
  `media_url` varchar(255) DEFAULT NULL,
  `scheduled_datetime` datetime DEFAULT NULL,
  `status` enum('Scheduled','Posted','Failed') DEFAULT 'Scheduled',
  `created_at` datetime DEFAULT current_timestamp(),
  `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `type` enum('Post','Story') DEFAULT 'Post'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Indexes for dumped tables
--

--
-- Indexes for table `ads`
--
ALTER TABLE `ads`
  ADD PRIMARY KEY (`id`),
  ADD KEY `user_id` (`user_id`),
  ADD KEY `related_id` (`related_id`);

--
-- Indexes for table `ad_spend_logs`
--
ALTER TABLE `ad_spend_logs`
  ADD PRIMARY KEY (`id`),
  ADD KEY `ad_id` (`ad_id`);

--
-- Indexes for table `customers`
--
ALTER TABLE `customers`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `drivers`
--
ALTER TABLE `drivers`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `notifications`
--
ALTER TABLE `notifications`
  ADD PRIMARY KEY (`id`),
  ADD KEY `user_id` (`user_id`),
  ADD KEY `created_at` (`created_at`);

--
-- Indexes for table `orders`
--
ALTER TABLE `orders`
  ADD PRIMARY KEY (`id`),
  ADD KEY `customer_id` (`customer_id`),
  ADD KEY `idx_orders_customer_id` (`customer_id`);

--
-- Indexes for table `order_items`
--
ALTER TABLE `order_items`
  ADD PRIMARY KEY (`id`),
  ADD KEY `order_id` (`order_id`),
  ADD KEY `product_id` (`product_id`),
  ADD KEY `idx_order_items_order_id` (`order_id`),
  ADD KEY `idx_order_items_product_id` (`product_id`);

--
-- Indexes for table `products`
--
ALTER TABLE `products`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `users`
--
ALTER TABLE `users`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `username` (`username`);

--
-- Indexes for table `workspace_notes`
--
ALTER TABLE `workspace_notes`
  ADD PRIMARY KEY (`id`),
  ADD KEY `user_id` (`user_id`);

--
-- Indexes for table `workspace_plans`
--
ALTER TABLE `workspace_plans`
  ADD PRIMARY KEY (`id`),
  ADD KEY `user_id` (`user_id`);

--
-- Indexes for table `workspace_posts`
--
ALTER TABLE `workspace_posts`
  ADD PRIMARY KEY (`id`),
  ADD KEY `user_id` (`user_id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `ads`
--
ALTER TABLE `ads`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `ad_spend_logs`
--
ALTER TABLE `ad_spend_logs`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `customers`
--
ALTER TABLE `customers`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `drivers`
--
ALTER TABLE `drivers`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `notifications`
--
ALTER TABLE `notifications`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `orders`
--
ALTER TABLE `orders`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `order_items`
--
ALTER TABLE `order_items`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `products`
--
ALTER TABLE `products`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `users`
--
ALTER TABLE `users`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `workspace_notes`
--
ALTER TABLE `workspace_notes`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `workspace_plans`
--
ALTER TABLE `workspace_plans`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `workspace_posts`
--
ALTER TABLE `workspace_posts`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- Constraints for dumped tables
--

--
-- Constraints for table `ads`
--
ALTER TABLE `ads`
  ADD CONSTRAINT `fk_ads_related_id` FOREIGN KEY (`related_id`) REFERENCES `workspace_posts` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_ads_user_id` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `ad_spend_logs`
--
ALTER TABLE `ad_spend_logs`
  ADD CONSTRAINT `fk_ad_spend_logs_ad_id` FOREIGN KEY (`ad_id`) REFERENCES `ads` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `notifications`
--
ALTER TABLE `notifications`
  ADD CONSTRAINT `notifications_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `orders`
--
ALTER TABLE `orders`
  ADD CONSTRAINT `fk_orders_customer_id` FOREIGN KEY (`customer_id`) REFERENCES `customers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `orders_ibfk_1` FOREIGN KEY (`customer_id`) REFERENCES `customers` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `order_items`
--
ALTER TABLE `order_items`
  ADD CONSTRAINT `fk_order_items_order_id` FOREIGN KEY (`order_id`) REFERENCES `orders` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `fk_order_items_product_id` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `order_items_ibfk_1` FOREIGN KEY (`order_id`) REFERENCES `orders` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `order_items_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `workspace_notes`
--
ALTER TABLE `workspace_notes`
  ADD CONSTRAINT `fk_workspace_notes_user_id` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `workspace_plans`
--
ALTER TABLE `workspace_plans`
  ADD CONSTRAINT `fk_workspace_plans_user_id` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `workspace_posts`
--
ALTER TABLE `workspace_posts`
  ADD CONSTRAINT `fk_workspace_posts_user_id` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE;
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;) and type full codes