correcciones

This commit is contained in:
RictalLime 2025-03-06 11:10:40 -06:00
parent 7bd8d9c651
commit 81c1dfd9a0
5 changed files with 73 additions and 14 deletions
NetBeansProjects/ticketCine
.vscode
src/main/java/com/mycompany/ticketcine
target/maven-status/maven-compiler-plugin/compile/default-compile
docker-hub.md

View File

@ -0,0 +1,3 @@
{
"java.configuration.updateBuildConfiguration": "interactive"
}

View File

@ -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 {
}
}
}
}
}

View File

@ -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);

View File

@ -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

View File

@ -1 +0,0 @@
aldovh22