(<?php
// public/orders/add_order.php

// Enable error reporting for debugging (disable in production)
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// 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()

// Initialize variables
$success = '';
$error = '';

// Define an array of countries with their full dialing codes
$countries = [
    "Afghanistan" => "+93",
    "Albania" => "+355",
    "Algeria" => "+213",
    "Andorra" => "+376",
    "Angola" => "+244",
    "Antigua and Barbuda" => "+1-268",
    "Argentina" => "+54",
    "Armenia" => "+374",
    "Australia" => "+61",
    "Austria" => "+43",
    "Azerbaijan" => "+994",
    "Bahamas" => "+1-242",
    "Bahrain" => "+973",
    "Bangladesh" => "+880",
    "Barbados" => "+1-246",
    "Belarus" => "+375",
    "Belgium" => "+32",
    "Belize" => "+501",
    "Benin" => "+229",
    "Bhutan" => "+975",
    "Bolivia" => "+591",
    "Bosnia and Herzegovina" => "+387",
    "Botswana" => "+267",
    "Brazil" => "+55",
    "Brunei" => "+673",
    "Bulgaria" => "+359",
    "Burkina Faso" => "+226",
    "Burundi" => "+257",
    // ... (Add all other countries as needed)
    "Kuwait" => "+965",
    // Continue adding countries up to the desired list
];

// Fetch products for selection
$products_sql = "SELECT * FROM products ORDER BY name ASC";
$products_result = $conn->query($products_sql);

if (!$products_result) {
    die("Error fetching products: " . $conn->error);
}

// Initialize priority with default value
$priority = 'Normal';

// Handle form submission
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // Sanitize and validate input
    $selected_country = sanitize_input($_POST['country'] ?? '+965');
    $contact_input = sanitize_input($_POST['contact'] ?? '');
    $delivery_address = sanitize_input($_POST['delivery_address'] ?? '');

    // Ensure contact number contains only digits
    $contact_digits = preg_replace('/\D/', '', $contact_input);
    if (empty($contact_digits)) {
        $error = "A valid contact number is required.";
    } else {
        // Full contact number with country code
        $full_contact = $selected_country . $contact_digits;

        // Generate customer name
        $customer_name = 'Order_' . $contact_digits;
    }

    // Set priority
    $priority = sanitize_input($_POST['priority'] ?? 'Normal');

    $free_shipping = isset($_POST['free_shipping']) ? 1 : 0;
    $delivery_fee = $free_shipping ? 0.00 : (isset($_POST['delivery_fee']) ? floatval($_POST['delivery_fee']) : 0.00);

    // Validate priority
    $valid_priorities = ['Normal', 'Important', 'Quick'];
    if (!in_array($priority, $valid_priorities)) {
        $priority = 'Normal';
    }

    // Handle multiple products
    $product_ids = $_POST['product_id'] ?? [];
    $quantities = $_POST['quantity'] ?? [];
    $packaging_preferences = $_POST['packaging_preferences'] ?? [];
    $apply_discount = $_POST['apply_discount'] ?? [];
    $discount_percentages = $_POST['discount_percentage'] ?? [];
    $discount_reasons = $_POST['discount_reason'] ?? [];

    // Basic validation
    if (empty($customer_name)) {
        $error = "Customer name generation failed.";
    } elseif (empty($contact_input)) {
        $error = "Contact number is required.";
    } elseif (empty($product_ids) || !is_array($product_ids) || count($product_ids) == 0) {
        $error = "At least one product must be selected.";
    } else {
        // Validate each product entry
        foreach ($product_ids as $index => $pid) {
            if (empty($pid)) {
                $error = "Product selection is required for all items.";
                break;
            }
            if (!isset($quantities[$index]) || intval($quantities[$index]) <= 0) {
                $error = "Quantity must be at least 1 for all items.";
                break;
            }
            // If discount is applied, validate discount fields
            if (isset($apply_discount[$index])) {
                $discount = trim($discount_percentages[$index]);
                $reason = trim($discount_reasons[$index]);
                if ($discount === '') {
                    $error = "Discount percentage is required if discount is applied.";
                    break;
                }
                if (!is_numeric($discount) || floatval($discount) < 0 || floatval($discount) > 100) {
                    $error = "Invalid discount percentage for product. It should be between 0 and 100.";
                    break;
                }
                if (empty($reason)) {
                    $error = "Discount reason is required if discount is applied.";
                    break;
                }
            }
        }

        // Validate delivery_datetime
        $delivery_datetime_input = $_POST['delivery_datetime'] ?? '';
        if (!empty($delivery_datetime_input)) {
            // Convert from 'Y-m-d\TH:i' to 'Y-m-d H:i:s'
            $delivery_datetime = sanitize_input(str_replace('T', ' ', $delivery_datetime_input) . ':00');
            if (!preg_match("/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/", $delivery_datetime)) {
                $error = "Invalid delivery date and time format.";
            } elseif (strtotime($delivery_datetime) < strtotime(date('Y-m-d H:i:s'))) {
                $error = "Delivery date and time cannot be in the past.";
            }
        } else {
            $delivery_datetime = null;
        }

        // Validate delivery_fee if not free shipping
        if (!$free_shipping) {
            if (!isset($_POST['delivery_fee']) || !is_numeric($_POST['delivery_fee']) || floatval($_POST['delivery_fee']) < 0) {
                $error = "Valid delivery fee is required.";
            }
        }
    }

    if (empty($error)) {
        // Start transaction
        $conn->begin_transaction();

        try {
            // Insert into customers table using prepared statement
            $stmt = $conn->prepare("INSERT INTO customers (name, contact, delivery_address) VALUES (?, ?, ?)");
            if (!$stmt) {
                throw new Exception("Prepare statement failed: " . $conn->error);
            }
            $stmt->bind_param("sss", $customer_name, $full_contact, $delivery_address);
            if (!$stmt->execute()) {
                throw new Exception("Execute failed: " . $stmt->error);
            }
            $customer_id = $stmt->insert_id;
            $stmt->close();

            // Insert into orders table using prepared statement
            $status = 'Pending'; // Default status
            $stmt = $conn->prepare("INSERT INTO orders (customer_id, status, priority, delivery_datetime, delivery_fee, free_shipping) VALUES (?, ?, ?, ?, ?, ?)");
            if (!$stmt) {
                throw new Exception("Prepare statement failed: " . $conn->error);
            }
            $stmt->bind_param("isssdi", $customer_id, $status, $priority, $delivery_datetime, $delivery_fee, $free_shipping);
            if (!$stmt->execute()) {
                throw new Exception("Execute failed: " . $stmt->error);
            }
            $order_id = $stmt->insert_id;
            $stmt->close();

            // Insert products into order_items table
            $stmt = $conn->prepare("INSERT INTO order_items (order_id, product_id, quantity, packaging_preferences, discount_percentage, discount_reason) VALUES (?, ?, ?, ?, ?, ?)");
            if (!$stmt) {
                throw new Exception("Prepare statement failed: " . $conn->error);
            }

            // Loop through each product
            foreach ($product_ids as $index => $pid) {
                $pid = intval($pid);
                $qty = intval($quantities[$index]);
                $pack_pref = sanitize_input($packaging_preferences[$index] ?? '');

                // Handle discount
                $discount_percent = 0.00;
                $discount_rs = null;
                if (isset($apply_discount[$index])) {
                    $discount_percent = floatval(trim($discount_percentages[$index]));
                    $discount_rs = sanitize_input($discount_reasons[$index]);
                }

                $stmt->bind_param("iiisds", $order_id, $pid, $qty, $pack_pref, $discount_percent, $discount_rs);
                if (!$stmt->execute()) {
                    throw new Exception("Execute failed: " . $stmt->error);
                }
            }

            $stmt->close();

            // Commit transaction
            $conn->commit();

            // Redirect to view_orders.php after successful addition
            header("Location: view_orders.php?success=1");
            exit();
        } catch (Exception $e) {
            // Rollback transaction
            $conn->rollback();
            $error = "Error adding order: " . $e->getMessage();
        }
    }
}

// Now include the header AFTER form handling
require_once '../../includes/header.php';
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Add New Order - Kaak Alia Management System</title>
    
    <!-- Tailwind CSS CDN -->
    <script src="https://cdn.tailwindcss.com"></script>
    
    <!-- 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 -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css">
    
    <!-- Custom Styles -->
    <style>
        /* Custom scrollbar for better UX */
        ::-webkit-scrollbar {
            width: 8px;
        }

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

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

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

        /* Responsive Table */
        @media (max-width: 768px) {
            table {
                min-width: 600px;
            }
        }

        /* Solid border for input fields */
        .form-control {
            @apply border border-solid border-gray-300 rounded-md shadow-sm focus:ring-teal-500 focus:border-teal-500;
        }
    </style>

    <!-- Additional JavaScript for dynamic product addition, discount handling, and delivery fee toggle -->
    <script>
        let productCount = <?= isset($product_ids) ? count($product_ids) : 1; ?>;

        function addProductRow() {
            const productContainer = document.getElementById('products-container');

            const productRow = document.createElement('div');
            productRow.className = 'product-row bg-gray-50 p-4 rounded-lg shadow-md mb-4';
            productRow.innerHTML = `
                <div class="grid grid-cols-1 md:grid-cols-4 gap-4">
                    <div>
                        <label class="block text-sm font-medium text-gray-700" for="product_id_${productCount}">Product <span class="text-red-500">*</span></label>
                        <select name="product_id[]" id="product_id_${productCount}" class="form-control" required>
                            <option value="">Select Product</option>
                            <?php
                            // Reset the products_result pointer
                            $products_result->data_seek(0);
                            while($product = $products_result->fetch_assoc()): ?>
                                <option value="<?= htmlspecialchars($product['id']) ?>">
                                    <?= htmlspecialchars($product['name'] . " - " . $product['size'] . " (" . number_format($product['price'], 2) . " KD)") ?>
                                </option>
                            <?php endwhile; ?>
                        </select>
                    </div>
                    <div>
                        <label class="block text-sm font-medium text-gray-700" for="quantity_${productCount}">Quantity <span class="text-red-500">*</span></label>
                        <input type="number" name="quantity[]" id="quantity_${productCount}" class="form-control" min="1" value="1" required>
                    </div>
                    <div>
                        <label class="block text-sm font-medium text-gray-700" for="packaging_preferences_${productCount}">Packaging Preferences</label>
                        <input type="text" name="packaging_preferences[]" id="packaging_preferences_${productCount}" class="form-control" placeholder="e.g., Gift Wrap">
                    </div>
                    <div>
                        <label class="block text-sm font-medium text-gray-700" for="discount_${productCount}">Apply Discount</label>
                        <div class="flex items-center mt-1">
                            <input type="checkbox" name="apply_discount[]" id="discount_checkbox_${productCount}" class="h-4 w-4 text-teal-600 border-gray-300 rounded" onchange="toggleDiscountFields(this, ${productCount})">
                            <label for="discount_checkbox_${productCount}" class="ml-2 block text-sm text-gray-700">
                                Yes
                            </label>
                        </div>
                        <div id="discount_fields_${productCount}" class="discount-fields mt-2" style="display: none;">
                            <label class="block text-sm font-medium text-gray-700" for="discount_percentage_${productCount}">Discount Percentage (%) <span class="text-red-500">*</span></label>
                            <input type="number" name="discount_percentage[]" id="discount_percentage_${productCount}" class="form-control" min="0" max="100" step="0.01" placeholder="Enter discount percentage">
                            
                            <label class="block text-sm font-medium text-gray-700 mt-2" for="discount_reason_${productCount}">Discount Reason <span class="text-red-500">*</span></label>
                            <input type="text" name="discount_reason[]" id="discount_reason_${productCount}" class="form-control" placeholder="Enter reason for discount">
                        </div>
                    </div>
                </div>
                <div class="flex justify-end mt-2">
                    <button type="button" class="remove-product-button bg-red-500 text-white px-4 py-2 rounded-lg hover:bg-red-600 transition duration-300 flex items-center gap-2" onclick="removeProductRow(this)">
                        <i class="bi bi-trash-fill"></i> Remove Product
                    </button>
                </div>
            `;
            productContainer.appendChild(productRow);

            // Initialize discount toggle for the new row
            const newCheckbox = productRow.querySelector(`input[name="apply_discount[]"]`);
            newCheckbox.addEventListener('change', function() {
                toggleDiscountFields(this, productCount);
            });

            productCount++;
        }

        function removeProductRow(button) {
            const productRow = button.closest('.product-row');
            productRow.remove();
        }

        // Toggle discount fields based on checkbox
        function toggleDiscountFields(checkbox, count) {
            const discountFields = document.getElementById(`discount_fields_${count}`);
            if (checkbox.checked) {
                discountFields.style.display = 'block';
            } else {
                discountFields.style.display = 'none';
                // Clear discount inputs
                discountFields.querySelectorAll('input').forEach(input => input.value = '');
            }
        }

        // Toggle delivery fee field based on free shipping checkbox
        function toggleDeliveryFee() {
            const freeShippingCheckbox = document.getElementById('free_shipping');
            const deliveryFeeField = document.getElementById('delivery_fee_field');
            const deliveryFeeInput = document.getElementById('delivery_fee');
            if (freeShippingCheckbox.checked) {
                deliveryFeeField.style.display = 'none';
                deliveryFeeInput.value = '0.00';
                deliveryFeeInput.disabled = true;
            } else {
                deliveryFeeField.style.display = 'block';
                deliveryFeeInput.disabled = false;
            }
        }

        // Auto-generate Customer Name based on Contact Number
        function autoGenerateCustomerName() {
            const contactInput = document.getElementById('contact');
            const customerNameInput = document.getElementById('customer_name');
            
            // Extract digits from contact number
            const digits = contactInput.value.replace(/\D/g, '');
            if (digits.length > 0) {
                customerNameInput.value = 'Order_' + digits;
            } else {
                customerNameInput.value = '';
            }
        }

        // Initialize on DOM content loaded
        document.addEventListener('DOMContentLoaded', function() {
            // Add initial product row if none exist
            if (document.getElementById('products-container').children.length === 0) {
                addProductRow();
            }

            // Initialize delivery fee toggle
            toggleDeliveryFee();
            document.getElementById('free_shipping').addEventListener('change', toggleDeliveryFee);

            // Initialize Customer Name auto-generation
            document.getElementById('contact').addEventListener('input', autoGenerateCustomerName);
        });
    </script>

</head>
<body class="bg-gray-100">

    <!-- Main Container -->
    <main class="container mx-auto p-6">
        <!-- Header -->
        <div class="mb-8">
            <h1 class="text-3xl font-bold text-teal-600 flex items-center">
                <i class="bi bi-cart-plus mr-2"></i> Add New Order
            </h1>
        </div>

        <!-- Welcome Section -->
        <div class="bg-white rounded-lg shadow-lg p-6 mb-8">
            <p class="text-gray-700">Fill out the form below to add a new customer order.</p>
        </div>

        <!-- Form Container -->
        <div class="bg-white rounded-lg shadow-lg p-6">
            <?php if (!empty($error)): ?>
                <div class="bg-red-100 border border-solid border-red-400 text-red-700 px-4 py-3 rounded relative mb-4 flex items-center">
                    <i class="bi bi-exclamation-triangle-fill mr-2"></i>
                    <span><?= htmlspecialchars($error) ?></span>
                </div>
            <?php endif; ?>
            <?php if (!empty($success)): ?>
                <div class="bg-green-100 border border-solid border-green-400 text-green-700 px-4 py-3 rounded relative mb-4 flex items-center">
                    <i class="bi bi-check-circle-fill mr-2"></i>
                    <span><?= htmlspecialchars($success) ?></span>
                </div>
            <?php endif; ?>
            
            <form method="POST" action="add_order.php">
                <!-- Customer Details -->
                <div class="mb-6">
                    <h2 class="text-xl font-semibold text-gray-800 mb-4">Customer Details</h2>
                    
                    <div class="flex flex-col md:flex-row md:space-x-6">
                        <div class="flex-1 mb-4 md:mb-0">
                            <label class="block text-sm font-medium text-gray-700 mb-1" for="customer_name">Customer Name <span class="text-red-500">*</span></label>
                            <input type="text" id="customer_name" name="customer_name" class="form-control" 
                                   value="<?= htmlspecialchars($customer_name ?? '') ?>" 
                                   readonly placeholder="Auto-generated based on contact number" required>
                        </div>
                        <div class="flex-1 mb-4 md:mb-0">
                            <label class="block text-sm font-medium text-gray-700 mb-1" for="country">Country <span class="text-red-500">*</span></label>
                            <select name="country" id="country" class="form-control" required>
                                <?php foreach($countries as $country => $code): ?>
                                    <option value="<?= htmlspecialchars($code) ?>" <?= (!isset($_POST['country']) && $code === '+965') || (isset($_POST['country']) && $_POST['country'] === $code) ? 'selected' : '' ?>>
                                        <?= htmlspecialchars($country . " (" . $code . ")") ?>
                                    </option>
                                <?php endforeach; ?>
                            </select>
                        </div>
                    </div>

                    <div class="flex flex-col md:flex-row md:space-x-6 mt-4">
                        <div class="flex-1 mb-4 md:mb-0">
                            <label class="block text-sm font-medium text-gray-700 mb-1" for="contact">Contact <span class="text-red-500">*</span></label>
                            <input type="text" id="contact" name="contact" class="form-control" 
                                   value="<?= htmlspecialchars($_POST['contact'] ?? '') ?>" 
                                   required placeholder="Enter contact number without country code">
                        </div>
                        <div class="flex-1">
                            <label class="block text-sm font-medium text-gray-700 mb-1" for="delivery_address">Delivery Address</label>
                            <textarea id="delivery_address" name="delivery_address" class="form-control" rows="3" placeholder="Enter delivery address"><?= htmlspecialchars($_POST['delivery_address'] ?? '') ?></textarea>
                        </div>
                    </div>
                </div>
                <hr class="my-6">

                <!-- Order Details -->
                <div class="mb-6">
                    <h2 class="text-xl font-semibold text-gray-800 mb-4">Order Details</h2>
                    
                    <!-- Priority Selection -->
                    <div class="mb-4">
                        <label class="block text-sm font-medium text-gray-700 mb-1">Order Priority</label>
                        <div class="flex space-x-4">
                            <?php
                                $priorities = ['Normal', 'Important', 'Quick'];
                                foreach ($priorities as $priority_option):
                                    $checked = ($priority === $priority_option) ? 'checked' : '';
                            ?>
                                <label class="inline-flex items-center">
                                    <input type="radio" name="priority" value="<?= htmlspecialchars($priority_option) ?>" class="form-radio text-teal-600" <?= $checked ?> required>
                                    <span class="ml-2"><?= htmlspecialchars($priority_option) ?></span>
                                </label>
                            <?php endforeach; ?>
                        </div>
                    </div>

                    <!-- Products Selection -->
                    <div class="mb-4">
                        <div class="flex justify-between items-center mb-2">
                            <label class="block text-sm font-medium text-gray-700">Products <span class="text-red-500">*</span></label>
                            <button type="button" class="bg-teal-500 text-white px-4 py-2 rounded-lg hover:bg-teal-600 transition duration-300 flex items-center gap-2" onclick="addProductRow()">
                                <i class="bi bi-plus-circle-fill"></i> Add Product
                            </button>
                        </div>
                        <div id="products-container">
                            <!-- Product Rows will be added here -->
                            <?php
                            // If form was submitted with errors, repopulate the product rows
                            if ($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($error) && !empty($product_ids) && is_array($product_ids)) {
                                foreach ($product_ids as $i => $pid) {
                                    ?>
                                    <div class="product-row bg-gray-50 p-4 rounded-lg shadow-md mb-4">
                                        <div class="grid grid-cols-1 md:grid-cols-4 gap-4">
                                            <div>
                                                <label class="block text-sm font-medium text-gray-700" for="product_id_<?= $i ?>">Product <span class="text-red-500">*</span></label>
                                                <select name="product_id[]" id="product_id_<?= $i ?>" class="form-control" required>
                                                    <option value="">Select Product</option>
                                                    <?php
                                                    $products_result->data_seek(0);
                                                    while($product = $products_result->fetch_assoc()):
                                                        $selected = ($product['id'] == $pid) ? 'selected' : '';
                                                    ?>
                                                        <option value="<?= htmlspecialchars($product['id']) ?>" <?= $selected ?>>
                                                            <?= htmlspecialchars($product['name'] . " - " . $product['size'] . " (" . number_format($product['price'], 2) . " KD)") ?>
                                                        </option>
                                                    <?php endwhile; ?>
                                                </select>
                                            </div>
                                            <div>
                                                <label class="block text-sm font-medium text-gray-700" for="quantity_<?= $i ?>">Quantity <span class="text-red-500">*</span></label>
                                                <input type="number" name="quantity[]" id="quantity_<?= $i ?>" class="form-control" min="1" value="<?= isset($quantities[$i]) ? intval($quantities[$i]) : '1' ?>" required>
                                            </div>
                                            <div>
                                                <label class="block text-sm font-medium text-gray-700" for="packaging_preferences_<?= $i ?>">Packaging Preferences</label>
                                                <input type="text" name="packaging_preferences[]" id="packaging_preferences_<?= $i ?>" class="form-control" placeholder="e.g., Gift Wrap" value="<?= htmlspecialchars($packaging_preferences[$i] ?? '') ?>">
                                            </div>
                                            <div>
                                                <label class="block text-sm font-medium text-gray-700" for="discount_${i}">Apply Discount</label>
                                                <div class="flex items-center mt-1">
                                                    <input type="checkbox" name="apply_discount[]" id="discount_checkbox_<?= $i ?>" class="h-4 w-4 text-teal-600 border-gray-300 rounded" onchange="toggleDiscountFields(this, <?= $i ?>)" <?= isset($apply_discount[$i]) ? 'checked' : '' ?>>
                                                    <label for="discount_checkbox_<?= $i ?>" class="ml-2 block text-sm text-gray-700">
                                                        Yes
                                                    </label>
                                                </div>
                                                <div id="discount_fields_<?= $i ?>" class="discount-fields mt-2" style="display: <?= isset($apply_discount[$i]) ? 'block' : 'none' ?>;">
                                                    <label class="block text-sm font-medium text-gray-700" for="discount_percentage_<?= $i ?>">Discount Percentage (%) <span class="text-red-500">*</span></label>
                                                    <input type="number" name="discount_percentage[]" id="discount_percentage_<?= $i ?>" class="form-control" min="0" max="100" step="0.01" placeholder="Enter discount percentage" value="<?= htmlspecialchars($discount_percentages[$i] ?? '') ?>">
                                                    
                                                    <label class="block text-sm font-medium text-gray-700 mt-2" for="discount_reason_<?= $i ?>">Discount Reason <span class="text-red-500">*</span></label>
                                                    <input type="text" name="discount_reason[]" id="discount_reason_<?= $i ?>" class="form-control" placeholder="Enter reason for discount" value="<?= htmlspecialchars($discount_reasons[$i] ?? '') ?>">
                                                </div>
                                            </div>
                                        </div>
                                        <div class="flex justify-end mt-2">
                                            <button type="button" class="remove-product-button bg-red-500 text-white px-4 py-2 rounded-lg hover:bg-red-600 transition duration-300 flex items-center gap-2" onclick="removeProductRow(this)">
                                                <i class="bi bi-trash-fill"></i> Remove Product
                                            </button>
                                        </div>
                                    </div>
                                    <?php
                                }
                            } else {
                                // Add one default product row
                                ?>
                                <div class="product-row bg-gray-50 p-4 rounded-lg shadow-md mb-4">
                                    <div class="grid grid-cols-1 md:grid-cols-4 gap-4">
                                        <div>
                                            <label class="block text-sm font-medium text-gray-700" for="product_id_0">Product <span class="text-red-500">*</span></label>
                                            <select name="product_id[]" id="product_id_0" class="form-control" required>
                                                <option value="">Select Product</option>
                                                <?php
                                                $products_result->data_seek(0);
                                                while($product = $products_result->fetch_assoc()): ?>
                                                    <option value="<?= htmlspecialchars($product['id']) ?>">
                                                        <?= htmlspecialchars($product['name'] . " - " . $product['size'] . " (" . number_format($product['price'], 2) . " KD)") ?>
                                                    </option>
                                                <?php endwhile; ?>
                                            </select>
                                        </div>
                                        <div>
                                            <label class="block text-sm font-medium text-gray-700" for="quantity_0">Quantity <span class="text-red-500">*</span></label>
                                            <input type="number" name="quantity[]" id="quantity_0" class="form-control" min="1" value="1" required>
                                        </div>
                                        <div>
                                            <label class="block text-sm font-medium text-gray-700" for="packaging_preferences_0">Packaging Preferences</label>
                                            <input type="text" name="packaging_preferences[]" id="packaging_preferences_0" class="form-control" placeholder="e.g., Gift Wrap">
                                        </div>
                                        <div>
                                            <label class="block text-sm font-medium text-gray-700" for="discount_0">Apply Discount</label>
                                            <div class="flex items-center mt-1">
                                                <input type="checkbox" name="apply_discount[]" id="discount_checkbox_0" class="h-4 w-4 text-teal-600 border-gray-300 rounded" onchange="toggleDiscountFields(this, 0)">
                                                <label for="discount_checkbox_0" class="ml-2 block text-sm text-gray-700">
                                                    Yes
                                                </label>
                                            </div>
                                            <div id="discount_fields_0" class="discount-fields mt-2" style="display: none;">
                                                <label class="block text-sm font-medium text-gray-700" for="discount_percentage_0">Discount Percentage (%) <span class="text-red-500">*</span></label>
                                                <input type="number" name="discount_percentage[]" id="discount_percentage_0" class="form-control" min="0" max="100" step="0.01" placeholder="Enter discount percentage">
                                                
                                                <label class="block text-sm font-medium text-gray-700 mt-2" for="discount_reason_0">Discount Reason <span class="text-red-500">*</span></label>
                                                <input type="text" name="discount_reason[]" id="discount_reason_0" class="form-control" placeholder="Enter reason for discount">
                                            </div>
                                        </div>
                                    </div>
                                    <div class="flex justify-end mt-2">
                                        <button type="button" class="remove-product-button bg-red-500 text-white px-4 py-2 rounded-lg hover:bg-red-600 transition duration-300 flex items-center gap-2" onclick="removeProductRow(this)">
                                            <i class="bi bi-trash-fill"></i> Remove Product
                                        </button>
                                    </div>
                                </div>
                                <?php
                            }
                            ?>
                        </div>
                        <button type="button" class="bg-teal-500 text-white px-4 py-2 rounded-lg hover:bg-teal-600 transition duration-300 flex items-center gap-2" onclick="addProductRow()">
                            <i class="bi bi-plus-circle-fill"></i> Add Another Product
                        </button>
                    </div>

                    <!-- Delivery Details -->
                    <hr class="my-6">
                    <div class="mb-6">
                        <h2 class="text-xl font-semibold text-gray-800 mb-4">Delivery Details</h2>
                        <div class="flex items-center mb-4">
                            <input type="checkbox" id="free_shipping" name="free_shipping" class="h-4 w-4 text-teal-600 border-gray-300 rounded" <?= isset($_POST['free_shipping']) ? 'checked' : '' ?> onchange="toggleDeliveryFee()">
                            <label for="free_shipping" class="ml-2 block text-sm text-gray-700">
                                Free Shipping
                            </label>
                        </div>
                        <div id="delivery_fee_field" class="mb-4">
                            <label class="block text-sm font-medium text-gray-700 mb-1" for="delivery_fee">Delivery Fee (KWD)</label>
                            <input type="number" step="0.01" min="0" name="delivery_fee" id="delivery_fee" class="form-control" 
                                   value="<?= isset($_POST['delivery_fee']) ? htmlspecialchars($_POST['delivery_fee']) : '0.00' ?>" 
                                   <?= isset($_POST['free_shipping']) ? 'disabled' : '' ?> required>
                        </div>
                        <div>
                            <label class="block text-sm font-medium text-gray-700 mb-1" for="delivery_datetime">Delivery Date and Time</label>
                            <input type="datetime-local" id="delivery_datetime" name="delivery_datetime" class="form-control" 
                                   value="<?= htmlspecialchars($_POST['delivery_datetime'] ?? '') ?>">
                        </div>
                    </div>

                    <!-- Submit Button -->
                    <div class="mb-6">
                        <button type="submit" class="w-full bg-teal-500 text-white px-4 py-3 rounded-lg hover:bg-teal-600 transition duration-300 flex justify-center items-center gap-2">
                            <i class="bi bi-plus-lg"></i> Add Order
                        </button>
                    </div>
                </form>
            </div>

            <!-- Footer -->
            <div class="mt-12 text-center text-gray-600">
                &copy; <?= date("Y") ?> Kaak Alia Bakery. All rights reserved.
            </div>
    </main>

    <!-- Bootstrap JS Bundle (optional if using Bootstrap components) -->
    <script src="/kaak_alia_management_system/assets/bootstrap/js/bootstrap.bundle.min.js"></script>
    
    <!-- Flatpickr JS for Date Picker -->
    <script src="https://cdn.jsdelivr.net/npm/flatpickr"></script>

    <!-- Flatpickr Initialization -->
    <script>
        flatpickr("#delivery_datetime", {
            enableTime: true,
            dateFormat: "Y-m-d\\TH:i",
            minDate: "today"
        });
    </script>

    <!-- Optional: 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>

</body>
</html>
<?php
// Flush the output buffer
ob_end_flush();
// No closing PHP tag to prevent unwanted output
?>) i want to make it clear and add more codes and amke it so easy to inputs and readble and type full codes