<?php
// FILE: deep_repair_order.php
// CHỨC NĂNG: Sửa chữa sâu tiền vốn của đơn hàng bằng cách cho phép nhập lại giá vốn cho từng sản phẩm.

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

$order_code_to_check = isset($_REQUEST['order_code']) ? trim($_REQUEST['order_code']) : '';
$action = isset($_POST['action']) ? $_POST['action'] : '';

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: 90%; 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; }
    form { display: flex; align-items: flex-end; gap: 15px; background-color: #f7f7f9; padding: 15px; border-radius: 5px; margin-bottom: 1rem;}
    .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; }
    table { border-collapse: collapse; width: 100%; margin: 20px 0; font-size: 14px; }
    th, td { border: 1px solid #dee2e6; padding: 10px; text-align: left; vertical-align: middle; }
    th { background-color: #f2f2f2; }
    .cost-input { width: 120px; padding: 5px; border-radius: 4px; border: 1px solid #ccc; }
    .current-data { color: #dc3545; }
    .new-data { color: #28a745; font-weight: bold; }
    .action-button { font-size: 18px; padding: 12px 24px; color: white; border: none; border-radius: 5px; cursor: pointer; 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">
<div class="header"><h1>Công Cụ Sửa Chữa Chi Tiết Tiền Vốn Đơn Hàng</h1></div>
HTML;

echo '<form method="GET">';
echo '<div class="form-group"><label for="order_code">Nhập Mã Đơn Hàng Cần Sửa</label><input type="text" id="order_code" name="order_code" class="form-control" value="'.htmlspecialchars($order_code_to_check).'" placeholder="VD: HD022572" required></div>';
echo '<div class="form-group"><button type="submit" class="btn btn-primary">Kiểm Tra Đơn Hàng</button></div>';
echo '</form>';

if (!empty($order_code_to_check)) {
    try {
        if ($action === 'execute_deep_fix') {
            $order_id = intval($_POST['order_id']);
            $items_to_fix = $_POST['items'] ?? [];
            if ($order_id > 0 && !empty($items_to_fix)) {
                $conn->begin_transaction();

                $new_total_origin_price = 0;
                $updated_items_details = [];

                foreach ($items_to_fix as $item_id => $item_data) {
                    $new_cost = floatval($item_data['new_cost']);
                    $quantity = floatval($item_data['quantity']);
                    
                    $new_total_origin_price += $new_cost * $quantity;
                    
                    $updated_items_details[] = [
                        'id' => $item_id,
                        'quantity' => $quantity,
                        'price' => floatval($item_data['price']),
                        'origin_price' => $new_cost,
                        'name' => $item_data['name']
                    ];
                }
                
                $updated_detail_json = json_encode($updated_items_details);
                $stmt_update = $conn->prepare("UPDATE cms_orders SET total_origin_price = ?, detail_order = ? WHERE ID = ?");
                $stmt_update->bind_param("dsi", $new_total_origin_price, $updated_detail_json, $order_id);
                $stmt_update->execute();
                $stmt_update->close();
                
                $conn->commit();
                echo "<div class='success'>Thành công! Đã phẫu thuật lại tiền vốn cho đơn hàng <b>".htmlspecialchars($order_code_to_check)."</b>.</div>";
            } else {
                throw new Exception("Dữ liệu không hợp lệ để sửa lỗi.");
            }
        }

        $stmt_get = $conn->prepare("SELECT ID, detail_order, total_money, total_origin_price FROM cms_orders WHERE output_code = ? AND deleted = 0");
        $stmt_get->bind_param("s", $order_code_to_check);
        $stmt_get->execute();
        $order = $stmt_get->get_result()->fetch_assoc();
        $stmt_get->close();

        if (!$order) {
            echo "<div class='error'>Không tìm thấy đơn hàng nào có mã là <b>".htmlspecialchars($order_code_to_check)."</b>.</div>";
        } else {
            $items = json_decode($order['detail_order'], true);
            if (!is_array($items)) throw new Exception("Không thể đọc chi tiết sản phẩm của đơn hàng này.");

            echo "<h3>Chi tiết đơn hàng: " . htmlspecialchars($order_code_to_check) . "</h3>";
            echo "<p>Vui lòng nhập lại giá vốn đúng cho các sản phẩm bên dưới. Bạn có thể tham khảo giá nhập gần nhất hoặc giá vốn hiện tại của sản phẩm để có con số chính xác.</p>";

            echo '<form method="post">';
            echo '<input type="hidden" name="action" value="execute_deep_fix">';
            echo '<input type="hidden" name="order_id" value="'.$order['ID'].'">';
            echo '<input type="hidden" name="order_code" value="'.htmlspecialchars($order_code_to_check).'">';
            
            echo '<table><thead><tr><th>Tên sản phẩm</th><th>Số lượng</th><th>Đơn giá bán</th><th class="current-data">Giá vốn (đã lưu)</th><th class="new-data">Giá vốn ĐÚNG (nhập tay)</th></tr></thead><tbody>';

            foreach ($items as $item) {
                $p_id = intval($item['id']);
                echo '<tr>';
                echo '<td>'.htmlspecialchars($item['name']).'</td>';
                echo '<td>'.floatval($item['quantity']).'</td>';
                echo '<td>'.number_format(floatval($item['price'])).'</td>';
                echo '<td class="current-data">'.number_format(floatval($item['origin_price'])).'</td>';
                echo '<td>';
                echo '<input type="hidden" name="items['.$p_id.'][quantity]" value="'.floatval($item['quantity']).'">';
                echo '<input type="hidden" name="items['.$p_id.'][price]" value="'.floatval($item['price']).'">';
                echo '<input type="hidden" name="items['.$p_id.'][name]" value="'.htmlspecialchars($item['name']).'">';
                echo '<input type="number" step="any" class="cost-input" name="items['.$p_id.'][new_cost]" value="'.floatval($item['origin_price']).'" required>';
                echo '</td>';
                echo '</tr>';
            }
            
            echo '</tbody></table>';
            echo '<div style="text-align:center;"><button type="submit" class="action-button" onclick="return confirm(\'Bạn có chắc chắn muốn tính toán lại và ghi đè tiền vốn cho đơn hàng này không?\')">TÍNH TOÁN LẠI & CẬP NHẬT ĐƠN HÀNG</button></div>';
            echo '</form>';
        }
    } catch (Exception $e) {
        echo "<div class='error'>Lỗi: " . $e->getMessage() . "</div>";
    }
}

echo "</div>";
?>