correcciones
This commit is contained in:
parent
7bd8d9c651
commit
81c1dfd9a0
NetBeansProjects/ticketCine
.vscode
src/main/java/com/mycompany/ticketcine
target/maven-status/maven-compiler-plugin/compile/default-compile
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"java.configuration.updateBuildConfiguration": "interactive"
|
||||
}
|
|
@ -1,13 +1,25 @@
|
|||
package com.mycompany.ticketcine;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.sql.*;
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.GridLayout;
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.sql.Timestamp;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JComboBox;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JScrollPane;
|
||||
import javax.swing.JTable;
|
||||
import javax.swing.table.DefaultTableModel;
|
||||
|
||||
public class CompraBoletosApp {
|
||||
private JFrame frame;
|
||||
private JComboBox<String> peliculasComboBox;
|
||||
|
@ -17,7 +29,7 @@ public class CompraBoletosApp {
|
|||
|
||||
public CompraBoletosApp() {
|
||||
frame = new JFrame("Compra de Boletos");
|
||||
frame.setSize(500, 500);
|
||||
frame.setSize(800, 600);
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
frame.setLayout(new BorderLayout());
|
||||
|
||||
|
@ -31,6 +43,12 @@ public class CompraBoletosApp {
|
|||
asientosPanel = new JPanel(new GridLayout(5, 5, 5, 5));
|
||||
frame.add(asientosPanel, BorderLayout.CENTER);
|
||||
|
||||
JButton generarReporteButton = new JButton("Generar Reporte");
|
||||
generarReporteButton.addActionListener(e -> generarReporteVentas());
|
||||
JPanel bottomPanel = new JPanel();
|
||||
bottomPanel.add(generarReporteButton);
|
||||
frame.add(bottomPanel, BorderLayout.SOUTH);
|
||||
|
||||
cargarPeliculas();
|
||||
cargarSalas();
|
||||
|
||||
|
@ -67,9 +85,11 @@ public class CompraBoletosApp {
|
|||
asientosPanel.removeAll();
|
||||
asientosBotones = new HashMap<>();
|
||||
|
||||
String peliculaSeleccionada = (String) peliculasComboBox.getSelectedItem();
|
||||
String salaSeleccionada = (String) salasComboBox.getSelectedItem();
|
||||
if (salaSeleccionada != null) {
|
||||
if (peliculaSeleccionada != null && salaSeleccionada != null) {
|
||||
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||
int idPelicula = obtenerIdPelicula(connection, peliculaSeleccionada);
|
||||
int idSala = obtenerIdSala(connection, salaSeleccionada);
|
||||
String query = "SELECT id_asiento, numero_asiento, estado FROM asientos WHERE id_sala = ?";
|
||||
try (PreparedStatement statement = connection.prepareStatement(query)) {
|
||||
|
@ -82,7 +102,7 @@ public class CompraBoletosApp {
|
|||
|
||||
JButton asientoButton = new JButton(String.valueOf(numeroAsiento));
|
||||
asientoButton.setEnabled(disponible);
|
||||
asientoButton.addActionListener(e -> comprarBoleto(idAsiento, numeroAsiento));
|
||||
asientoButton.addActionListener(e -> comprarBoleto(idAsiento, idPelicula, idSala, numeroAsiento));
|
||||
|
||||
asientosBotones.put(idAsiento, asientoButton);
|
||||
asientosPanel.add(asientoButton);
|
||||
|
@ -98,14 +118,12 @@ public class CompraBoletosApp {
|
|||
asientosPanel.repaint();
|
||||
}
|
||||
|
||||
private void comprarBoleto(int idAsiento, int numeroAsiento) {
|
||||
private void comprarBoleto(int idAsiento, int idPelicula, int idSala, int numeroAsiento) {
|
||||
String peliculaSeleccionada = (String) peliculasComboBox.getSelectedItem();
|
||||
String salaSeleccionada = (String) salasComboBox.getSelectedItem();
|
||||
|
||||
if (peliculaSeleccionada != null && salaSeleccionada != null) {
|
||||
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||
int idPelicula = obtenerIdPelicula(connection, peliculaSeleccionada);
|
||||
|
||||
String query = "INSERT INTO ventas_boletos (id_asiento, id_pelicula) VALUES (?, ?)";
|
||||
try (PreparedStatement statement = connection.prepareStatement(query)) {
|
||||
statement.setInt(1, idAsiento);
|
||||
|
@ -135,6 +153,36 @@ public class CompraBoletosApp {
|
|||
}
|
||||
}
|
||||
|
||||
private void generarReporteVentas() {
|
||||
String[] columnNames = {"Película", "Sala", "Asiento", "Fecha de Venta"};
|
||||
DefaultTableModel tableModel = new DefaultTableModel(columnNames, 0);
|
||||
JTable table = new JTable(tableModel);
|
||||
|
||||
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||
String query = "SELECT peliculas.nombre AS pelicula, salas.nombre AS sala, asientos.numero_asiento AS asiento, ventas_boletos.fecha_venta AS fecha " +
|
||||
"FROM ventas_boletos " +
|
||||
"JOIN asientos ON ventas_boletos.id_asiento = asientos.id_asiento " +
|
||||
"JOIN peliculas ON ventas_boletos.id_pelicula = peliculas.id_pelicula " +
|
||||
"JOIN salas ON asientos.id_sala = salas.id_sala";
|
||||
try (Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery(query)) {
|
||||
while (resultSet.next()) {
|
||||
String pelicula = resultSet.getString("pelicula");
|
||||
String sala = resultSet.getString("sala");
|
||||
int asiento = resultSet.getInt("asiento");
|
||||
Timestamp fechaVenta = resultSet.getTimestamp("fecha");
|
||||
|
||||
Object[] row = {pelicula, sala, asiento, fechaVenta};
|
||||
tableModel.addRow(row);
|
||||
}
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
JOptionPane.showMessageDialog(frame, "Error al generar el reporte: " + e.getMessage());
|
||||
}
|
||||
|
||||
JOptionPane.showMessageDialog(frame, new JScrollPane(table), "Reporte de Ventas de Boletos", JOptionPane.INFORMATION_MESSAGE);
|
||||
}
|
||||
|
||||
private int obtenerIdPelicula(Connection connection, String nombrePelicula) throws SQLException {
|
||||
String query = "SELECT id_pelicula FROM peliculas WHERE nombre = ?";
|
||||
try (PreparedStatement statement = connection.prepareStatement(query)) {
|
||||
|
@ -162,4 +210,6 @@ public class CompraBoletosApp {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -7,7 +7,7 @@ import java.sql.SQLException;
|
|||
public class DatabaseConnection {
|
||||
private static final String URL = "jdbc:mysql://localhost:3306/cine";
|
||||
private static final String USER = "root";
|
||||
private static final String PASSWORD = "qwerty";
|
||||
private static final String PASSWORD = "4560";
|
||||
|
||||
public static Connection getConnection() throws SQLException {
|
||||
return DriverManager.getConnection(URL, USER, PASSWORD);
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
C:\Users\Tron7\Documents\DesarrolloSoftware\v\VentaBoletos\NetBeansProjects\ticketCine\src\main\java\com\mycompany\ticketcine\Asiento.java
|
||||
C:\Users\Tron7\Documents\DesarrolloSoftware\v\VentaBoletos\NetBeansProjects\ticketCine\src\main\java\com\mycompany\ticketcine\CompraBoletosApp.java
|
||||
C:\Users\Tron7\Documents\DesarrolloSoftware\v\VentaBoletos\NetBeansProjects\ticketCine\src\main\java\com\mycompany\ticketcine\DatabaseConnection.java
|
||||
C:\Users\Tron7\Documents\DesarrolloSoftware\v\VentaBoletos\NetBeansProjects\ticketCine\src\main\java\com\mycompany\ticketcine\MainApp.java
|
||||
C:\Users\Tron7\Documents\DesarrolloSoftware\v\VentaBoletos\NetBeansProjects\ticketCine\src\main\java\com\mycompany\ticketcine\Pelicula.java
|
||||
C:\Users\Tron7\Documents\DesarrolloSoftware\v\VentaBoletos\NetBeansProjects\ticketCine\src\main\java\com\mycompany\ticketcine\Sala.java
|
||||
C:\Users\Tron7\Documents\DesarrolloSoftware\v\VentaBoletos\NetBeansProjects\ticketCine\src\main\java\com\mycompany\ticketcine\VentaBoleto.java
|
|
@ -1 +0,0 @@
|
|||
aldovh22
|
Loading…
Reference in New Issue