query($query_p); $productos_data = []; while ($row = $res_p->fetch_assoc()) { $row['cantidad'] = $_SESSION['carrito'][$row['id']]; $total_pedido += ($row['precio'] * $row['cantidad']); $productos_data[] = $row; } $tipo_entrega = $conexion->real_escape_string($tipo_entrega); $direccion = $conexion->real_escape_string($direccion); $telefono = $conexion->real_escape_string($telefono); $nombre_comprobante_sql = $nombre_comprobante ? "'".$conexion->real_escape_string($nombre_comprobante)."'" : "NULL"; $sql_pedido = "INSERT INTO pedidos (id_usuario, total, estado, tipo_entrega, direccion_envio, telefono_contacto, comprobante) VALUES ('$id_usuario', '$total_pedido', '$estado', '$tipo_entrega', '$direccion', '$telefono', $nombre_comprobante_sql)"; if (mysqli_query($conexion, $sql_pedido)) { $id_recien_creado = mysqli_insert_id($conexion); // LOG DE AUDITORÍA $nombre_cliente = $_SESSION['usuario'] ?? 'Usuario ID: ' . $id_usuario; $info_comprobante = $nombre_comprobante ? "Comprobante: $nombre_comprobante" : "Sin comprobante (Retiro)"; escribir_log("[PEDIDO] ¡Venta realizada! ID #$id_recien_creado por el cliente '$nombre_cliente' | Total: $$total_pedido | Entrega: $tipo_entrega | $info_comprobante"); foreach ($productos_data as $p) { $id_prod = $p['id']; $cant = $p['cantidad']; $precio = $p['precio']; $nombre = $p['nombre']; // Insertar detalle $sql_det = "INSERT INTO detalle_pedido (pedido_id, producto_id, cantidad, precio_unitario) VALUES ('$id_recien_creado', '$id_prod', '$cant', '$precio')"; mysqli_query($conexion, $sql_det); // Restar stock físico $sql_restar_stock = "UPDATE productos SET stock = stock - $cant WHERE id = '$id_prod'"; mysqli_query($conexion, $sql_restar_stock); // Estadísticas $sql_stats = "INSERT INTO estadisticas_productos (nombre_producto, cantidad_vendida) VALUES ('$nombre', '$cant') ON DUPLICATE KEY UPDATE cantidad_vendida = cantidad_vendida + $cant"; mysqli_query($conexion, $sql_stats); } unset($_SESSION['carrito']); header("Location: index.php?exito=1"); } else { // LOG DE ERROR escribir_log("[ERROR SQL] Falló la inserción del pedido para el usuario ID $id_usuario. Error: " . mysqli_error($conexion)); echo "Error al procesar el pedido: " . mysqli_error($conexion); } ?>