diff --git a/.classpath b/.classpath
index b76657e4..1a575043 100644
--- a/.classpath
+++ b/.classpath
@@ -1,14 +1,14 @@
-
+
-
-
-
-
+
+
+
+
diff --git a/.metadata/.lock b/.metadata/.lock
new file mode 100644
index 00000000..e69de29b
diff --git a/.metadata/.plugins/org.eclipse.debug.core/.launches/ReservasView.launch b/.metadata/.plugins/org.eclipse.debug.core/.launches/ReservasView.launch
new file mode 100644
index 00000000..6e0ae673
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.debug.core/.launches/ReservasView.launch
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/README.md b/README.md
deleted file mode 100644
index 248b01b0..00000000
--- a/README.md
+++ /dev/null
@@ -1,297 +0,0 @@
-# Challenge ONE | Java | Back-end | Hotel Alura
-
-
-
-
-
----
-## Primeros Pasos:
-
-
-#### 🔹 Marca este proyecto con una ⭐
-#### 🔹 Sigue las orientaciones que tenemos en este repositorio. 📚
-#### 🔹 ¡Visita la página del desafío haciendo clic aquí! [Link do Challenge](https://www.aluracursos.com/challenges/oracle-one-back-end/hotelalura) 📃
-
-
-## 🖥️ Tecnologías Utilizadas:
-
-- Java
-- Eclipse
-- Biblioteca JCalendar
-- MySql
-- Plugin WindowBuilder
-
----
-## ⚠️ Importante! ⚠️
-
-☕ Use Java versión 8 o superior para compatibilidad.
-📝 Recomendamos usar el editor de Eclipse para compatibilidad con la Interfaz Gráfica.
-🎨 La interfaz contiene dos métodos importantes:
-- setResizable(false): determina el tamaño de la ventana, y a través del parámetro false, la pantalla no se puede maximizar;
-- setLocationRelativeTo(null): determina la ubicación de la ventana, y a través del parámetro null la mantiene centrada en la pantalla.
-
-#### Para este desafío, concéntrate en la parte lógica y la conexión con la base de datos, después de completar el desafío, siéntete libre de agregar nuevas funciones y modificar la interfaz gráfica.
----
-
-## 🔍 ¡Analizando nuestro repositorio!
-
-### Este es el repositorio base de nuestro proyecto, en el encontrarás:
-#### 🔹 src/views: carpeta con toda la interfaz gráfica de las pantallas necesarias para desarrollar el programa;
-#### 🔹 src/imagenes: carpeta con imágenes que puedes usar en tu proyecto. Siéntete libre de usar otros, si lo deseas;
-
-
-## ⬇️ Download
-
-### Cómo descargar:
-
-#### 🔹 Fork
-
-1 - Haz el fork del proyecto. En la parte superior derecha, al hacer clic en el icono se creará un repositorio del proyecto en tu cuenta personal de GitHub.
-
-
-
-
-
-2 - Una vez que tengas el repositorio "forkado" en tu cuenta, comprueba si la URL de la página es la del repositorio de tu cuenta.
-
-
-
-
-
-3 - Haz clic en la opción Code. Se mostrarán tres formas de instalar el repositorio en su máquina, y destacamos dos:
-
-
-
-
-
-#### 🔹 Clonar o descargar el ZIP
-
-1 - Para clonar, simplemente copia el url resaltado en la imagen y ubicado justo debajo del HTTPS, crea una carpeta en tu computadora, abre el cmd o el git bash dentro de esa carpeta y luego ingresa el comando git clone y con el botón derecho del mouse dentro del terminal haz click en la opcion Paste para pegar el url y presiona Enter.
-
-
-
-
-
-2 - La segunda opción es descargar el código en un paquete "zipado" y extraer la carpeta a tu computadora.
-
-
-## 📝 Eclipse
-
-### ¿Cómo importar mi proyecto a Eclipse?
-
-1 - Una vez dentro del Editor al lado izquierdo, haz clic en el Files que está en el menú en la parte superior, elige la opción Open Projects from File System.
-
-
-
-
-
-Luego haz click en Directory y ubica el directorio del proyecto "clonado" o "extraído" en tu computadora. Haz click en Finish para completar la importación.
-
-
-
-
-
-2 - La segunda forma de importar es en File en la opción Import. O a través del Project Explorer haz clic en el campo vacío con el botón derecho del mouse y elijas la opción Import.
-
-
-
-
-
-
-
-
-
-Si te decides por el Import, se abrirá la ventana correspondiente. Haz clic en la opción Existing Projects Into Workspace y en el botón Next.
-
-
-
-
-
-Luego haz clic en el botón Browse y busca el proyecto en el directorio local.
-
-
-
-
-
-## 📅 JCalendar
-
-Tras realizar la importación a tu editor, es necesario instalar la librería JCalendar, de lo contrário, el proyecto presentará un error y no será posible abrir la ventana de Reservas.
-
-Para instalar, se necesita descargar el paquete a través de ese enlace:
-🔹 [Link para el JCalendar](https://toedter.com/jcalendar/)
-
-
-
-
-
-El siguiente paso es extraer los archivos a una carpeta e importar los archivos desde la carpeta lib a una carpeta local e importar los archivos a Eclipse.
-
-
-
-
-
-Archivos de carpeta lib:
-
-
-
-
-
-Haz click con el botón derecho encima del proyecto ubicado en el Package Explorer, elijas la opción Build Path y Configure Build Path.
-
-
-
-
-
-El proyecto tendrá un mensaje de error que indica que la ruta de la biblioteca no existe en tu computadora. Haz click en Libraries, luego en Classpath seleccione el archivo JCalendar, elije la opción Remove y Apply and Close.
-
-
-
-
-
-Para importar el Jcalendar desde tu computadora, después de haber "extraído" los archivos de la descarga, pulsa en ClassPath y luego en Add External JARS agrega uno por uno o selecciona todos de una vez y haz click en Apply and Close.
-
-
-
-
-
-Por lo tanto, el proyecto debe contener los siguientes archivos después de las importaciones:
-
-
-
-
-
-
-## 🚧 Proyecto
-
-#### Al clonar o descargar el proyecto base y tener instalado el JCalendar, tendrás esta presentación al ejecutar el proyecto en Eclipse:
-
-
-
-
-
-### ⚠️ Descargué el proyecto pero los caracteres especiales no funcionan:
-
-Si tu proyecto tiene errores como los de la imagen, siga los pasos a continuación:
-
-
-
-
-
-Ve a Window y haz clic en Preferences.
-
-
-
-
-
-Luego haz clic en General y en Workspace. Si tu Text File Enconding no está con el Default (UTF-8), haz clic en Other, y eliges la opción UTF-8, y finaliza haciendo clic Apply and Close.
-
-
-
-
-
-## 📊 Base de Dados
-
-### ¿Cómo importar MySqlConnector al proyecto?
-
-Es la misma ruta descrita para importar el JCalendar, haga clic con el botón derecho en el proyecto, Build Path, Configure Build Path, Libraries, Add External JARs. Para encontrar la ruta de este archivo .jar, ve al disco duro de tu computadora e ingresa a la carpeta Archivos de Programas (x86).
-
-- Archivos de Programas (x86):
-
-
-
-
-- MySQL
-
-
-
-
-- Connector J 8.0:
-
-
-
-
-
-- My SQL Connector Java:
-
-
-
-
-### Modelado de tablas:
-
-Para este reto te proponemos dos tablas: Reservas y Huéspedes. La tabla de huéspedes debe contener la clave externa (foreign key) idReserva.
-
-
-
-
-
-
-## 🗔 Plugin WindowBuilder
-
-En el menú de Eclipse, ir a la pestaña Help y seleccione la opción Eclipse Marketplace.
-
-
-
-
-
-En la barra de búsqueda, ingresa window builder y haz click en Go. Después de la búsqueda, selecciona la primera opción y haz click en Install.
-
-
-
-
-
-En la siguiente ventana, selecciona el botón Confirm.
-
-
-
-
-
-Haz click en la opción para aceptar los Términos de Uso, y para finalizar haz clic en Finish.
-
-
-
-
-
-Después de la instalación, será necesario reiniciar el Eclipse.
-
-### ¿Cómo abrir cada ventana de diseño?
-
-Una vez que completes el desafío, si quieres explorar el Window Builder y agregar nuevas ventanas, o cambiar el diseño de las existentes, haz clic en el archivo .java, y luego en Open With y finalmente en Window Builder Editor.
-
-
-
-
-
-La pestaña de Design se abrirá por encima de la zona del Console. ¡Aquí puedes liberar al artista que llevas dentro de ti!
-
-
-
-
-
-## 📬 Entrega
-
-### ¿Cómo incluir mi proyecto con el "#" del desafío?
-
-1) Ten el Fork del proyecto en tu repositorio en Github.
-2) Utiliza el topico **challengeonehotelaluralatam4**
-3) Ve a la pestaña derecha de tu proyecto y haz clic en el engranaje de configuración en la sección About, selecciona el campo **topics** e inserae la etiqueta **challengeonehotelaluralatam4**
-
-
-### ¿Cómo hago la entrega final de mi Proyecto?
-
-4) Rellena el siguiente formulario con tus datos personales, junto con el enlace de tu repositorio. 🔹 [Link para o formulário](https://lp.alura.com.br/alura-latam-entrega-challenge-one-esp-back-end)
-
-
-
-
-
-5) Ve a tu correo electrónico y canjea tu insignia obtenida al completar otro desafío del Proyecto ONE! 🏆
-
-6) ¡No olvides poner un enlace o video de tu proyecto en Linkedin! Etiqueta a #Oracle y #AluraLatam 🏁
-
-🧡 Oracle
-
-
-
-💙 Alura Latam
-
-
diff --git a/bin/.gitignore b/bin/.gitignore
deleted file mode 100644
index 29fe8e16..00000000
--- a/bin/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/views/
diff --git a/bin/views/Busqueda$1.class b/bin/views/Busqueda$1.class
index 7aced242..f0e0b611 100644
Binary files a/bin/views/Busqueda$1.class and b/bin/views/Busqueda$1.class differ
diff --git a/bin/views/Busqueda$2.class b/bin/views/Busqueda$2.class
index 2fdf8a62..499e71c9 100644
Binary files a/bin/views/Busqueda$2.class and b/bin/views/Busqueda$2.class differ
diff --git a/bin/views/Busqueda$3.class b/bin/views/Busqueda$3.class
index 508d2f5d..e6404a2f 100644
Binary files a/bin/views/Busqueda$3.class and b/bin/views/Busqueda$3.class differ
diff --git a/bin/views/Busqueda.class b/bin/views/Busqueda.class
index e60912bf..85d5a64f 100644
Binary files a/bin/views/Busqueda.class and b/bin/views/Busqueda.class differ
diff --git a/bin/views/Exito$1.class b/bin/views/Exito$1.class
index 08995118..a9afd9e5 100644
Binary files a/bin/views/Exito$1.class and b/bin/views/Exito$1.class differ
diff --git a/bin/views/Exito.class b/bin/views/Exito.class
index 133e8f5d..f9e0e98e 100644
Binary files a/bin/views/Exito.class and b/bin/views/Exito.class differ
diff --git a/bin/views/Login$1.class b/bin/views/Login$1.class
index 44d05024..de75f29f 100644
Binary files a/bin/views/Login$1.class and b/bin/views/Login$1.class differ
diff --git a/bin/views/Login$2.class b/bin/views/Login$2.class
index e7f2e600..b16abe72 100644
Binary files a/bin/views/Login$2.class and b/bin/views/Login$2.class differ
diff --git a/bin/views/Login.class b/bin/views/Login.class
index 2b08d3f4..38f342ce 100644
Binary files a/bin/views/Login.class and b/bin/views/Login.class differ
diff --git a/bin/views/MenuPrincipal$1.class b/bin/views/MenuPrincipal$1.class
index 29a37372..cd306b91 100644
Binary files a/bin/views/MenuPrincipal$1.class and b/bin/views/MenuPrincipal$1.class differ
diff --git a/bin/views/MenuPrincipal$2.class b/bin/views/MenuPrincipal$2.class
index ffea407d..19a5acdc 100644
Binary files a/bin/views/MenuPrincipal$2.class and b/bin/views/MenuPrincipal$2.class differ
diff --git a/bin/views/MenuPrincipal$3.class b/bin/views/MenuPrincipal$3.class
index da229beb..ccf1d89c 100644
Binary files a/bin/views/MenuPrincipal$3.class and b/bin/views/MenuPrincipal$3.class differ
diff --git a/bin/views/MenuPrincipal.class b/bin/views/MenuPrincipal.class
index 256bb7ca..77a9c6c5 100644
Binary files a/bin/views/MenuPrincipal.class and b/bin/views/MenuPrincipal.class differ
diff --git a/bin/views/MenuUsuario$1.class b/bin/views/MenuUsuario$1.class
index bbcf15b3..67bf607d 100644
Binary files a/bin/views/MenuUsuario$1.class and b/bin/views/MenuUsuario$1.class differ
diff --git a/bin/views/MenuUsuario$2.class b/bin/views/MenuUsuario$2.class
index 63d6f40e..eca270a0 100644
Binary files a/bin/views/MenuUsuario$2.class and b/bin/views/MenuUsuario$2.class differ
diff --git a/bin/views/MenuUsuario$3.class b/bin/views/MenuUsuario$3.class
index f77b1310..23d5eabd 100644
Binary files a/bin/views/MenuUsuario$3.class and b/bin/views/MenuUsuario$3.class differ
diff --git a/bin/views/MenuUsuario$4.class b/bin/views/MenuUsuario$4.class
index ec1d0963..d50f00da 100644
Binary files a/bin/views/MenuUsuario$4.class and b/bin/views/MenuUsuario$4.class differ
diff --git a/bin/views/MenuUsuario.class b/bin/views/MenuUsuario.class
index 31a469b9..7dd9d31d 100644
Binary files a/bin/views/MenuUsuario.class and b/bin/views/MenuUsuario.class differ
diff --git a/bin/views/RegistroHuesped$1.class b/bin/views/RegistroHuesped$1.class
index a3e7befc..95eb1ccb 100644
Binary files a/bin/views/RegistroHuesped$1.class and b/bin/views/RegistroHuesped$1.class differ
diff --git a/bin/views/RegistroHuesped$2.class b/bin/views/RegistroHuesped$2.class
index 03a02be7..78308641 100644
Binary files a/bin/views/RegistroHuesped$2.class and b/bin/views/RegistroHuesped$2.class differ
diff --git a/bin/views/RegistroHuesped$3.class b/bin/views/RegistroHuesped$3.class
index e0923a6b..470984a2 100644
Binary files a/bin/views/RegistroHuesped$3.class and b/bin/views/RegistroHuesped$3.class differ
diff --git a/bin/views/RegistroHuesped.class b/bin/views/RegistroHuesped.class
index dbbbf3f5..c03046ce 100644
Binary files a/bin/views/RegistroHuesped.class and b/bin/views/RegistroHuesped.class differ
diff --git a/src/views/Busqueda.java b/src/views/Busqueda.java
index 81d4f0ff..4c2acb9a 100644
--- a/src/views/Busqueda.java
+++ b/src/views/Busqueda.java
@@ -1,30 +1,20 @@
package views;
-import java.awt.EventQueue;
-import javax.swing.JFrame;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
+import jdbc.controller.HuespedesController;
+import jdbc.controller.ReservasController;
+import jdbc.modelo.Huespedes;
+import jdbc.modelo.Reserva;
+
+import java.awt.*;
+import javax.swing.*;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
-import javax.swing.JTable;
-import javax.swing.JTextField;
-import javax.swing.JButton;
-import javax.swing.ImageIcon;
-import java.awt.Color;
-import java.awt.SystemColor;
-import javax.swing.JLabel;
-import java.awt.Font;
-import java.awt.event.ActionListener;
+import java.sql.Date;
import java.util.List;
-import java.awt.event.ActionEvent;
-import javax.swing.JTabbedPane;
-import java.awt.Toolkit;
-import javax.swing.SwingConstants;
-import javax.swing.JSeparator;
-import javax.swing.ListSelectionModel;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
+import java.util.Optional;
@SuppressWarnings("serial")
public class Busqueda extends JFrame {
@@ -35,10 +25,15 @@ public class Busqueda extends JFrame {
private JTable tbReservas;
private DefaultTableModel modelo;
private DefaultTableModel modeloHuesped;
+ private ReservasController reservaController;
+ private HuespedesController huespedesController;
private JLabel labelAtras;
private JLabel labelExit;
int xMouse, yMouse;
+ String reserva;
+ String huespedes;
+ private ReservasController reservasController;
/**
* Launch the application.
*/
@@ -59,6 +54,8 @@ public void run() {
* Create the frame.
*/
public Busqueda() {
+ this.reservaController = new ReservasController();
+ this.huespedesController = new HuespedesController();
setIconImage(Toolkit.getDefaultToolkit().getImage(Busqueda.class.getResource("/imagenes/lupa2.png")));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 910, 571);
@@ -66,72 +63,75 @@ public Busqueda() {
contentPane.setBackground(Color.WHITE);
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
- contentPane.setLayout(null);
setLocationRelativeTo(null);
setUndecorated(true);
-
+ contentPane.setLayout(null);
+ JScrollPane scrollPane = new JScrollPane(tbReservas);
+
+
+
txtBuscar = new JTextField();
txtBuscar.setBounds(536, 127, 193, 31);
txtBuscar.setBorder(javax.swing.BorderFactory.createEmptyBorder());
contentPane.add(txtBuscar);
txtBuscar.setColumns(10);
-
-
- JLabel lblNewLabel_4 = new JLabel("SISTEMA DE BÚSQUEDA");
- lblNewLabel_4.setForeground(new Color(12, 138, 199));
- lblNewLabel_4.setFont(new Font("Roboto Black", Font.BOLD, 24));
- lblNewLabel_4.setBounds(331, 62, 280, 42);
- contentPane.add(lblNewLabel_4);
-
+
+
+ JLabel lblTitulo = new JLabel("SISTEMA DE BÚSQUEDA");
+ lblTitulo.setBounds(331, 62, 280, 42);
+ lblTitulo.setForeground(new Color(12, 138, 199));
+ lblTitulo.setFont(new Font("Roboto Black", Font.BOLD, 24));
+ contentPane.add(lblTitulo);
+
JTabbedPane panel = new JTabbedPane(JTabbedPane.TOP);
+ panel.setBounds(20, 169, 865, 328);
panel.setBackground(new Color(12, 138, 199));
panel.setFont(new Font("Roboto", Font.PLAIN, 16));
- panel.setBounds(20, 169, 865, 328);
contentPane.add(panel);
-
-
-
- tbReservas = new JTable();
- tbReservas.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
- tbReservas.setFont(new Font("Roboto", Font.PLAIN, 16));
- modelo = (DefaultTableModel) tbReservas.getModel();
- modelo.addColumn("Numero de Reserva");
- modelo.addColumn("Fecha Check In");
- modelo.addColumn("Fecha Check Out");
- modelo.addColumn("Valor");
- modelo.addColumn("Forma de Pago");
- JScrollPane scroll_table = new JScrollPane(tbReservas);
- panel.addTab("Reservas", new ImageIcon(Busqueda.class.getResource("/imagenes/reservado.png")), scroll_table, null);
- scroll_table.setVisible(true);
-
-
+
+
tbHuespedes = new JTable();
- tbHuespedes.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
tbHuespedes.setFont(new Font("Roboto", Font.PLAIN, 16));
+ panel.addTab("Huéspedes", new ImageIcon(Busqueda.class.getResource("/imagenes/pessoas.png")), tbHuespedes, null);
modeloHuesped = (DefaultTableModel) tbHuespedes.getModel();
- modeloHuesped.addColumn("Número de Huesped");
+ modeloHuesped.addColumn("Numero de Huesped");
modeloHuesped.addColumn("Nombre");
modeloHuesped.addColumn("Apellido");
modeloHuesped.addColumn("Fecha de Nacimiento");
modeloHuesped.addColumn("Nacionalidad");
modeloHuesped.addColumn("Telefono");
- modeloHuesped.addColumn("Número de Reserva");
- JScrollPane scroll_tableHuespedes = new JScrollPane(tbHuespedes);
- panel.addTab("Huéspedes", new ImageIcon(Busqueda.class.getResource("/imagenes/pessoas.png")), scroll_tableHuespedes, null);
- scroll_tableHuespedes.setVisible(true);
-
- JLabel lblNewLabel_2 = new JLabel("");
- lblNewLabel_2.setIcon(new ImageIcon(Busqueda.class.getResource("/imagenes/Ha-100px.png")));
- lblNewLabel_2.setBounds(56, 51, 104, 107);
- contentPane.add(lblNewLabel_2);
-
+ modeloHuesped.addColumn("Numero de Reserva");
+ LlenarTablaHuespedes();
+
+
+
+
+ tbReservas = new JTable();
+ tbReservas.setFont(new Font("Roboto", Font.PLAIN, 16));
+ panel.addTab("Reservas", new ImageIcon(Busqueda.class.getResource("/imagenes/reservado.png")), tbReservas, null);
+ modelo = (DefaultTableModel) tbReservas.getModel();
+ modelo.addColumn("Numero de Reserva");
+ modelo.addColumn("Fecha Check In");
+ modelo.addColumn("Fecha Check Out");
+ modelo.addColumn("Valor");
+ modelo.addColumn("Forma de Pago");
+ tbReservas.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
+
+ LlenarTablaReservas();
+
+ JLabel logo = new JLabel("");
+ logo.setBounds(56, 51, 104, 107);
+ logo.setIcon(new ImageIcon(Busqueda.class.getResource("/imagenes/Ha-100px.png")));
+ contentPane.add(logo);
+
JPanel header = new JPanel();
+ header.setBounds(0, 0, 910, 36);
header.addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseDragged(MouseEvent e) {
headerMouseDragged(e);
-
+
}
});
header.addMouseListener(new MouseAdapter() {
@@ -142,39 +142,38 @@ public void mousePressed(MouseEvent e) {
});
header.setLayout(null);
header.setBackground(Color.WHITE);
- header.setBounds(0, 0, 910, 36);
contentPane.add(header);
-
+
JPanel btnAtras = new JPanel();
btnAtras.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
MenuUsuario usuario = new MenuUsuario();
usuario.setVisible(true);
- dispose();
+ dispose();
}
@Override
public void mouseEntered(MouseEvent e) {
btnAtras.setBackground(new Color(12, 138, 199));
labelAtras.setForeground(Color.white);
- }
+ }
@Override
public void mouseExited(MouseEvent e) {
- btnAtras.setBackground(Color.white);
- labelAtras.setForeground(Color.black);
+ btnAtras.setBackground(Color.white);
+ labelAtras.setForeground(Color.black);
}
});
btnAtras.setLayout(null);
btnAtras.setBackground(Color.WHITE);
btnAtras.setBounds(0, 0, 53, 36);
header.add(btnAtras);
-
+
labelAtras = new JLabel("<");
labelAtras.setHorizontalAlignment(SwingConstants.CENTER);
labelAtras.setFont(new Font("Roboto", Font.PLAIN, 23));
labelAtras.setBounds(0, 0, 53, 36);
btnAtras.add(labelAtras);
-
+
JPanel btnexit = new JPanel();
btnexit.addMouseListener(new MouseAdapter() {
@Override
@@ -184,75 +183,143 @@ public void mouseClicked(MouseEvent e) {
dispose();
}
@Override
- public void mouseEntered(MouseEvent e) { //Al usuario pasar el mouse por el botón este cambiará de color
+ public void mouseEntered(MouseEvent e) {
btnexit.setBackground(Color.red);
labelExit.setForeground(Color.white);
- }
+ }
@Override
- public void mouseExited(MouseEvent e) { //Al usuario quitar el mouse por el botón este volverá al estado original
- btnexit.setBackground(Color.white);
- labelExit.setForeground(Color.black);
+ public void mouseExited(MouseEvent e) {
+ btnexit.setBackground(Color.white);
+ labelExit.setForeground(Color.black);
}
});
btnexit.setLayout(null);
btnexit.setBackground(Color.WHITE);
btnexit.setBounds(857, 0, 53, 36);
header.add(btnexit);
-
+
labelExit = new JLabel("X");
labelExit.setHorizontalAlignment(SwingConstants.CENTER);
labelExit.setForeground(Color.BLACK);
labelExit.setFont(new Font("Roboto", Font.PLAIN, 18));
labelExit.setBounds(0, 0, 53, 36);
btnexit.add(labelExit);
-
+
JSeparator separator_1_2 = new JSeparator();
+ separator_1_2.setBounds(539, 159, 193, 2);
separator_1_2.setForeground(new Color(12, 138, 199));
separator_1_2.setBackground(new Color(12, 138, 199));
- separator_1_2.setBounds(539, 159, 193, 2);
contentPane.add(separator_1_2);
-
+
JPanel btnbuscar = new JPanel();
+ btnbuscar.setBounds(748, 125, 122, 35);
btnbuscar.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
-
+ limpiarTabla();
+ if (txtBuscar.getText().equals("")) {
+ LlenarTablaHuespedes();
+ LlenarTablaReservas();
+ } else {
+ LlenarTablaReservasId();
+ LlenarTablaHuespedesId();
+ }
}
});
btnbuscar.setLayout(null);
btnbuscar.setBackground(new Color(12, 138, 199));
- btnbuscar.setBounds(748, 125, 122, 35);
btnbuscar.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
contentPane.add(btnbuscar);
-
+
JLabel lblBuscar = new JLabel("BUSCAR");
lblBuscar.setBounds(0, 0, 122, 35);
btnbuscar.add(lblBuscar);
lblBuscar.setHorizontalAlignment(SwingConstants.CENTER);
lblBuscar.setForeground(Color.WHITE);
lblBuscar.setFont(new Font("Roboto", Font.PLAIN, 18));
-
+
JPanel btnEditar = new JPanel();
+ btnEditar.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent e) {
+ int filaReservas = tbReservas.getSelectedRow();
+ int filaHuespedes = tbHuespedes.getSelectedRow();
+
+ if (filaReservas >= 0) {
+ ActualizarReservas();
+ limpiarTabla();
+ LlenarTablaReservas();
+ LlenarTablaHuespedes();
+ }
+ else if (filaHuespedes >= 0) {
+ ActualizarHuesped();
+ limpiarTabla();
+ LlenarTablaHuespedes();
+ LlenarTablaReservas();
+ }
+ }
+ });
+ btnEditar.setBounds(635, 508, 122, 35);
btnEditar.setLayout(null);
btnEditar.setBackground(new Color(12, 138, 199));
- btnEditar.setBounds(635, 508, 122, 35);
btnEditar.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
contentPane.add(btnEditar);
-
+
JLabel lblEditar = new JLabel("EDITAR");
lblEditar.setHorizontalAlignment(SwingConstants.CENTER);
lblEditar.setForeground(Color.WHITE);
lblEditar.setFont(new Font("Roboto", Font.PLAIN, 18));
lblEditar.setBounds(0, 0, 122, 35);
btnEditar.add(lblEditar);
-
+
JPanel btnEliminar = new JPanel();
+ btnEliminar.setBounds(767, 508, 122, 35);
+ btnEliminar.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent e) {
+ int filaReservas = tbReservas.getSelectedRow();
+ int filaHuespedes = tbHuespedes.getSelectedRow();
+
+ if (filaReservas >= 0) {
+
+ reserva = tbReservas.getValueAt(filaReservas, 0).toString();
+ int confirmar = JOptionPane.showConfirmDialog(null, "¿Desea Eliminar los datos?");
+
+ if(confirmar == JOptionPane.YES_OPTION){
+
+ String valor = tbReservas.getValueAt(filaReservas, 0).toString();
+ reservaController.Eliminar(Integer.valueOf(valor));
+ JOptionPane.showMessageDialog(contentPane, "Registro Eliminado");
+ limpiarTabla();
+ LlenarTablaReservas();
+ LlenarTablaHuespedes();
+ }
+ }
+
+ else if (filaHuespedes >= 0) {
+
+ huespedes = tbHuespedes.getValueAt(filaHuespedes, 0).toString();
+ int confirmarh = JOptionPane.showConfirmDialog(null, "¿Desea Eliminar los datos?");
+
+ if(confirmarh == JOptionPane.YES_OPTION){
+
+ String valor = tbHuespedes.getValueAt(filaHuespedes, 0).toString();
+ huespedesController.Eliminar(Integer.valueOf(valor));
+ JOptionPane.showMessageDialog(contentPane, "Registro Eliminado");
+ limpiarTabla();
+ LlenarTablaHuespedes();
+ LlenarTablaReservas();
+ }
+ }else {
+ JOptionPane.showMessageDialog(null, "Error fila no seleccionada, por favor realice una busqueda y seleccione una fila para eliminar");
+ }
+ }
+ });
btnEliminar.setLayout(null);
btnEliminar.setBackground(new Color(12, 138, 199));
- btnEliminar.setBounds(767, 508, 122, 35);
btnEliminar.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
contentPane.add(btnEliminar);
-
+
JLabel lblEliminar = new JLabel("ELIMINAR");
lblEliminar.setHorizontalAlignment(SwingConstants.CENTER);
lblEliminar.setForeground(Color.WHITE);
@@ -261,16 +328,116 @@ public void mouseClicked(MouseEvent e) {
btnEliminar.add(lblEliminar);
setResizable(false);
}
-
-//Código que permite mover la ventana por la pantalla según la posición de "x" y "y"
- private void headerMousePressed(java.awt.event.MouseEvent evt) {
- xMouse = evt.getX();
- yMouse = evt.getY();
- }
-
- private void headerMouseDragged(java.awt.event.MouseEvent evt) {
- int x = evt.getXOnScreen();
- int y = evt.getYOnScreen();
- this.setLocation(x - xMouse, y - yMouse);
-}
-}
+ private List BuscarReservas() {
+ return this.reservaController.buscar();
+ }
+
+ private List BuscarReservasId() {
+ return this.reservaController.buscarId(txtBuscar.getText());
+ }
+ private List BuscarHuespedes() {
+ return this.huespedesController.listarHuespedes();
+ }
+
+ private List BuscarHuespedesId() {
+ return this.huespedesController.listarHuespedesId(txtBuscar.getText());
+ }
+
+ private void limpiarTabla() {
+ ((DefaultTableModel) tbHuespedes.getModel()).setRowCount(0);
+ ((DefaultTableModel) tbReservas.getModel()).setRowCount(0);
+ }
+ private void LlenarTablaReservas() {
+
+ // Llenar tabla
+ List reserva = BuscarReservas();
+ try {
+ for (Reserva reservas : reserva) {
+ modelo.addRow(new Object[] { reservas.getId(), reservas.getfechaE(), reservas.getfechaS(), reservas.getvalor(), reservas.getformaPago() });
+ }
+ } catch (Exception e) {
+ throw e;
+ }
+ }
+
+ private void LlenarTablaReservasId() {
+
+ // Llenar tabla
+ List reserva = BuscarReservasId();
+ try {
+ for (Reserva reservas : reserva) {
+ modelo.addRow(new Object[] { reservas.getId(), reservas.getfechaE(), reservas.getfechaS(), reservas.getvalor(), reservas.getformaPago() });
+ }
+ } catch (Exception e) {
+ throw e;
+ }
+ }
+
+ private void LlenarTablaHuespedes() {
+ //Llenar Tabla
+ List huesped = BuscarHuespedes();
+ try {
+ for (Huespedes huespedes : huesped) {
+ modeloHuesped.addRow(new Object[] { huespedes.getId(), huespedes.getNombre(), huespedes.getApellido(), huespedes.getFecha_nacimiento(), huespedes.getNacionalidad(), huespedes.getTelefono(), huespedes.getId_reserva() });
+ }
+ } catch (Exception e) {
+ throw e;
+ }
+ }
+
+ private void LlenarTablaHuespedesId() {
+ //Llenar Tabla
+ List huesped = BuscarHuespedesId();
+ try {
+ for (Huespedes huespedes : huesped) {
+ modeloHuesped.addRow(new Object[] { huespedes.getId(), huespedes.getNombre(), huespedes.getApellido(), huespedes.getFecha_nacimiento(), huespedes.getNacionalidad(), huespedes.getTelefono(), huespedes.getId_reserva() });
+ }
+ } catch (Exception e) {
+ throw e;
+ }
+ }
+
+ private void ActualizarReservas() {
+ Optional.ofNullable(modelo.getValueAt(tbReservas.getSelectedRow(), tbReservas.getSelectedColumn()))
+ .ifPresentOrElse(fila -> {
+
+ Date fechaE = Date.valueOf(modelo.getValueAt(tbReservas.getSelectedRow(), 1).toString());
+ Date fechaS = Date.valueOf(modelo.getValueAt(tbReservas.getSelectedRow(), 2).toString());
+ String valor = (String) modelo.getValueAt(tbReservas.getSelectedRow(), 3);
+ String formaPago = (String) modelo.getValueAt(tbReservas.getSelectedRow(), 4);
+ Integer id = Integer.valueOf(modelo.getValueAt(tbReservas.getSelectedRow(), 0).toString());
+ this.reservaController.actualizar(fechaE,fechaS, valor, formaPago, id);
+ JOptionPane.showMessageDialog(this, String.format("Registro modificado con éxito"));
+ }, () -> JOptionPane.showMessageDialog(this, "Por favor, elije un registro"));
+
+ }
+
+ private void ActualizarHuesped() {
+ Optional.ofNullable(modeloHuesped.getValueAt(tbHuespedes.getSelectedRow(), tbHuespedes.getSelectedColumn()))
+ .ifPresentOrElse(filaHuesped -> {
+
+ String nombre = (String) modeloHuesped.getValueAt(tbHuespedes.getSelectedRow(), 1);
+ String apellido = (String) modeloHuesped.getValueAt(tbHuespedes.getSelectedRow(), 2);
+ Date fechaN = Date.valueOf(modeloHuesped.getValueAt(tbHuespedes.getSelectedRow(), 3).toString());
+ String nacionalidad = (String) modeloHuesped.getValueAt(tbHuespedes.getSelectedRow(), 4);
+ String telefono = (String) modeloHuesped.getValueAt(tbHuespedes.getSelectedRow(), 5);
+ Integer idReserva = Integer.valueOf(modeloHuesped.getValueAt(tbHuespedes.getSelectedRow(), 6).toString());
+ Integer id = Integer.valueOf(modeloHuesped.getValueAt(tbHuespedes.getSelectedRow(), 0).toString());
+ this.huespedesController.actualizar(nombre,apellido,fechaN, nacionalidad, telefono, idReserva, id);
+ JOptionPane.showMessageDialog(this, String.format("Registro modificado con éxito"));
+ }, () -> JOptionPane.showMessageDialog(this, "Por favor, elije un registro"));
+
+ }
+
+
+ private void headerMousePressed(java.awt.event.MouseEvent evt) {
+ xMouse = evt.getX();
+ yMouse = evt.getY();
+ }
+
+ private void headerMouseDragged(java.awt.event.MouseEvent evt) {
+ int x = evt.getXOnScreen();
+ int y = evt.getYOnScreen();
+ this.setLocation(x - xMouse, y - yMouse);
+ }
+}
\ No newline at end of file
diff --git a/src/views/Login.java b/src/views/Login.java
index fb6c7e93..7dcff6c1 100644
--- a/src/views/Login.java
+++ b/src/views/Login.java
@@ -26,7 +26,7 @@ public class Login extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel contentPane;
private JTextField txtUsuario;
- private JPasswordField txtContrasena;
+ private JPasswordField txtContraseña;
int xMouse, yMouse;
private JLabel labelExit;
@@ -116,9 +116,9 @@ public void mousePressed(MouseEvent e) {
txtUsuario.setText("");
txtUsuario.setForeground(Color.black);
}
- if (String.valueOf(txtContrasena.getPassword()).isEmpty()) {
- txtContrasena.setText("********");
- txtContrasena.setForeground(Color.gray);
+ if (String.valueOf(txtContraseña.getPassword()).isEmpty()) {
+ txtContraseña.setText("********");
+ txtContraseña.setForeground(Color.gray);
}
}
});
@@ -146,14 +146,14 @@ public void mousePressed(MouseEvent e) {
separator_1.setBounds(65, 393, 324, 2);
panel.add(separator_1);
- txtContrasena = new JPasswordField();
- txtContrasena.setText("********");
- txtContrasena.addMouseListener(new MouseAdapter() {
+ txtContraseña = new JPasswordField();
+ txtContraseña.setText("********");
+ txtContraseña.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
- if (String.valueOf(txtContrasena.getPassword()).equals("********")) {
- txtContrasena.setText("");
- txtContrasena.setForeground(Color.black);
+ if (String.valueOf(txtContraseña.getPassword()).equals("********")) {
+ txtContraseña.setText("");
+ txtContraseña.setForeground(Color.black);
}
if (txtUsuario.getText().isEmpty()) {
txtUsuario.setText("Ingrese su nombre de usuario");
@@ -161,11 +161,11 @@ public void mousePressed(MouseEvent e) {
}
}
});
- txtContrasena.setForeground(SystemColor.activeCaptionBorder);
- txtContrasena.setFont(new Font("Roboto", Font.PLAIN, 16));
- txtContrasena.setBorder(javax.swing.BorderFactory.createEmptyBorder());
- txtContrasena.setBounds(65, 353, 324, 32);
- panel.add(txtContrasena);
+ txtContraseña.setForeground(SystemColor.activeCaptionBorder);
+ txtContraseña.setFont(new Font("Roboto", Font.PLAIN, 16));
+ txtContraseña.setBorder(javax.swing.BorderFactory.createEmptyBorder());
+ txtContraseña.setBounds(65, 353, 324, 32);
+ panel.add(txtContraseña);
JLabel LabelUsuario = new JLabel("USUARIO");
LabelUsuario.setForeground(SystemColor.textInactiveText);
@@ -238,7 +238,7 @@ private void Login() {
String Usuario= "admin";
String Contraseña="admin";
- String contrase=new String (txtContrasena.getPassword());
+ String contrase=new String (txtContraseña.getPassword());
if(txtUsuario.getText().equals(Usuario) && contrase.equals(Contraseña)){
MenuUsuario menu = new MenuUsuario();
@@ -247,7 +247,14 @@ private void Login() {
}else {
JOptionPane.showMessageDialog(this, "Usuario o Contraseña no válidos");
}
- }
+ }
+
+ public String getNombre(){
+ return txtUsuario.getText();
+ }
+ public String getContaseña(){
+ return new String(txtContraseña.getPassword());
+ }
private void headerMousePressed(java.awt.event.MouseEvent evt) {
xMouse = evt.getX();
yMouse = evt.getY();
diff --git a/src/views/MenuPrincipal.java b/src/views/MenuPrincipal.java
index 8a9739d4..e82afaed 100644
--- a/src/views/MenuPrincipal.java
+++ b/src/views/MenuPrincipal.java
@@ -77,7 +77,7 @@ public MenuPrincipal() {
panel.add(panel_1);
panel_1.setLayout(null);
- JLabel lblCopyR = new JLabel("Desarrollado por Fulanita de Tal © 2023");
+ JLabel lblCopyR = new JLabel("Desarrollado por rhodericus © 2023");
lblCopyR.setBounds(315, 11, 284, 19);
lblCopyR.setForeground(new Color(240, 248, 255));
lblCopyR.setFont(new Font("Roboto", Font.PLAIN, 16));
diff --git a/src/views/RegistroHuesped.java b/src/views/RegistroHuesped.java
index eb437264..0ecbe2e4 100644
--- a/src/views/RegistroHuesped.java
+++ b/src/views/RegistroHuesped.java
@@ -7,19 +7,23 @@
import javax.swing.JTextField;
import java.awt.Color;
import com.toedter.calendar.JDateChooser;
+import jdbc.controller.HuespedesController;
+import jdbc.controller.ReservasController;
+import jdbc.modelo.Huespedes;
+import jdbc.modelo.Reserva;
import javax.swing.JComboBox;
import javax.swing.DefaultComboBoxModel;
+import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import java.awt.Font;
-import javax.swing.ImageIcon;
-import javax.swing.JButton;
import java.awt.SystemColor;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.text.Format;
+import java.util.List;
import java.awt.event.ActionEvent;
import java.awt.Toolkit;
import javax.swing.SwingConstants;
@@ -35,9 +39,12 @@ public class RegistroHuesped extends JFrame {
private JTextField txtNreserva;
private JDateChooser txtFechaN;
private JComboBox txtNacionalidad;
+ private HuespedesController huespedesController;
+ private ReservasController reservasController;
private JLabel labelExit;
private JLabel labelAtras;
int xMouse, yMouse;
+ int id;
/**
* Launch the application.
@@ -46,7 +53,7 @@ public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
- RegistroHuesped frame = new RegistroHuesped();
+ RegistroHuesped frame = new RegistroHuesped(0);
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
@@ -58,8 +65,11 @@ public void run() {
/**
* Create the frame.
*/
- public RegistroHuesped() {
-
+ public RegistroHuesped(int idReserva) {
+ this.huespedesController = new HuespedesController();
+ this.reservasController = new ReservasController();
+
+
setIconImage(Toolkit.getDefaultToolkit().getImage(RegistroHuesped.class.getResource("/imagenes/lOGO-50PX.png")));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 910, 634);
@@ -70,60 +80,47 @@ public RegistroHuesped() {
setLocationRelativeTo(null);
setUndecorated(true);
contentPane.setLayout(null);
-
+
+
JPanel header = new JPanel();
- header.setBounds(0, 0, 910, 36);
- header.addMouseMotionListener(new MouseMotionAdapter() {
- @Override
- public void mouseDragged(MouseEvent e) {
- headerMouseDragged(e);
-
- }
- });
- header.addMouseListener(new MouseAdapter() {
- @Override
- public void mousePressed(MouseEvent e) {
- headerMousePressed(e);
- }
- });
header.setLayout(null);
header.setBackground(SystemColor.text);
header.setOpaque(false);
header.setBounds(0, 0, 910, 36);
contentPane.add(header);
-
+
JPanel btnAtras = new JPanel();
btnAtras.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
ReservasView reservas = new ReservasView();
reservas.setVisible(true);
- dispose();
+ dispose();
}
@Override
public void mouseEntered(MouseEvent e) {
btnAtras.setBackground(Color.white);
labelAtras.setForeground(Color.black);
- }
+ }
@Override
public void mouseExited(MouseEvent e) {
- btnAtras.setBackground(new Color(12, 138, 199));
- labelAtras.setForeground(Color.white);
+ btnAtras.setBackground(new Color(12, 138, 199));
+ labelAtras.setForeground(Color.white);
}
});
btnAtras.setLayout(null);
btnAtras.setBackground(new Color(12, 138, 199));
btnAtras.setBounds(0, 0, 53, 36);
header.add(btnAtras);
-
+
labelAtras = new JLabel("<");
labelAtras.setHorizontalAlignment(SwingConstants.CENTER);
labelAtras.setForeground(Color.WHITE);
labelAtras.setFont(new Font("Roboto", Font.PLAIN, 23));
labelAtras.setBounds(0, 0, 53, 36);
btnAtras.add(labelAtras);
-
-
+
+
txtNombre = new JTextField();
txtNombre.setFont(new Font("Roboto", Font.PLAIN, 16));
txtNombre.setBounds(560, 135, 285, 33);
@@ -131,7 +128,7 @@ public void mouseExited(MouseEvent e) {
txtNombre.setColumns(10);
txtNombre.setBorder(javax.swing.BorderFactory.createEmptyBorder());
contentPane.add(txtNombre);
-
+
txtApellido = new JTextField();
txtApellido.setFont(new Font("Roboto", Font.PLAIN, 16));
txtApellido.setBounds(560, 204, 285, 33);
@@ -139,51 +136,51 @@ public void mouseExited(MouseEvent e) {
txtApellido.setBackground(Color.WHITE);
txtApellido.setBorder(javax.swing.BorderFactory.createEmptyBorder());
contentPane.add(txtApellido);
-
+
txtFechaN = new JDateChooser();
txtFechaN.setBounds(560, 278, 285, 36);
txtFechaN.getCalendarButton().setIcon(new ImageIcon(RegistroHuesped.class.getResource("/imagenes/icon-reservas.png")));
txtFechaN.getCalendarButton().setBackground(SystemColor.textHighlight);
txtFechaN.setDateFormatString("yyyy-MM-dd");
contentPane.add(txtFechaN);
-
+
txtNacionalidad = new JComboBox();
txtNacionalidad.setBounds(560, 350, 289, 36);
txtNacionalidad.setBackground(SystemColor.text);
txtNacionalidad.setFont(new Font("Roboto", Font.PLAIN, 16));
txtNacionalidad.setModel(new DefaultComboBoxModel(new String[] {"afgano-afgana", "alemán-", "alemana", "árabe-árabe", "argentino-argentina", "australiano-australiana", "belga-belga", "boliviano-boliviana", "brasileño-brasileña", "camboyano-camboyana", "canadiense-canadiense", "chileno-chilena", "chino-china", "colombiano-colombiana", "coreano-coreana", "costarricense-costarricense", "cubano-cubana", "danés-danesa", "ecuatoriano-ecuatoriana", "egipcio-egipcia", "salvadoreño-salvadoreña", "escocés-escocesa", "español-española", "estadounidense-estadounidense", "estonio-estonia", "etiope-etiope", "filipino-filipina", "finlandés-finlandesa", "francés-francesa", "galés-galesa", "griego-griega", "guatemalteco-guatemalteca", "haitiano-haitiana", "holandés-holandesa", "hondureño-hondureña", "indonés-indonesa", "inglés-inglesa", "iraquí-iraquí", "iraní-iraní", "irlandés-irlandesa", "israelí-israelí", "italiano-italiana", "japonés-japonesa", "jordano-jordana", "laosiano-laosiana", "letón-letona", "letonés-letonesa", "malayo-malaya", "marroquí-marroquí", "mexicano-mexicana", "nicaragüense-nicaragüense", "noruego-noruega", "neozelandés-neozelandesa", "panameño-panameña", "paraguayo-paraguaya", "peruano-peruana", "polaco-polaca", "portugués-portuguesa", "puertorriqueño-puertorriqueño", "dominicano-dominicana", "rumano-rumana", "ruso-rusa", "sueco-sueca", "suizo-suiza", "tailandés-tailandesa", "taiwanes-taiwanesa", "turco-turca", "ucraniano-ucraniana", "uruguayo-uruguaya", "venezolano-venezolana", "vietnamita-vietnamita"}));
contentPane.add(txtNacionalidad);
-
+
JLabel lblNombre = new JLabel("NOMBRE");
lblNombre.setBounds(562, 119, 253, 14);
lblNombre.setForeground(SystemColor.textInactiveText);
lblNombre.setFont(new Font("Roboto Black", Font.PLAIN, 18));
contentPane.add(lblNombre);
-
+
JLabel lblApellido = new JLabel("APELLIDO");
lblApellido.setBounds(560, 189, 255, 14);
lblApellido.setForeground(SystemColor.textInactiveText);
lblApellido.setFont(new Font("Roboto Black", Font.PLAIN, 18));
contentPane.add(lblApellido);
-
- JLabel lblFechaN = new JLabel("FECHA DE NACIMIENTO");
- lblFechaN.setBounds(560, 256, 255, 14);
- lblFechaN.setForeground(SystemColor.textInactiveText);
- lblFechaN.setFont(new Font("Roboto Black", Font.PLAIN, 18));
- contentPane.add(lblFechaN);
-
+
+ JLabel lblNacimiento = new JLabel("FECHA DE NACIMIENTO");
+ lblNacimiento.setBounds(560, 256, 255, 14);
+ lblNacimiento.setForeground(SystemColor.textInactiveText);
+ lblNacimiento.setFont(new Font("Roboto Black", Font.PLAIN, 18));
+ contentPane.add(lblNacimiento);
+
JLabel lblNacionalidad = new JLabel("NACIONALIDAD");
lblNacionalidad.setBounds(560, 326, 255, 14);
lblNacionalidad.setForeground(SystemColor.textInactiveText);
lblNacionalidad.setFont(new Font("Roboto Black", Font.PLAIN, 18));
contentPane.add(lblNacionalidad);
-
+
JLabel lblTelefono = new JLabel("TELÉFONO");
lblTelefono.setBounds(562, 406, 253, 14);
lblTelefono.setForeground(SystemColor.textInactiveText);
lblTelefono.setFont(new Font("Roboto Black", Font.PLAIN, 18));
contentPane.add(lblTelefono);
-
+
txtTelefono = new JTextField();
txtTelefono.setFont(new Font("Roboto", Font.PLAIN, 16));
txtTelefono.setBounds(560, 424, 285, 33);
@@ -191,98 +188,106 @@ public void mouseExited(MouseEvent e) {
txtTelefono.setBackground(Color.WHITE);
txtTelefono.setBorder(javax.swing.BorderFactory.createEmptyBorder());
contentPane.add(txtTelefono);
-
- JLabel lblTitulo = new JLabel("REGISTRO HUÉSPED");
- lblTitulo.setBounds(606, 55, 234, 42);
- lblTitulo.setForeground(new Color(12, 138, 199));
- lblTitulo.setFont(new Font("Roboto Black", Font.PLAIN, 23));
- contentPane.add(lblTitulo);
-
- JLabel lblNumeroReserva = new JLabel("NÚMERO DE RESERVA");
- lblNumeroReserva.setBounds(560, 474, 253, 14);
- lblNumeroReserva.setForeground(SystemColor.textInactiveText);
- lblNumeroReserva.setFont(new Font("Roboto Black", Font.PLAIN, 18));
- contentPane.add(lblNumeroReserva);
-
+
+ JLabel lblNewLabel_4 = new JLabel("REGISTRO HUÉSPED");
+ lblNewLabel_4.setBounds(606, 55, 234, 42);
+ lblNewLabel_4.setForeground(new Color(12, 138, 199));
+ lblNewLabel_4.setFont(new Font("Roboto Black", Font.PLAIN, 23));
+ contentPane.add(lblNewLabel_4);
+
+ JLabel lblNreserva = new JLabel("NÚMERO DE RESERVA");
+ lblNreserva.setBounds(560, 474, 253, 14);
+ lblNreserva.setForeground(SystemColor.textInactiveText);
+ lblNreserva.setFont(new Font("Roboto Black", Font.PLAIN, 18));
+ contentPane.add(lblNreserva);
+
txtNreserva = new JTextField();
+
txtNreserva.setFont(new Font("Roboto", Font.PLAIN, 16));
txtNreserva.setBounds(560, 495, 285, 33);
txtNreserva.setColumns(10);
txtNreserva.setBackground(Color.WHITE);
txtNreserva.setBorder(javax.swing.BorderFactory.createEmptyBorder());
+ txtNreserva.setEditable(false);
+ System.out.println(idReserva);
+ String id = String.valueOf(idReserva);
+ txtNreserva.setText(id);
contentPane.add(txtNreserva);
-
+
+
+
JSeparator separator_1_2 = new JSeparator();
separator_1_2.setBounds(560, 170, 289, 2);
separator_1_2.setForeground(new Color(12, 138, 199));
separator_1_2.setBackground(new Color(12, 138, 199));
contentPane.add(separator_1_2);
-
+
JSeparator separator_1_2_1 = new JSeparator();
separator_1_2_1.setBounds(560, 240, 289, 2);
separator_1_2_1.setForeground(new Color(12, 138, 199));
separator_1_2_1.setBackground(new Color(12, 138, 199));
contentPane.add(separator_1_2_1);
-
+
JSeparator separator_1_2_2 = new JSeparator();
separator_1_2_2.setBounds(560, 314, 289, 2);
separator_1_2_2.setForeground(new Color(12, 138, 199));
separator_1_2_2.setBackground(new Color(12, 138, 199));
contentPane.add(separator_1_2_2);
-
+
JSeparator separator_1_2_3 = new JSeparator();
separator_1_2_3.setBounds(560, 386, 289, 2);
separator_1_2_3.setForeground(new Color(12, 138, 199));
separator_1_2_3.setBackground(new Color(12, 138, 199));
contentPane.add(separator_1_2_3);
-
+
JSeparator separator_1_2_4 = new JSeparator();
separator_1_2_4.setBounds(560, 457, 289, 2);
separator_1_2_4.setForeground(new Color(12, 138, 199));
separator_1_2_4.setBackground(new Color(12, 138, 199));
contentPane.add(separator_1_2_4);
-
+
JSeparator separator_1_2_5 = new JSeparator();
separator_1_2_5.setBounds(560, 529, 289, 2);
separator_1_2_5.setForeground(new Color(12, 138, 199));
separator_1_2_5.setBackground(new Color(12, 138, 199));
contentPane.add(separator_1_2_5);
-
+
JPanel btnguardar = new JPanel();
btnguardar.setBounds(723, 560, 122, 35);
btnguardar.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
+ guardarHuesped();
}
});
btnguardar.setLayout(null);
btnguardar.setBackground(new Color(12, 138, 199));
contentPane.add(btnguardar);
btnguardar.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
-
+
JLabel labelGuardar = new JLabel("GUARDAR");
labelGuardar.setHorizontalAlignment(SwingConstants.CENTER);
labelGuardar.setForeground(Color.WHITE);
labelGuardar.setFont(new Font("Roboto", Font.PLAIN, 18));
labelGuardar.setBounds(0, 0, 122, 35);
btnguardar.add(labelGuardar);
-
+
JPanel panel = new JPanel();
panel.setBounds(0, 0, 489, 634);
panel.setBackground(new Color(12, 138, 199));
contentPane.add(panel);
panel.setLayout(null);
-
+
JLabel imagenFondo = new JLabel("");
imagenFondo.setBounds(0, 121, 479, 502);
panel.add(imagenFondo);
imagenFondo.setIcon(new ImageIcon(RegistroHuesped.class.getResource("/imagenes/registro.png")));
-
+
JLabel logo = new JLabel("");
logo.setBounds(194, 39, 104, 107);
panel.add(logo);
logo.setIcon(new ImageIcon(RegistroHuesped.class.getResource("/imagenes/Ha-100px.png")));
-
+
JPanel btnexit = new JPanel();
btnexit.setBounds(857, 0, 53, 36);
contentPane.add(btnexit);
@@ -297,16 +302,16 @@ public void mouseClicked(MouseEvent e) {
public void mouseEntered(MouseEvent e) {
btnexit.setBackground(Color.red);
labelExit.setForeground(Color.white);
- }
+ }
@Override
public void mouseExited(MouseEvent e) {
- btnexit.setBackground(Color.white);
- labelExit.setForeground(Color.black);
+ btnexit.setBackground(Color.white);
+ labelExit.setForeground(Color.black);
}
});
btnexit.setLayout(null);
btnexit.setBackground(Color.white);
-
+
labelExit = new JLabel("X");
labelExit.setBounds(0, 0, 53, 36);
btnexit.add(labelExit);
@@ -314,18 +319,22 @@ public void mouseExited(MouseEvent e) {
labelExit.setForeground(SystemColor.black);
labelExit.setFont(new Font("Roboto", Font.PLAIN, 18));
}
-
-
- //Código que permite mover la ventana por la pantalla según la posición de "x" y "y"
- private void headerMousePressed(java.awt.event.MouseEvent evt) {
- xMouse = evt.getX();
- yMouse = evt.getY();
- }
-
- private void headerMouseDragged(java.awt.event.MouseEvent evt) {
- int x = evt.getXOnScreen();
- int y = evt.getYOnScreen();
- this.setLocation(x - xMouse, y - yMouse);
-}
-
-}
+
+
+ private void guardarHuesped() {
+
+ if (txtFechaN.getDate() != null && !txtNombre.equals("") && !txtApellido.equals("") && !txtTelefono.equals("")) {
+ String fechaN = ((JTextField)txtFechaN.getDateEditor().getUiComponent()).getText();
+ int nreserva = Integer.parseInt(txtNreserva.getText());
+ Huespedes huespedes = new Huespedes(txtNombre.getText(), txtApellido.getText(), java.sql.Date.valueOf(fechaN), txtNacionalidad.getSelectedItem().toString(),txtTelefono.getText(), nreserva);
+ this.huespedesController.guardar(huespedes);
+ Exito exito = new Exito();
+ exito.setVisible(true);
+ dispose();
+ } else {
+ JOptionPane.showMessageDialog(this, "Debes llenar todos los campos.");
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/src/views/ReservasView.java b/src/views/ReservasView.java
index d3a190e2..1c985209 100644
--- a/src/views/ReservasView.java
+++ b/src/views/ReservasView.java
@@ -11,6 +11,9 @@
import java.awt.Color;
import javax.swing.JTextField;
import com.toedter.calendar.JDateChooser;
+import jdbc.controller.ReservasController;
+import jdbc.modelo.Reserva;
+
import java.awt.Font;
import javax.swing.JComboBox;
import javax.swing.DefaultComboBoxModel;
@@ -21,10 +24,13 @@
import java.awt.Toolkit;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeEvent;
+import java.util.Calendar;
import javax.swing.JSeparator;
import javax.swing.SwingConstants;
import javax.swing.border.LineBorder;
+import static javax.swing.JOptionPane.*;
+
@SuppressWarnings("serial")
public class ReservasView extends JFrame {
@@ -38,6 +44,9 @@ public class ReservasView extends JFrame {
private JLabel labelExit;
private JLabel labelAtras;
+ private ReservasController reservasController;
+
+
/**
* Launch the application.
*/
@@ -58,7 +67,11 @@ public void run() {
* Create the frame.
*/
public ReservasView() {
- super("Reserva");
+ // Instanciando la clase Reservas controller
+ this.reservasController = new ReservasController();
+
+ // super("Reserva");
+
setIconImage(Toolkit.getDefaultToolkit().getImage(ReservasView.class.getResource("/imagenes/aH-40px.png")));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 910, 560);
@@ -68,9 +81,9 @@ public ReservasView() {
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
- setResizable(false);
- setLocationRelativeTo(null);
- setUndecorated(true);
+ setResizable(false); //Evita que la ventana sea redimensionada
+ setLocationRelativeTo(null); // hace que la ventana siempre este en el centro de la pantalla
+ setUndecorated(true); //retira la barra superior de la ventaba
@@ -100,7 +113,13 @@ public ReservasView() {
separator_1_1.setBounds(68, 281, 289, 11);
separator_1_1.setBackground(SystemColor.textHighlight);
panel.add(separator_1_1);
-
+
+ JLabel lblValorSimbolo = new JLabel("$/.");
+ lblValorSimbolo.setVisible(true);
+ lblValorSimbolo.setBounds(121, 332, 17, 25);
+ lblValorSimbolo.setForeground (SystemColor.textHighlight);
+ lblValorSimbolo.setFont(new Font("Roboto Black", Font.PLAIN,17));
+
JLabel lblCheckIn = new JLabel("FECHA DE CHECK IN");
lblCheckIn.setForeground(SystemColor.textInactiveText);
lblCheckIn.setBounds(68, 136, 169, 14);
@@ -244,6 +263,16 @@ public void mouseExited(MouseEvent e) {
//Campos que guardaremos en la base de datos
txtFechaEntrada = new JDateChooser();
+
+ txtFechaEntrada.addPropertyChangeListener(new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ calcularValor(txtFechaEntrada, txtFechaSalida);
+
+ }
+
+ });
+
txtFechaEntrada.getCalendarButton().setBackground(SystemColor.textHighlight);
txtFechaEntrada.getCalendarButton().setIcon(new ImageIcon(ReservasView.class.getResource("/imagenes/icon-reservas.png")));
txtFechaEntrada.getCalendarButton().setFont(new Font("Roboto", Font.PLAIN, 12));
@@ -256,6 +285,14 @@ public void mouseExited(MouseEvent e) {
panel.add(txtFechaEntrada);
txtFechaSalida = new JDateChooser();
+
+ txtFechaSalida.addPropertyChangeListener(new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ calcularValor(txtFechaEntrada, txtFechaSalida);
+ }
+ });
+
txtFechaSalida.getCalendarButton().setIcon(new ImageIcon(ReservasView.class.getResource("/imagenes/icon-reservas.png")));
txtFechaSalida.getCalendarButton().setFont(new Font("Roboto", Font.PLAIN, 11));
txtFechaSalida.setBounds(68, 246, 289, 35);
@@ -296,21 +333,60 @@ public void propertyChange(PropertyChangeEvent evt) {
btnsiguiente.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
- if (ReservasView.txtFechaEntrada.getDate() != null && ReservasView.txtFechaSalida.getDate() != null) {
- RegistroHuesped registro = new RegistroHuesped();
- registro.setVisible(true);
+ guardarReserva();
+
+ if (ReservasView.txtFechaEntrada.getDate() != null && ReservasView.txtFechaSalida.getDate() != null) {
+ guardarReserva();
} else {
- JOptionPane.showMessageDialog(null, "Debes llenar todos los campos.");
+ showMessageDialog(null, "Debes llenar todos los campos.");
}
}
});
+ // Botón Siguiente
btnsiguiente.setLayout(null);
btnsiguiente.setBackground(SystemColor.textHighlight);
btnsiguiente.setBounds(238, 493, 122, 35);
panel.add(btnsiguiente);
btnsiguiente.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
+ btnsiguiente.add(lblSiguiente);
+
+ }
+
+ private void calcularValor(JDateChooser txtFechaEntrada, JDateChooser txtFechaSalida) {
+ if(txtFechaEntrada.getDate() !=null && txtFechaSalida.getDate() !=null){
+ if(txtFechaEntrada.getDate().after(txtFechaSalida.getDate())) {
+ showMessageDialog(null, "La fecha de entrada no puede ser porterior a la de salida",
+ "error de fechas", ERROR_MESSAGE);
+ return;
+ }
+ Calendar inicio = txtFechaEntrada.getCalendar();
+ Calendar fin = txtFechaSalida.getCalendar();
+ int dias= -1;
+ int noche = 20;
+ int valor;
+ while(inicio.before(fin) || inicio.equals(fin)) {
+ dias++;
+ inicio.add(Calendar.DATE, 1);
+ }
+ valor = dias * noche;
+ System.out.println(valor);
+ txtValor.setText("" + valor);
+ }
+ }
+
+
+ private void guardarReserva(){
+ String fecha_entrada = ((JTextField)txtFechaEntrada.getDateEditor().getUiComponent()).getText();
+ String fecha_salida = ((JTextField)txtFechaSalida.getDateEditor().getUiComponent()).getText();
+ Reserva nuevaReserva = new Reserva(java.sql.Date.valueOf(fecha_entrada), java.sql.Date.valueOf(fecha_salida),
+ txtValor.getText() ,txtFormaPago.getSelectedItem().toString());
+ reservasController.guardar(nuevaReserva);
+ showMessageDialog(contentPane, "Reserva guardada con éxito, id:" + nuevaReserva.getId());
+ RegistroHuesped huesped = new RegistroHuesped(nuevaReserva.getId());
+ huesped.setVisible(true);
+ dispose();
}
//Código que permite mover la ventana por la pantalla según la posición de "x" y "y"