<?php
include 'is_logged.php';

// Cambiamos a respuesta JSON
header('Content-Type: application/json');

$response = array('success' => false, 'message' => '', 'errors' => array());

if (empty($_POST['id_tmp'])) {
    $response['errors'][] = "ID vacío";
} else if (!empty($_POST['id_tmp'])) {
    require_once "../db.php";
    require_once "../php_conexion.php";
    
    $id_tmp = intval($_POST['id_tmp']);
    $cant   = floatval($_POST['cant']);
    
    $sql_tmp = "SELECT id_producto, cantidad_tmp FROM tmp_ventas WHERE id_tmp = '$id_tmp'";
    $query_tmp = mysqli_query($conexion, $sql_tmp);
    
    if ($row_tmp = mysqli_fetch_array($query_tmp)) {
        $id_producto = $row_tmp['id_producto'];
        $cantidad_actual = $row_tmp['cantidad_tmp'];
        
        $sql_producto = "SELECT stock_producto, nombre_producto FROM productos WHERE id_producto = '$id_producto'";
        $query_producto = mysqli_query($conexion, $sql_producto);
        
        if ($row_producto = mysqli_fetch_array($query_producto)) {
            $stock_disponible = $row_producto['stock_producto'];
            $nombre_producto = $row_producto['nombre_producto'];
            
            // Calcular la diferencia de cantidad
            $diferencia = $cant - $cantidad_actual;
            
            if ($diferencia > 0) {
                // Si se está aumentando la cantidad, verificar stock
                if ($cant > $stock_disponible) {
                    $response['success'] = false;
                    $response['message'] = "No hay suficiente stock disponible para <strong>$nombre_producto</strong>. Stock actual: $stock_disponible unidades";
                    $response['stock_actual'] = $stock_disponible;
                } else {
                    // Si hay suficiente stock, actualizar
                    $sql = "UPDATE tmp_ventas SET cantidad_tmp = '$cant' WHERE id_tmp = '$id_tmp'";
                    $query_update = mysqli_query($conexion, $sql);
                    
                    if ($query_update) {
                        $response['success'] = true;
                        $response['message'] = "Cantidad actualizada correctamente.";
                    } else {
                        $response['errors'][] = "Error al actualizar la cantidad: " . mysqli_error($conexion);
                    }
                }
            } else {
                // Si se está reduciendo la cantidad, actualizar directamente
                $sql = "UPDATE tmp_ventas SET cantidad_tmp = '$cant' WHERE id_tmp = '$id_tmp'";
                $query_update = mysqli_query($conexion, $sql);
                
                if ($query_update) {
                    $response['success'] = true;
                    $response['message'] = "Cantidad actualizada correctamente.";
                } else {
                    $response['errors'][] = "Error al actualizar la cantidad: " . mysqli_error($conexion);
                }
            }
        } else {
            $response['errors'][] = "Producto no encontrado.";
        }
    } else {
        $response['errors'][] = "Registro temporal no encontrado.";
    }
} else {
    $response['errors'][] = "Error desconocido.";
}

// Si hay errores, combinarlos en un solo mensaje
if (!empty($response['errors'])) {
    $response['message'] = implode("<br>", $response['errors']);
}

echo json_encode($response);
exit;
?>