diff --git a/Interfaz/scripts/BoletosArtista1.js b/Interfaz/scripts/BoletosArtista1.js
index 790aa38..641cfe5 100644
--- a/Interfaz/scripts/BoletosArtista1.js
+++ b/Interfaz/scripts/BoletosArtista1.js
@@ -1,49 +1,163 @@
-        const filas = 10;
-        const columnas = 12;
-        let diaSeleccionado = 23;
-        const asientosVendidos = { 22: new Set(), 23: new Set(), 24: new Set() };
-        let asientosSeleccionados = new Set();
+const filas = 10;
+const columnas = 12;
+let diaSeleccionado = 23;
+const asientosVendidos = { 22: new Set(), 23: new Set(), 24: new Set() };
+let asientosSeleccionados = new Set();
 
-        function seleccionarDia(dia) {
-            diaSeleccionado = dia;
-            asientosSeleccionados.clear();
-            document.querySelectorAll('.dias button').forEach(btn => btn.classList.remove('selected'));
-            event.target.classList.add('selected');
-            renderizarAsientos();
-        }
+// Función para cargar los asientos desde el servidor
+function cargarAsientos() {
+    const artista = "The Driver Era"; // Cambia esto según el artista
+    const url = `consultar_asientos.php?artista=${encodeURIComponent(artista)}&dia=${diaSeleccionado}`;
 
-        function toggleAsiento(asiento) {
-            if (asientosVendidos[diaSeleccionado].has(asiento)) return;
-            if (asientosSeleccionados.has(asiento)) {
-                asientosSeleccionados.delete(asiento);
-            } else {
-                asientosSeleccionados.add(asiento);
+    fetch(url)
+        .then(response => response.json())
+        .then(data => {
+            if (data.error) {
+                console.error("Error al cargar los asientos:", data.error);
+                return;
             }
-            renderizarAsientos();
-        }
 
-        function venderAsientos() {
-            asientosSeleccionados.forEach(asiento => asientosVendidos[diaSeleccionado].add(asiento));
-            asientosSeleccionados.clear();
-            renderizarAsientos();
-        }
+            // Limpiar los asientos vendidos para el día seleccionado
+            asientosVendidos[diaSeleccionado].clear();
 
-        function renderizarAsientos() {
-            const contenedor = document.getElementById('asientos');
-            contenedor.innerHTML = '';
-            for (let i = 0; i < filas * columnas; i++) {
-                const asiento = `${Math.floor(i / columnas) + 1}${String.fromCharCode(65 + (i % columnas))}`;
-                const boton = document.createElement('button');
-                boton.className = 'asiento';
-                if (asientosVendidos[diaSeleccionado].has(asiento)) {
-                    boton.classList.add('vendido');
-                } else if (asientosSeleccionados.has(asiento)) {
-                    boton.style.backgroundColor = 'orange';
+            // Actualizar los asientos vendidos
+            data.asientos.forEach(asiento => {
+                if (asiento.estado === 'vendido') {
+                    asientosVendidos[diaSeleccionado].add(asiento.asiento);
                 }
-                boton.textContent = asiento;
-                boton.onclick = () => toggleAsiento(asiento);
-                contenedor.appendChild(boton);
-            }
-        }
+            });
 
-        renderizarAsientos();
+            // Renderizar los asientos
+            renderizarAsientos();
+        })
+        .catch(error => console.error('Error al cargar los asientos:', error));
+}
+
+// Función para seleccionar un día
+function seleccionarDia(dia) {
+    diaSeleccionado = dia;
+    asientosSeleccionados.clear();
+    document.querySelectorAll('.dias button').forEach(btn => btn.classList.remove('selected'));
+    event.target.classList.add('selected');
+    cargarAsientos();
+}
+
+// Función para seleccionar/deseleccionar un asiento
+function toggleAsiento(asiento) {
+    if (asientosVendidos[diaSeleccionado].has(asiento)) return;
+    if (asientosSeleccionados.has(asiento)) {
+        asientosSeleccionados.delete(asiento);
+    } else {
+        asientosSeleccionados.add(asiento);
+    }
+    renderizarAsientos();
+}
+
+// Función para mostrar el comprobante
+function venderAsientos() {
+    if (asientosSeleccionados.size === 0) {
+        alert("Selecciona al menos un asiento para vender.");
+        return;
+    }
+
+    const artista = "The Driver Era"; // Cambia esto según el artista
+    const precioPorAsiento = 100; // Precio en dólares
+    const precioTotal = asientosSeleccionados.size * precioPorAsiento;
+    const fechaHora = new Date().toLocaleString();
+
+    // Llenar los datos del modal
+    document.getElementById('modalArtista').textContent = artista;
+    document.getElementById('modalDia').textContent = diaSeleccionado;
+    document.getElementById('modalAsientos').textContent = Array.from(asientosSeleccionados).join(', ');
+    document.getElementById('modalPrecioTotal').textContent = `$${precioTotal}`;
+    document.getElementById('modalFechaHora').textContent = fechaHora;
+
+    // Mostrar el modal
+    document.getElementById('comprobanteModal').style.display = 'block';
+}
+
+// Función para confirmar la venta
+function confirmarVenta() {
+    const artista = "The Driver Era"; // Cambia esto según el artista
+    const url = 'vender_asientos.php';
+    const data = {
+        artista: artista,
+        dia: diaSeleccionado,
+        asientos: Array.from(asientosSeleccionados)
+    };
+
+    fetch(url, {
+        method: 'POST',
+        headers: {
+            'Content-Type': 'application/json'
+        },
+        body: JSON.stringify(data)
+    })
+    .then(response => response.json())
+    .then(result => {
+        if (result.error) {
+            console.error("Error al vender los asientos:", result.error);
+            alert("Error al vender los asientos: " + result.error);
+        } else {
+            console.log("Venta realizada:", result.message);
+            alert(result.message);
+
+            // Marcar los asientos como vendidos en la interfaz
+            asientosSeleccionados.forEach(asiento => {
+                asientosVendidos[diaSeleccionado].add(asiento);
+            });
+            asientosSeleccionados.clear();
+            renderizarAsientos();
+        }
+    })
+    .catch(error => console.error('Error al vender los asientos:', error));
+
+    // Cerrar el modal
+    document.getElementById('comprobanteModal').style.display = 'none';
+}
+
+// Función para rechazar la venta
+function rechazarVenta() {
+    // Deseleccionar los asientos
+    asientosSeleccionados.clear();
+    renderizarAsientos();
+
+    // Mostrar mensaje de compra cancelada
+    alert("Compra cancelada");
+
+    // Cerrar el modal
+    document.getElementById('comprobanteModal').style.display = 'none';
+}
+
+// Función para renderizar los asientos
+function renderizarAsientos() {
+    const contenedor = document.getElementById('asientos');
+    contenedor.innerHTML = '';
+    for (let i = 0; i < filas * columnas; i++) {
+        const asiento = `${Math.floor(i / columnas) + 1}${String.fromCharCode(65 + (i % columnas))}`;
+        const boton = document.createElement('button');
+        boton.className = 'asiento';
+        if (asientosVendidos[diaSeleccionado].has(asiento)) {
+            boton.classList.add('vendido');
+        } else if (asientosSeleccionados.has(asiento)) {
+            boton.style.backgroundColor = 'orange';
+        }
+        boton.textContent = asiento;
+        boton.onclick = () => toggleAsiento(asiento);
+        contenedor.appendChild(boton);
+    }
+}
+
+// Cargar los asientos al iniciar la página
+cargarAsientos();
+
+// Manejar el cierre del modal
+const modal = document.getElementById('comprobanteModal');
+const span = document.getElementsByClassName('close')[0];
+
+span.onclick = () => modal.style.display = 'none';
+window.onclick = (event) => {
+    if (event.target === modal) {
+        modal.style.display = 'none';
+    }
+};
\ No newline at end of file
diff --git a/Interfaz/scripts/reporte_ventas.js b/Interfaz/scripts/reporte_ventas.js
new file mode 100644
index 0000000..0638fd3
--- /dev/null
+++ b/Interfaz/scripts/reporte_ventas.js
@@ -0,0 +1,51 @@
+document.getElementById('formReporte').addEventListener('submit', function (event) {
+    event.preventDefault(); // Evitar que el formulario se envíe
+
+    const fechaInicio = document.getElementById('fechaInicio').value;
+    const fechaFin = document.getElementById('fechaFin').value;
+
+    // Cargar el reporte de ventas
+    cargarReporte(fechaInicio, fechaFin);
+});
+
+function cargarReporte(fechaInicio, fechaFin) {
+    const url = `reporte_ventas.php?fechaInicio=${encodeURIComponent(fechaInicio)}&fechaFin=${encodeURIComponent(fechaFin)}`;
+
+    fetch(url)
+        .then(response => response.json())
+        .then(data => {
+            if (data.error) {
+                console.error("Error al cargar el reporte:", data.error);
+                return;
+            }
+
+            // Actualizar el total de boletos vendidos
+            document.getElementById('totalBoletos').textContent = data.totalBoletos;
+
+            // Limpiar la tabla
+            const tbody = document.querySelector('#tablaVentas tbody');
+            tbody.innerHTML = '';
+
+            // Llenar la tabla con los datos de las ventas
+            data.ventas.forEach(venta => {
+                const fila = document.createElement('tr');
+                fila.innerHTML = `
+                    <td>${venta.fecha_venta}</td>
+                    <td>${venta.asiento}</td>
+                    <td>$${venta.precio}</td>
+                `;
+                tbody.appendChild(fila);
+            });
+        })
+        .catch(error => console.error('Error al cargar el reporte:', error));
+}
+
+// Actualizar el reporte cada 10 segundos
+setInterval(() => {
+    const fechaInicio = document.getElementById('fechaInicio').value;
+    const fechaFin = document.getElementById('fechaFin').value;
+
+    if (fechaInicio && fechaFin) {
+        cargarReporte(fechaInicio, fechaFin);
+    }
+}, 10000); // 10 segundos
\ No newline at end of file