diff --git a/Interfaz/reporte_ventas.html b/Interfaz/reporte_ventas.html
new file mode 100644
index 0000000..eae8353
--- /dev/null
+++ b/Interfaz/reporte_ventas.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html lang="es">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Reporte de Ventas</title>
+    <link rel="stylesheet" href="estilos/reporte_ventas.css">
+    <link rel="stylesheet" href="css/bootstrap.min.css">
+</head>
+<body style="background-color: #f9f7f4;">
+    <br>
+    <div class="container">
+        <h1>Reporte de Ventas</h1>
+        <form id="formReporte">
+            <label for="fechaInicio">Fecha de Inicio:</label>
+            <input type="date" id="fechaInicio" name="fechaInicio" required>
+
+            <label for="fechaFin">Fecha de Fin:</label>
+            <input type="date" id="fechaFin" name="fechaFin" required>
+
+            <button type="submit">Generar Reporte</button>
+        </form>
+
+        <div id="resultadoReporte">
+            <h2>Total de Boletos Vendidos: <span id="totalBoletos">0</span></h2>
+            <table id="tablaVentas">
+                <thead>
+                    <tr>
+                        <th>Fecha de Venta</th>
+                        <th>Número de Asiento</th>
+                        <th>Precio</th>
+                    </tr>
+                </thead>
+                <tbody>
+                    <!-- Las filas se llenarán dinámicamente -->
+                </tbody>
+            </table>
+        </div>
+    </div>
+
+    <script src="scripts/reporte_ventas.js"></script>
+    <script src="js/bootstrap.bundle.min.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/Interfaz/reporte_ventas.php b/Interfaz/reporte_ventas.php
new file mode 100644
index 0000000..61e3f6f
--- /dev/null
+++ b/Interfaz/reporte_ventas.php
@@ -0,0 +1,40 @@
+<?php
+// Incluir el archivo de conexión
+require 'conexionbd.php';
+
+// Obtener las fechas de inicio y fin desde la solicitud (GET)
+$fechaInicio = $_GET['fechaInicio'] ?? '';
+$fechaFin = $_GET['fechaFin'] ?? '';
+
+// Validar que las fechas estén presentes
+if (empty($fechaInicio) || empty($fechaFin)) {
+    die(json_encode(['error' => 'Faltan parámetros (fechaInicio y fechaFin).']));
+}
+
+try {
+    // Consultar el total de boletos vendidos en el período
+    $stmtTotal = $conn->prepare("SELECT COUNT(*) AS total FROM ventas WHERE fecha_venta BETWEEN :fechaInicio AND :fechaFin");
+    $stmtTotal->execute([':fechaInicio' => $fechaInicio, ':fechaFin' => $fechaFin]);
+    $totalBoletos = $stmtTotal->fetch(PDO::FETCH_ASSOC)['total'];
+
+    // Consultar las ventas en el período con JOIN a la tabla asientos
+    $stmtVentas = $conn->prepare("
+        SELECT v.fecha_venta, a.asiento, v.precio
+        FROM ventas v
+        JOIN asientos a ON v.asiento_id = a.id
+        WHERE v.fecha_venta BETWEEN :fechaInicio AND :fechaFin
+    ");
+    $stmtVentas->execute([':fechaInicio' => $fechaInicio, ':fechaFin' => $fechaFin]);
+    $ventas = $stmtVentas->fetchAll(PDO::FETCH_ASSOC);
+
+    // Devolver los datos en formato JSON
+    echo json_encode([
+        'success' => true,
+        'totalBoletos' => $totalBoletos,
+        'ventas' => $ventas
+    ]);
+} catch (PDOException $e) {
+    // Devolver un mensaje de error en caso de fallo
+    die(json_encode(['error' => 'Error al consultar las ventas: ' . $e->getMessage()]));
+}
+?>
\ No newline at end of file
diff --git a/Interfaz/vender_asientos.php b/Interfaz/vender_asientos.php
new file mode 100644
index 0000000..a9b0dc0
--- /dev/null
+++ b/Interfaz/vender_asientos.php
@@ -0,0 +1,37 @@
+<?php
+// Incluir el archivo de conexión a la base de datos
+require 'conexionbd.php';
+
+// Obtener los datos de la solicitud (en formato JSON)
+$data = json_decode(file_get_contents('php://input'), true);
+
+// Extraer los datos recibidos
+$artista = $data['artista'] ?? '';
+$dia = $data['dia'] ?? '';
+$asientos = $data['asientos'] ?? [];
+
+// Validar que los datos estén completos
+if (empty($artista) || empty($dia) || empty($asientos)) {
+    die(json_encode(['error' => 'Faltan parámetros (artista, dia, asientos).']));
+}
+
+try {
+    // Preparar la consulta para actualizar el estado de los asientos
+    $stmt = $conn->prepare("UPDATE asientos SET estado = 'vendido' WHERE artista = :artista AND dia = :dia AND asiento = :asiento");
+
+    // Actualizar cada asiento en la lista
+    foreach ($asientos as $asiento) {
+        $stmt->execute([
+            ':artista' => $artista,
+            ':dia' => $dia,
+            ':asiento' => $asiento
+        ]);
+    }
+
+    // Devolver una respuesta de éxito
+    echo json_encode(['success' => true, 'message' => 'Asientos vendidos actualizados correctamente.']);
+} catch (PDOException $e) {
+    // Devolver un mensaje de error en caso de fallo
+    die(json_encode(['error' => 'Error al actualizar los asientos: ' . $e->getMessage()]));
+}
+?>
\ No newline at end of file