<?php
// FILE: inspect_and_fix_product.php
// CHỨC NĂNG: Kiểm tra và cho phép sửa lỗi giá vốn, hỗ trợ cả tự động và sửa thủ công.

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

$product_id_to_check = isset($_REQUEST['product_id']) ? intval($_REQUEST['product_id']) : 0;
$action = isset($_POST['action']) ? $_POST['action'] : '';

// Hàm tìm giá nhập gần nhất
function get_true_latest_price($product_id, $conn) {
    $like_term = '%"id":' . $product_id . ',%';
    $like_term_end = '%"id":' . $product_id . '}%';
    $sql = "SELECT detail_input FROM cms_input WHERE (detail_input LIKE ? OR detail_input LIKE ?) AND deleted = 0 ORDER BY id DESC LIMIT 10";
    $stmt = $conn->prepare($sql);
    if (!$stmt) return null;
    $stmt->bind_param("ss", $like_term, $like_term_end);
    $stmt->execute();
    $result = $stmt->get_result();
    while ($row = $result->fetch_assoc()) {
        $items = json_decode($row['detail_input'], true);
        if (is_array($items)) {
            foreach (array_reverse($items) as $item) {
                if (isset($item['id']) && $item['id'] == $product_id && isset($item['price'])) {
                    $stmt->close();
                    return floatval($item['price']);
                }
            }
        }
    }
    $stmt->close();
    return null;
}

// --- 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: 900px; 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; }
    form { display: flex; align-items: flex-end; gap: 15px; background-color: #f7f7f9; padding: 15px; border-radius: 5px; margin-bottom: 1rem;}
    .form-group { display: flex; flex-direction: column; }
    .form-group label { margin-bottom: 5px; font-weight: bold; font-size: 14px; }
    .form-control, .btn { padding: 8px 12px; border-radius: 5px; border: 1px solid #ced4da; }
    .btn-primary { background-color: #007bff; color: white; border-color: #007bff; cursor: pointer; }
    .report-table { width: 100%; margin-top: 1.5rem; }
    .report-table td { padding: 10px; border-bottom: 1px solid #eee; }
    .report-table td:first-child { font-weight: bold; width: 40%; }
    .current-data { color: #dc3545; }
    .new-data { color: #28a745; font-weight: bold; }
    .ref-data { color: #007bff; }
    .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; }
    .btn-fix-auto { background-color: #28a745; }
    .btn-fix-manual { background-color: #ffc107; color: black; }
    .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">
<div class="header"><h1>Công Cụ Chẩn Đoán & Sửa Lỗi (Hỗ Trợ Thủ Công)</h1></div>
HTML;

echo '<form method="GET">';
echo '<div class="form-group"><label for="product_id">Nhập ID Sản Phẩm Cần Kiểm Tra</label><input type="number" id="product_id" name="product_id" class="form-control" value="'.($product_id_to_check ?: '').'" placeholder="VD: 1205" required></div>';
echo '<div class="form-group"><button type="submit" class="btn btn-primary">Kiểm Tra</button></div>';
echo '</form>';

if ($product_id_to_check > 0) {
    try {
        if ($action === 'fix_product_auto' || $action === 'fix_product_manual') {
            // --- CHẾ ĐỘ THỰC THI SỬA LỖI ---
            $conn->begin_transaction();
            $stmt_get = $conn->prepare("SELECT prd_sls FROM cms_products WHERE ID = ?");
            $stmt_get->bind_param("i", $product_id_to_check);
            $stmt_get->execute();
            $prod_data = $stmt_get->get_result()->fetch_assoc();
            $stmt_get->close();

            if ($prod_data) {
                $cost_to_use = 0;
                if ($action === 'fix_product_manual') {
                    $cost_to_use = floatval($_POST['manual_cost'] ?? 0);
                    if ($cost_to_use <= 0) throw new Exception("Giá vốn nhập tay phải là một số lớn hơn 0.");
                } else { // fix_product_auto
                    $cost_to_use = get_true_latest_price($product_id_to_check, $conn);
                }

                if ($cost_to_use !== null && $cost_to_use > 0) {
                    $new_total_value = floatval($prod_data['prd_sls']) * $cost_to_use;
                    // Cập nhật cả 3 cột giá trị
                    $stmt_update = $conn->prepare("UPDATE cms_products SET prd_total_value = ?, prd_average_cost = ?, prd_origin_price = ? WHERE ID = ?");
                    $stmt_update->bind_param("dddi", $new_total_value, $cost_to_use, $cost_to_use, $product_id_to_check);
                    $stmt_update->execute();
                    $stmt_update->close();
                    $conn->commit();
                    echo "<div class='success'>Thành công! Đã đặt lại giá trị kho cho sản phẩm ID <b>$product_id_to_check</b>.</div>";
                } else {
                    throw new Exception("Không tìm thấy hoặc không có giá vốn hợp lệ để làm căn cứ sửa lỗi.");
                }
            } else {
                 throw new Exception("Không tìm thấy sản phẩm với ID $product_id_to_check.");
            }
        }

        // --- CHẾ ĐỘ PHÂN TÍCH ---
        $stmt_get = $conn->prepare("SELECT prd_name, prd_sls, prd_total_value, prd_average_cost FROM cms_products WHERE ID = ?");
        $stmt_get->bind_param("i", $product_id_to_check);
        $stmt_get->execute();
        $product = $stmt_get->get_result()->fetch_assoc();
        $stmt_get->close();

        if (!$product) {
            echo "<div class='error'>Không tìm thấy sản phẩm nào có ID là <b>$product_id_to_check</b>.</div>";
        } else {
            echo "<h3>Kết quả chẩn đoán cho: " . htmlspecialchars($product['prd_name']) . " (ID: $product_id_to_check)</h3>";
            echo "<table class='report-table'>";
            
            echo "<tr><td colspan='2' style='background-color:#f8f9fa; font-weight: bold;'>DỮ LIỆU HIỆN TẠI TRONG CSDL</td></tr>";
            echo "<tr><td>Số Lượng Tồn Kho (`prd_sls`)</td><td>" . number_format($product['prd_sls']) . "</td></tr>";
            echo "<tr><td>Tổng Giá Trị Tồn Kho (`prd_total_value`)</td><td class='current-data'>" . number_format($product['prd_total_value'], 2) . "</td></tr>";
            echo "<tr><td>Giá Vốn Bình Quân (`prd_average_cost`)</td><td class='current-data'>" . number_format($product['prd_average_cost'], 2) . "</td></tr>";

            $latest_price = get_true_latest_price($product_id_to_check, $conn);
            
            if ($latest_price !== null) {
                // TÌM THẤY LỊCH SỬ -> SỬA TỰ ĐỘNG
                echo "<tr><td colspan='2' style='background-color:#f8f9fa; font-weight: bold;'>ĐỀ XUẤT SỬA TỰ ĐỘNG</td></tr>";
                echo "<tr><td>Giá Nhập Gần Nhất (Tham chiếu)</td><td class='ref-data'>" . number_format($latest_price, 2) . "</td></tr>";
                $new_total_value = floatval($product['prd_sls']) * $latest_price;
                echo "<tr><td>Tổng Giá Trị Tồn Kho (Mới)</td><td class='new-data'>" . number_format($new_total_value, 2) . "</td></tr>";
                echo "<tr><td>Giá Vốn Bình Quân (Mới)</td><td class='new-data'>" . number_format($latest_price, 2) . "</td></tr>";
                echo "<tr><td colspan='2' style='text-align:center;'>";
                echo '<form method="post"><input type="hidden" name="product_id" value="'.$product_id_to_check.'"><input type="hidden" name="action" value="fix_product_auto">';
                echo '<button type="submit" class="action-button btn-fix-auto" onclick="return confirm(\'Bạn có chắc chắn muốn ĐẶT LẠI giá trị kho cho sản phẩm này không?\')">THỰC HIỆN SỬA TỰ ĐỘNG</button>';
                echo '</form></td></tr>';
            } else {
                // KHÔNG TÌM THẤY LỊCH SỬ -> SỬA THỦ CÔNG
                echo "<tr><td colspan='2' style='background-color:#f8f9fa; font-weight: bold;'>SỬA CHỮA THỦ CÔNG</td></tr>";
                echo "<tr><td colspan='2'><div class='error' style='text-align:left;'>Không tìm thấy lịch sử nhập hàng cho sản phẩm này. Vui lòng nhập giá vốn đúng cho sản phẩm này để tiến hành sửa chữa.</div></td></tr>";
                echo "<tr><td colspan='2' style='text-align:center;'>";
                echo '<form method="post"><input type="hidden" name="product_id" value="'.$product_id_to_check.'"><input type="hidden" name="action" value="fix_product_manual">';
                echo '<div class="form-group" style="margin:auto; text-align:left; max-width: 250px;"><label for="manual_cost">Giá Vốn Đúng (Nhập tay)</label><input type="number" step="any" id="manual_cost" name="manual_cost" class="form-control" placeholder="Ví dụ: 35000" required></div>';
                echo '<button type="submit" class="action-button btn-fix-manual">THỰC HIỆN SỬA THỦ CÔNG</button>';
                echo '</form></td></tr>';
            }
            echo "</table>";
        }
    } catch (Exception $e) {
        echo "<div class='error'>Lỗi: " . $e->getMessage() . "</div>";
    }
}

echo "</div>";
?>