<?php
// FILE: final_cleanup_tool.php
// CHỨC NĂNG: Quét toàn bộ sản phẩm có giá vốn cao bất thường VÀ không có lịch sử nhập hàng, cho phép sửa thủ công.

require_once __DIR__ . '/core/init.php';

$selected_products_to_update = isset($_POST['products']) ? $_POST['products'] : [];
$is_execution_mode = !empty($selected_products_to_update);

// Hàm kiểm tra sự tồn tại của lịch sử nhập hàng
function has_purchase_history($product_id, $conn) {
    $like_term = '%"id":' . $product_id . ',%';
    $like_term_end = '%"id":' . $product_id . '}%';
    $sql = "SELECT 1 FROM cms_input WHERE (detail_input LIKE ? OR detail_input LIKE ?) AND deleted = 0 LIMIT 1";
    $stmt = $conn->prepare($sql);
    if (!$stmt) return false;
    $stmt->bind_param("ss", $like_term, $like_term_end);
    $stmt->execute();
    $result = $stmt->get_result();
    $found = $result->num_rows > 0;
    $stmt->close();
    return $found;
}

// --- GIAO DIỆN HTML ---
echo <<<HTML
<style>
    body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; padding: 20px; line-height: 1.6; background-color: #f8f9fa; color: #212529; }
    .container { max-width: 95%; margin: auto; background: white; padding: 20px; border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.05); }
    .header { background-color: #e9ecef; padding: 2rem; border-radius: 5px; margin-bottom: 2rem; text-align: center; }
    .header h1 { margin: 0; }
    .warning { background-color: #fff3cd; color: #856404; padding: 1rem; border: 1px solid #ffeeba; border-radius: 5px; margin-bottom: 1rem; }
    table { border-collapse: collapse; width: 100%; margin: 20px 0; font-size: 14px; }
    th, td { border: 1px solid #dee2e6; padding: 12px; text-align: left; vertical-align: middle; }
    th { background-color: #f2f2f2; }
    .table-responsive { max-height: 70vh; overflow-y: auto; }
    .cost-input { width: 120px; padding: 5px; border-radius: 4px; border: 1px solid #ccc; }
    .action-button { font-size: 18px; padding: 12px 24px; color: white; border: none; border-radius: 5px; cursor: pointer; text-decoration: none; display: inline-block; margin-top: 20px; background-color: #dc3545; }
    .success, .error { padding: 1rem; border: 1px solid; border-radius: 5px; text-align: center; margin-bottom: 1rem;}
    .success { background-color: #d4edda; color: #155724; border-color: #c3e6cb; }
    .error { background-color: #f8d7da; color: #721c24; border-color: #f5c6cb; }
</style>
<div class="container">
HTML;

try {
    if ($is_execution_mode) {
        // --- CHẾ ĐỘ 2: THỰC THI CẬP NHẬT ---
        $conn->begin_transaction();
        try {
            $stmt_update = $conn->prepare("UPDATE cms_products SET prd_total_value = ?, prd_average_cost = ?, prd_origin_price = ? WHERE ID = ?");
            $updated_count = 0;

            foreach ($selected_products_to_update as $product_id => $new_cost) {
                $product_id = intval($product_id);
                $new_cost = floatval($new_cost);

                if ($new_cost > 0) {
                    // Lấy số lượng tồn kho hiện tại để tính toán
                    $stmt_get_stock = $conn->prepare("SELECT prd_sls FROM cms_products WHERE ID = ?");
                    $stmt_get_stock->bind_param("i", $product_id);
                    $stmt_get_stock->execute();
                    $prod_data = $stmt_get_stock->get_result()->fetch_assoc();
                    $stmt_get_stock->close();

                    if ($prod_data) {
                        $new_total_value = floatval($prod_data['prd_sls']) * $new_cost;
                        $stmt_update->bind_param("dddi", $new_total_value, $new_cost, $new_cost, $product_id);
                        $stmt_update->execute();
                        $updated_count++;
                    }
                }
            }
            $stmt_update->close();
            $conn->commit();
            echo "<div class='success'>HOÀN TẤT! Đã cập nhật giá trị cho <b>$updated_count</b> sản phẩm.</div>";
            echo '<a href="">Quay lại trang quét</a>';

        } catch (Exception $e) {
            $conn->rollback();
            echo "<div class='error'>Lỗi khi cập nhật CSDL: " . $e->getMessage() . "</div>";
        }

    } else {
        // --- CHẾ ĐỘ 1: QUÉT VÀ HIỂN THỊ ---
        echo '<div class="header"><h1>Công Cụ Dọn Dẹp Sản Phẩm Lỗi Giá Vốn</h1><p>Kịch bản sẽ quét các sản phẩm có giá vốn cao hơn giá bán và không có lịch sử nhập hàng.</p></div>';
        
        // Lấy tất cả sản phẩm có tồn kho và giá vốn cao hơn giá bán
        $sql = "SELECT ID, prd_name, prd_sls, prd_average_cost, prd_sell_price FROM cms_products WHERE prd_sls > 0 AND prd_average_cost > prd_sell_price AND deleted = 0";
        $all_products = $conn->query($sql)->fetch_all(MYSQLI_ASSOC);
        
        $products_to_fix = [];
        foreach ($all_products as $product) {
            // Kiểm tra thêm điều kiện không có lịch sử nhập hàng
            if (!has_purchase_history($product['ID'], $conn)) {
                $products_to_fix[] = $product;
            }
        }
        
        if (empty($products_to_fix)) {
            echo "<div class='success'>Tuyệt vời! Không tìm thấy sản phẩm nào bị đội giá và không có lịch sử nhập hàng.</div>";
        } else {
            echo '<div class="warning">Đã tìm thấy <b>'.count($products_to_fix).'</b> sản phẩm cần xử lý. Vui lòng nhập giá vốn đúng vào các ô bên dưới và nhấn nút cập nhật.</div>';
            echo '<form method="post">';
            echo '<div class="table-responsive">';
            echo '<table><thead><tr><th>ID</th><th>Tên Sản Phẩm</th><th>Tồn Kho</th><th>Giá Bán</th><th>Giá Vốn (Đang lỗi)</th><th>Giá Vốn Mới (Nhập tay)</th></tr></thead><tbody>';

            foreach ($products_to_fix as $product) {
                echo '<tr>';
                echo '<td>' . $product['ID'] . '</td>';
                echo '<td>' . htmlspecialchars($product['prd_name']) . '</td>';
                echo '<td>' . number_format($product['prd_sls']) . '</td>';
                echo '<td>' . number_format($product['prd_sell_price']) . '</td>';
                echo '<td style="color:red; text-decoration: line-through;">' . number_format($product['prd_average_cost'], 2) . '</td>';
                echo '<td><input type="number" step="any" class="cost-input" name="products['.$product['ID'].']" placeholder="Nhập giá vốn đúng" required></td>';
                echo '</tr>';
            }
            
            echo '</tbody></table></div>';
            echo '<button type="submit" class="action-button" onclick="return confirm(\'Bạn có chắc chắn muốn cập nhật giá vốn cho các sản phẩm đã nhập liệu không?\');">CẬP NHẬT GIÁ VỐN</button>';
            echo '</form>';
        }
    }
} catch (Exception $e) {
    echo "<div class='error'>Lỗi Hệ Thống: " . $e->getMessage() . "</div>";
}

echo "</div>";
?>