<?php
    session_start();
    include "../config.php";

    $token = $_GET['token'] ?? '';
    if(!isset($_SESSION["token"])) {
        $_SESSION["token"] = $token;
    }

    $sql = "SELECT requisition_id, supplier_id, category_id, supplier_status FROM requisition_suppliers WHERE token = ? LIMIT 1";
    $stmt = $conn->prepare($sql);
    $stmt->bind_param("s", $token);
    $stmt->execute();
    $result = $stmt->get_result();
    $row = [];

    // print_r($result);
    if ($row = $result->fetch_assoc()) {
        $requisition_id = $row["requisition_id"];
        $supplier_id = $row["supplier_id"] ?? null;
        $category_id = $row["category_id"] ?? null;
        $supplier_status = $row["supplier_status"] ?? null;

        /* =========================
        FETCH REQUISITION HEADER
        ========================= */
        $stmt = $conn->prepare("
            SELECT 
                r.*,
                p.name AS project_name
            FROM requisition r
            JOIN projects p ON r.project_id = p.id
            WHERE r.id = ?
        ");
        $stmt->bind_param("i", $requisition_id);
        $stmt->execute();
        $req = $stmt->get_result()->fetch_assoc();
        if (!$req) {
            die("Requisition not found");
        }

        if ($req['requisition_type'] === 'Construction') {
            
            // Step 1: Fetch items
            $stmt = $conn->prepare("
                SELECT 
                    d.material_name AS item_name,
                    ri.requested_qty,
                    d.rate AS unit_cost,
                    (ri.requested_qty * d.rate) AS total,
                    d.supplier_category,
                    ri.source_item_id AS item_id,
                    sq.status AS supplier_status,
                    sq.id AS quotation_id,
                    sq.price,
                    sq.uploaded_at,
                    sq.include_vat,
                    quotation_status
                FROM requisition_items ri
                JOIN boq2_sub_item_details d 
                    ON ri.source_item_id = d.detail_id
                LEFT JOIN quotations sq 
                    ON sq.item_id = ri.source_item_id 
                    AND sq.requisition_id = ri.requisition_id
                    AND sq.supplier_id = ?
                WHERE ri.requisition_id = ?
            ");
            $stmt->bind_param("ii", $supplier_id, $requisition_id);
            $stmt->execute();
            $items = $stmt->get_result()->fetch_all(MYSQLI_ASSOC);

            // Step 2: Build category → items map
            $itemsByCategory = [];
            foreach ($items as $item) {
                $itemsByCategory[$item['supplier_category']][] = $item;
            }

            // Step 3: Get supplier their categories
            $sql = "
                SELECT u.id AS supplier_id, u.email, u.name AS supplier_name, c.name
                FROM users u
                JOIN supplier_categories sc 
                    ON u.id = sc.user_id
                JOIN categories c 
                    ON sc.category_id = c.id
                WHERE u.id = ".$supplier_id;

            $result = $conn->query($sql);
            $supplierRows = $result->fetch_all(MYSQLI_ASSOC);

            // Build supplier → categories map
            $suppliers = [];
            foreach ($supplierRows as $row) {
                $id = $row['supplier_id'];
                if (!isset($suppliers[$id])) {
                    $suppliers[$id] = [
                        'id' => $id,
                        'name' => $row['supplier_name'],
                        'email' => $row['email'],
                        'categories' => []
                    ];
                }
                $suppliers[$id]['categories'][] = $row['name'];
            }

            // Step 4: Match suppliers to items
            foreach ($suppliers as $supplierId => $supplierData) {
                $supplierItems = [];

                foreach ($supplierData['categories'] as $cat) {
                    if (isset($itemsByCategory[$cat])) {
                        $supplierItems = array_merge($supplierItems, $itemsByCategory[$cat]);
                    }
                }

            }
        }
        else {
            $sql = "SELECT
                            r.id, r.procurement_plan_id, p.description,
                            u.name AS requested_by, c.name AS category_name,
                            ri.requested_qty
                        FROM requisition r
                        JOIN procurement_plan p 
                        ON r.procurement_plan_id = p.id
                        JOIN users u
                        ON u.id = ?
                        JOIN categories c
                        ON c.id = ?
                        JOIN requisition_items ri
                        ON ri.requisition_id = r.id
                        WHERE r.id = ?";
        
            $stmt = $conn->prepare($sql);
            $stmt->bind_param("iii", $supplier_id, $category_id, $requisition_id);

            $stmt->execute();
            $result = $stmt->get_result();
        }

        if($req['requisition_type'] !== 'Construction') {
            if ($row = $result->fetch_assoc()) {
                    // echo "Requisition ID: " . $row['id'] . "<br>";
                    // echo "Procurement Plan ID: " . $row['procurement_plan_id'] . "<br>";
                    // echo "Description: " . $row['description'];

                    $query = "SELECT id AS quotation_id, price, include_vat, file, quotation_status, status AS supplier_status FROM quotations WHERE token = '$token' LIMIT 1";
                    $result = mysqli_query($conn, $query);

                    $quotation = mysqli_fetch_assoc($result) ?? NULL;


            } else {
                echo "No record found.";
            }
        }

        
    
        

    } else {
        die ("Invalid or expired link.");
        exit;
    }
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Supplier Portal</title>
    <link rel="stylesheet" href="../assets/css/bootstrap.min.css">
    <link rel="stylesheet" href="../assets/JavaScript-Toast-Library/style.css">
    <link rel="stylesheet" href="css/style.css">
    <link rel="stylesheet" href="css/supplier_portal.css">
</head>
<body>
    <div class="sidebar">
        <h2>Navigation</h2>
        <a href="./supplier_portal.php?token=<?php echo($_SESSION["token"]); ?>">Home</a>
        <a href="messages.php?token=<?php echo($_SESSION["token"]); ?>">Messages</a>
    </div>

    <div class="content">
        <h1>Home</h1>
        <?php if($req['requisition_type'] !== 'Construction'): ?>
            <p>Welcome supplier <?php echo($row["requested_by"]); ?></p>

            <h5 class="mt-5 mb-4">Request Details</h5>

        
            <table class="table table-bordered bg-white">
                <thead class="table-dark">
                    <tr>
                        <th>Item Name</th>
                        <th>Requested Qty</th>
                        <th>Quotation Status</th>
                        <th>Your Price</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td><?php echo($row["description"]); ?></td>
                        <td><?php echo($row["requested_qty"]); ?></td>
                        <td>
                            
                            <p id="quotationStatus">
                                <?php if($quotation): ?>
                                    <?php if($quotation['quotation_status'] === 'invoice_requested'): ?>
                                        <span class="badge bg-success text-dark">Accepted</span>
                                    <?php elseif($quotation['quotation_status'] === 'invoice_sent'): ?>
                                        <span class="badge bg-success">Invoice Sent</span>
                                    <?php elseif($quotation['quotation_status'] === 'sent_to_accmgr' || $quotation['quotation_status'] === 'sent_to_fd' ): ?>
                                        <span class="badge bg-warning text-dark">Wait for payment confirmation</span>
                                    <?php else: ?>
                                        <span class="badge bg-warning text-dark">Not Sent</span>
                                    <?php endif; ?>  
                                
                                    <br/> 
                                    <?php if($quotation['quotation_status'] === 'invoice_requested'): ?>
                                        <form data-quotation-id="<?= $quotation['quotation_id'] ?>" action="" method="post" enctype="multipart/form-data" class="invoiceForm">
                                            <div class="d-flex gap-2">
                                                <!-- Small file input -->
                                                <input type="file" class="form-control form-control-sm" id="invoiceFile" required>

                                                <!-- Small button -->
                                                <button data-quotation-id=<?= $quotation['quotation_id'] ?> type="button" class="btn btn-primary btn-sm">
                                                    Send Invoice
                                                </button>
                                            </div>
                                        </form>
                                    <?php endif; ?>
                                <?php else: ?>
                                    <span class="badge bg-warning text-dark">----</span>
                                <?php endif; ?>
                            </p>
                            
                        </td>
                        <td>
                            <form id="updateForm" action="" method="post" class="mb-0">
                                <!-- Hidden fields (YOU CAN'T SEE MI --- tintilili*2) -->
                                <input type="hidden" name="token" value="<?php echo($token); ?>">
                                <input type="hidden" name="requested_by" value="<?php echo($row["requested_by"]); ?>">
                                <input type="hidden" name="requisition_id" value="<?php echo($requisition_id); ?>">
                                <input type="hidden" name="supplier_id" value="<?php echo($supplier_id); ?>">
                            
                                <?php if ($quotation) : ?>
                                    <!-- If quotation exists, show values and disable inputs -->
                                    <div class="mb-2">
                                        <!-- <label for="price" class="form-label">Price</label> -->
                                        <input type="number" name="price" 
                                            value="<?php echo($quotation['price']); ?>" 
                                            class="form-control" disabled>
                                    </div>
                                    <?php if($quotation["include_vat"]): ?>
                                        <span class="badge bg-info">VAT Included</span>
                                    <?php else: ?>
                                        <span class="badge bg-secondary">No VAT</span>
                                    <?php endif; ?>
                                    <span class="badge bg-success">Price Submitted</span>
                                <?php else : ?>
                                    <!-- If no quotation exists, show editable inputs -->
                                    <div class="mb-2">
                                        <input type="number" name="price" 
                                            class="form-control" 
                                            placeholder="Enter the price here..." required>
                                    </div>
                                        <!-- Uncomment if you want file upload -->
                                        <!-- <div class="mb-2">
                                            <input type="file" name="file" class="form-control" required>
                                        </div> -->
                                    <!-- VAT checkbox -->
                                        
                                    <div class="form-check form-switch  border rounded bg-light">
                                        <input class="form-check-input" type="checkbox" 
                                            name="include_vat" value="1" 
                                            style="transform: scale(1.2); margin-right: 2px;">
                                        <label class="form-check-label fw-bold text-primary" 
                                            for="include_vat">
                                            Include VAT
                                        </label>
                                    </div>
                                    <button id="submitBtn" type="submit" class="btn btn-primary btn-sm">
                                        Submit
                                    </button>
                                <?php endif; ?>


                            </form>

                        </td>
                    </tr>
                </tbody>
            </table>
        <?php else: ?>
            <p>Welcome supplier <?php echo($supplierData["name"]); ?></p>
            <h5 class="mt-5 mb-4">Request Details</h5>
            <table class="table table-bordered bg-white">
                <thead class="table-dark">
                    <tr>
                        <th>Item Name</th>
                        <th>Requested Qty</th>
                        <th>Quotation Status</th>
                        <th>Your Price</th>
                    </tr>
                </thead>
                <tbody>
                    <?php foreach ($items as $row): ?>
                        <tr>
                            <td><?php echo htmlspecialchars($row["item_name"]); ?></td>
                            <td><?php echo htmlspecialchars($row["requested_qty"]); ?></td>
                            <td>
                                <p id="quotationStatus">
                                    <?php if (!empty($row['supplier_status'])): ?>
                                        <span class="badge 
                                            <?php echo $row['supplier_status'] === 'accepted' ? 'bg-success' : 
                                                        ($row['supplier_status'] === 'rejected' ? 'bg-danger' : 
                                                        ($row['supplier_status'] === 'sent' ? 'bg-info' : 'bg-secondary')); ?>">
                                            <?php echo ucfirst($row['supplier_status']); ?>
                                            
                                            <br>
                                            <?php //if($row['supplier_status'] === 'invoice'): ?>
                                            <?php if($row['quotation_status'] === 'invoice_requested'): ?>
                                                <form data-quotation-id="<?= $row['quotation_id'] ?>" action="" method="post" enctype="multipart/form-data" class="invoiceForm">
                                                    <div class="d-flex gap-2">
                                                        <!-- Small file input -->
                                                        <input type="file" class="form-control form-control-sm" id="invoiceFile" required>

                                                        <!-- Small button -->
                                                        <button data-quotation-id=<?= $row['quotation_id'] ?> type="button" class="btn btn-primary btn-sm">
                                                            Send Invoice
                                                        </button>
                                                    </div>
                                                </form>
                                            <?php endif; ?>
                                            <?php ?>
                                            
                                        </span>

                                    <?php else: ?>
                                        <span class="badge bg-warning text-dark">Not Sent</span>
                                    <?php endif; ?>
                                </p>
                            </td>

                            <td>
                                <form id="updateForm_<?php echo $row['item_id']; ?>" action="" method="post" class="mb-0">
                                    <!-- Hidden fields -->
                                    <input type="hidden" name="token" value="<?php echo($token); ?>">
                                    <input type="hidden" name="requested_by" value="<?php echo($supplierData["name"]); ?>">
                                    <input type="hidden" name="requisition_id" value="<?php echo($requisition_id); ?>">
                                    <input type="hidden" name="supplier_id" value="<?php echo($supplier_id); ?>">
                                    <input type="hidden" name="item_id" value="<?php echo($row['item_id']); ?>">

                                    <?php if (!empty($row['price'])): ?>
                                        <!-- If quotation exists, show values and disable inputs -->
                                        <div class="mb-2">
                                            <input type="number" name="price"
                                                value="<?php echo($row['price']); ?>"
                                                class="form-control" disabled>
                                        </div>
                                        <?php if($row["include_vat"]): ?>
                                            <span class="badge bg-info">VAT Included</span>
                                        <?php else: ?>
                                            <span class="badge bg-secondary">No VAT</span>
                                        <?php endif; ?>

                                        <span class="badge bg-success">Price Submitted</span>
                                        

                                    <?php else: ?>
                                        <!-- If no quotation exists, show editable inputs -->
                                        <div class="mb-2">
                                            <input type="number" name="price"
                                                class="form-control"
                                                placeholder="Enter the price here..." required>
                                        </div>
                                        <!-- VAT checkbox -->                                    
                                        <div class="form-check form-switch  border rounded bg-light">
                                            <input class="form-check-input" type="checkbox" 
                                                name="include_vat" value="1" 
                                                id="vat_<?php echo $row['item_id']; ?>"
                                                style="transform: scale(1.2); margin-right: 2px;">
                                            <label class="form-check-label fw-bold text-primary" 
                                                for="vat_<?php echo $row['item_id']; ?>">
                                                Include VAT
                                            </label>
                                        </div>

                                        <button id="submitBtn_<?php echo $row['item_id']; ?>" type="submit" class="btn btn-primary btn-sm">
                                            Submit
                                        </button>
                                    <?php endif; ?>
                                </form>
                            </td>
                        </tr>
                    <?php endforeach; ?>
            </tbody>
            </table>
        <?php endif; ?>
    </div>
    <script src="../assets/JavaScript-Toast-Library/MToasts.js"></script>
    <script src="./js/script.js"></script>
</body>
</html>