├── .idea
├── .gitignore
├── vcs.xml
├── misc.xml
├── libraries
│ ├── mysql_connector_j_8_3_02.xml
│ ├── mysql_connector_j_8_3_0.xml
│ └── mysql_connector_j_8_3_01.xml
├── modules.xml
└── uiDesigner.xml
├── mysql-connector-j-8.3.0.jar
├── src
├── Main.java
├── core
│ ├── Config.java
│ ├── Helper.java
│ └── DBConnector.java
├── entity
│ ├── RoomFeature.java
│ ├── Pension.java
│ ├── HotelFeature.java
│ ├── Season.java
│ ├── Reservation.java
│ ├── User.java
│ ├── Hotel.java
│ ├── Room.java
│ └── SearchResult.java
├── view
│ ├── Layout.java
│ ├── LoginGUI.java
│ ├── ReservationGUI.java
│ ├── AddRoomPropertyGUI.java
│ ├── AddRoomPropertyGUI.form
│ ├── AdminGUI.java
│ ├── LoginGUI.form
│ ├── ReservationGUI.form
│ ├── AdminGUI.form
│ ├── EmployeeHotelDetailGUI.java
│ ├── EmployeeGUI.java
│ ├── EmployeeHotelDetailGUI.form
│ └── EmployeeGUI.form
├── business
│ ├── LoginManager.java
│ ├── AdminManager.java
│ ├── EmployeeHotelDetailManager.java
│ └── EmployeeManager.java
└── dao
│ ├── LoginDao.java
│ ├── UserDao.java
│ ├── AdminDao.java
│ ├── EmployeeHotelDetailDao.java
│ └── EmployeeDao.java
├── .gitignore
├── tourismAgency.iml
├── README.md
└── patika_turizm.sql
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/mysql-connector-j-8.3.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mefatihbalki/TurizmOtel/HEAD/mysql-connector-j-8.3.0.jar
--------------------------------------------------------------------------------
/src/Main.java:
--------------------------------------------------------------------------------
1 | import business.LoginManager;
2 | import dao.LoginDao;
3 | import view.LoginGUI;
4 |
5 | public class Main {
6 | public static void main(String[] args) {
7 | LoginGUI run = new LoginGUI(new LoginManager(new LoginDao()));
8 | }
9 | }
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/libraries/mysql_connector_j_8_3_02.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/libraries/mysql_connector_j_8_3_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/mysql_connector_j_8_3_01.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/core/Config.java:
--------------------------------------------------------------------------------
1 | package core;
2 | public class Config {
3 | public final static String PROJECT_TITLE = "TurizmOtel";
4 | public final static String DB_URL = "jdbc:mysql://localhost/patika_turizm";
5 | public final static String DB_USERNAME = "root";
6 | public final static String DB_PASSWORD = "mysql";
7 | }
8 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ### IntelliJ IDEA ###
2 | out/
3 | !**/src/main/**/out/
4 | !**/src/test/**/out/
5 |
6 | ### Eclipse ###
7 | .apt_generated
8 | .classpath
9 | .factorypath
10 | .project
11 | .settings
12 | .springBeans
13 | .sts4-cache
14 | bin/
15 | !**/src/main/**/bin/
16 | !**/src/test/**/bin/
17 |
18 | ### NetBeans ###
19 | /nbproject/private/
20 | /nbbuild/
21 | /dist/
22 | /nbdist/
23 | /.nb-gradle/
24 |
25 | ### VS Code ###
26 | .vscode/
27 |
28 | ### Mac OS ###
29 | .DS_Store
--------------------------------------------------------------------------------
/src/entity/RoomFeature.java:
--------------------------------------------------------------------------------
1 | package entity;
2 |
3 | public class RoomFeature {
4 | private int roomID;
5 | private String featureName;
6 |
7 | public RoomFeature(int roomID, String featureName) {
8 | this.roomID = roomID;
9 | this.featureName = featureName;
10 | }
11 |
12 | public int getRoomID() {
13 | return roomID;
14 | }
15 |
16 |
17 | public String getFeatureName() {
18 | return featureName;
19 | }
20 |
21 | public void setFeatureName(String featureName) {
22 | this.featureName = featureName;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/view/Layout.java:
--------------------------------------------------------------------------------
1 | package view;
2 | import core.Config;
3 | import javax.swing.*;
4 |
5 | public abstract class Layout extends JFrame {
6 | public void guiInitialize(int width,int height){
7 | setSize(width,height);
8 | setLocationRelativeTo(null);
9 |
10 | setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
11 | setTitle(Config.PROJECT_TITLE);
12 |
13 | setVisible(true);
14 | }
15 | public int getTableSelectedRow(JTable table, int index){
16 | return Integer.parseInt(table.getValueAt(table.getSelectedRow(),index).toString());
17 | }
18 |
19 |
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/src/entity/Pension.java:
--------------------------------------------------------------------------------
1 | package entity;
2 |
3 | public class Pension {
4 | private int id;
5 | private String pensionName;
6 |
7 | public Pension(int id, String pensionName) {
8 | this.id = id;
9 | this.pensionName = pensionName;
10 | }
11 |
12 | public int getId() {
13 | return id;
14 | }
15 |
16 | public String getPensionName() {
17 | return pensionName;
18 | }
19 |
20 | public void setPensionName(String pensionName) {
21 | this.pensionName = pensionName;
22 | }
23 |
24 | public String toString(){
25 | return this.pensionName;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/entity/HotelFeature.java:
--------------------------------------------------------------------------------
1 | package entity;
2 |
3 | public class HotelFeature {
4 | private int id;
5 | private String featureName;
6 |
7 | public HotelFeature(int id, String feature_name) {
8 | this.id = id;
9 | this.featureName = feature_name;
10 | }
11 |
12 | public int getId() {
13 | return id;
14 | }
15 |
16 | public String getFeatureName() {
17 | return featureName;
18 | }
19 |
20 | public void setFeature_name(String feature_name) {
21 | this.featureName = feature_name;
22 | }
23 |
24 | public String toString(){
25 | return this.featureName;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/tourismAgency.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Kullanılan Teknolojiler
2 |
3 | - Java
4 | - Java Swing (GUI)
5 | - MySQL
6 |
7 | Proje Yapısı src dizini altında Java kaynak kodları bulunmaktadır.
8 |
9 | *Entity: Veritabanı tablolarını temsil eden model sınıfları
10 |
11 | *Dao: Veritabanı işlemlerini gerçekleştiren DAO (Data Access Object) sınıfları
12 |
13 | *Business: İş mantığını gerçekleştiren servis sınıfları
14 |
15 | *Views: Kullanıcı arayüzünü oluşturan Swing GUI sınıfları
16 |
17 | *Core: Dizinin altında veritabanı oluşturma dosyası bulunmaktadır.
18 |
19 | - Admin: Acente çalışanı ekleme, silme, güncelleme
20 |
21 | - Acente Çalışanı (Personel) : Otel ekleme - Listeleme, Oda ekleme - Listeleme, Sezon ekleme - Listeleme, Fiyat yönetimi, Oda Arama ve Rezervasyon yapma ve Güncelleme.
22 |
23 | Proje çalışma şekli ve işlemlerin kullanılabilirliği üzerine kısa bir kullanış videosu.
24 | (https://www.youtube.com/watch?v=zjVaj5-O3k0)
25 |
--------------------------------------------------------------------------------
/src/core/Helper.java:
--------------------------------------------------------------------------------
1 | package core;
2 |
3 | import javax.swing.*;
4 |
5 | public class Helper {
6 |
7 | // Show a message dialog with the specified title and message
8 | public static void showMsg(String title, String message) {
9 | UIManager.put("OptionPane.okButtonText", "OK");
10 | UIManager.put("OptionPane.yesButtonText", "Yes");
11 | UIManager.put("OptionPane.noButtonText", "No");
12 | JOptionPane.showMessageDialog(null, message, title, JOptionPane.INFORMATION_MESSAGE);
13 | }
14 |
15 | // Text fld alanlarının boş olup olmadığını kontrol eden metod
16 | public static boolean isFieldEmpty(JTextField field) {
17 | return field.getText().isEmpty();
18 | }
19 |
20 | public static boolean confirm(String str) {
21 | String msg;
22 | switch (str) {
23 | case "sure":
24 | msg = "Are you sure you want to perform this action?";
25 | break;
26 | default:
27 | msg = str;
28 | break;
29 | }
30 | return JOptionPane.showConfirmDialog(null, msg, "Are you sure you want to proceed?", JOptionPane.YES_NO_OPTION) == 0;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/entity/Season.java:
--------------------------------------------------------------------------------
1 | package entity;
2 |
3 | public class Season {
4 | private int id;
5 | private int hotelID;
6 | private String seasonName;
7 | private String startDate;
8 | private String endDate;
9 |
10 | public Season(int id, int hotelID, String seasonName, String startDate, String endDate) {
11 | this.id = id;
12 | this.hotelID = hotelID;
13 | this.seasonName = seasonName;
14 | this.startDate = startDate;
15 | this.endDate = endDate;
16 | }
17 |
18 | @Override
19 | public String toString() {
20 | return this.seasonName;
21 | }
22 |
23 | public int getId() {
24 | return id;
25 | }
26 |
27 | public int getHotelID() {
28 | return hotelID;
29 | }
30 |
31 | public void setHotelID(int hotelID) {
32 | this.hotelID = hotelID;
33 | }
34 |
35 | public String getSeasonName() {
36 | return seasonName;
37 | }
38 |
39 | public void setSeasonName(String seasonName) {
40 | this.seasonName = seasonName;
41 | }
42 |
43 | public String getStartDate() {
44 | return startDate;
45 | }
46 |
47 | public void setStartDate(String startDate) {
48 | this.startDate = startDate;
49 | }
50 |
51 | public String getEndDate() {
52 | return endDate;
53 | }
54 |
55 | public void setEndDate(String endDate) {
56 | this.endDate = endDate;
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/src/business/LoginManager.java:
--------------------------------------------------------------------------------
1 | package business;
2 |
3 | import dao.LoginDao;
4 | import entity.User;
5 | import view.AdminGUI;
6 | import view.EmployeeGUI;
7 |
8 | import javax.swing.*;
9 |
10 | import static javax.swing.UIManager.setLookAndFeel;
11 |
12 | public class LoginManager {
13 |
14 | private final LoginDao loginDao;
15 |
16 | public LoginManager(LoginDao loginDao) {
17 | this.loginDao = loginDao;
18 | try {
19 | UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
20 | } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException e) {
21 | e.printStackTrace();
22 | }
23 |
24 | }
25 |
26 |
27 | public boolean login(String userName_tcNo, String password) {
28 | int id = loginDao.login(userName_tcNo, password);
29 | if (id != -1) {
30 | // Login which depends on user type
31 | User user = loginDao.getUserByID(id);
32 | switch (user.getUserType()) {
33 | case "admin":
34 | SwingUtilities.invokeLater(() -> {
35 | AdminGUI admin = new AdminGUI(user);
36 | admin.setVisible(true);
37 | });
38 | break;
39 | case "employee":
40 | SwingUtilities.invokeLater(() -> {
41 | EmployeeGUI employeeGUI = new EmployeeGUI(user);
42 | employeeGUI.setVisible(true);
43 | });
44 | break;
45 | }
46 | return true;
47 | }
48 | return false;
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/entity/Reservation.java:
--------------------------------------------------------------------------------
1 | package entity;
2 |
3 | public class Reservation {
4 | private int id;
5 | private int hotelID;
6 | private int roomID;
7 | private String customerName;
8 | private String customerTcNo;
9 | private String customerPhone;
10 | private String customerEmail;
11 | private int childNumber;
12 | private int adultNumber;
13 |
14 | public Reservation(int id,int hotelID, int roomID, String customerName, String customerTcNo, String customerPhone, String customerEmail, int childNumber, int adultNumber) {
15 | this.id=id;
16 | this.hotelID = hotelID;
17 | this.roomID = roomID;
18 | this.customerName = customerName;
19 | this.customerTcNo = customerTcNo;
20 | this.customerPhone = customerPhone;
21 | this.customerEmail = customerEmail;
22 | this.childNumber = childNumber;
23 | this.adultNumber = adultNumber;
24 | }
25 |
26 | public int getId() {
27 | return id;
28 | }
29 |
30 | public int getHotelID() {
31 | return hotelID;
32 | }
33 |
34 | public int getRoomID() {
35 | return roomID;
36 | }
37 |
38 | public String getCustomerName() {
39 | return customerName;
40 | }
41 |
42 | public String getCustomerTcNo() {
43 | return customerTcNo;
44 | }
45 |
46 | public String getCustomerPhone() {
47 | return customerPhone;
48 | }
49 |
50 | public String getCustomerEmail() {
51 | return customerEmail;
52 | }
53 |
54 | public int getChildNumber() {
55 | return childNumber;
56 | }
57 |
58 | public int getAdultNumber() {
59 | return adultNumber;
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/src/core/DBConnector.java:
--------------------------------------------------------------------------------
1 | package core;
2 |
3 | import java.sql.Connection;
4 | import java.sql.DriverManager;
5 | import java.sql.PreparedStatement;
6 |
7 | public class DBConnector {
8 | private Connection connection = null;
9 | private static DBConnector instance = null;
10 |
11 | private DBConnector() {
12 | try {
13 | // Establish a connection to the database using the provided credentials
14 | this.connection = DriverManager.getConnection(
15 | Config.DB_URL,
16 | Config.DB_USERNAME,
17 | Config.DB_PASSWORD);
18 |
19 | } catch (Exception e) {
20 | Helper.showMsg("Error", "Database Connection Error");
21 | }
22 | }
23 |
24 | // Get the current connection instance
25 | public Connection getConnection() {
26 | return connection;
27 | }
28 |
29 | // Get a singleton instance of the database connection
30 | public static Connection getConnectionInstance() {
31 | try {
32 | if (instance == null || instance.getConnection().isClosed()) {
33 | instance = new DBConnector();
34 | }
35 | } catch (Exception e) {
36 | e.printStackTrace();
37 | }
38 |
39 | return instance.getConnection();
40 | }
41 |
42 | // Get a PreparedStatement for a given SQL query
43 | public static PreparedStatement getPreparedStatement(String query) {
44 | PreparedStatement ps = null;
45 | try {
46 | ps = DBConnector.getConnectionInstance().prepareStatement(query);
47 | } catch (Exception e) {
48 | e.printStackTrace();
49 | }
50 | return ps;
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/src/entity/User.java:
--------------------------------------------------------------------------------
1 | package entity;
2 |
3 | public class User {
4 | private int userID;
5 | private String tcNo;
6 | private String username;
7 | private String password;
8 | private String name;
9 | private String surname;
10 | private String userType;
11 |
12 | public User(int userID, String tcNo, String username,String password, String name, String surname, String userType) {
13 | this.userID = userID;
14 | this.tcNo = tcNo;
15 | this.username = username;
16 | this.password=password;
17 | this.name = name;
18 | this.surname = surname;
19 | this.userType = userType;
20 | }
21 |
22 | public String getPassword() {
23 | return password;
24 | }
25 |
26 | public int getUserID() {
27 | return userID;
28 | }
29 |
30 | public String getTcNo() {
31 | return tcNo;
32 | }
33 |
34 | public void setTcNo(String tcNo) {
35 | this.tcNo = tcNo;
36 | }
37 |
38 | public String getUsername() {
39 | return username;
40 | }
41 |
42 | public void setUsername(String username) {
43 | this.username = username;
44 | }
45 |
46 | public String getName() {
47 | return name;
48 | }
49 |
50 | public void setName(String name) {
51 | this.name = name;
52 | }
53 |
54 | public String getSurname() {
55 | return surname;
56 | }
57 |
58 | public void setSurname(String surname) {
59 | this.surname = surname;
60 | }
61 |
62 | public String getUserType() {
63 | return userType;
64 | }
65 |
66 | public void setUserType(String userType) {
67 | this.userType = userType;
68 | }
69 |
70 |
71 | }
72 |
73 |
--------------------------------------------------------------------------------
/src/dao/LoginDao.java:
--------------------------------------------------------------------------------
1 | package dao;
2 |
3 | import core.DBConnector;
4 | import entity.User;
5 | import java.sql.PreparedStatement;
6 | import java.sql.ResultSet;
7 |
8 | public class LoginDao {
9 | public int login(String username_tcno, String password) {
10 | String query = "SELECT * FROM tbl_user WHERE ((tcNo=? OR username=?) AND password=?)";
11 | try(PreparedStatement ps = DBConnector.getPreparedStatement(query)){
12 | ps.setString(1,username_tcno);
13 | ps.setString(2,username_tcno);
14 | ps.setString(3,password);
15 | ResultSet rs = ps.executeQuery();
16 | //ps.close();
17 | //rs.close();
18 | if(rs.next()){
19 | return rs.getInt("id");
20 | }
21 | }catch (Exception e){
22 | e.printStackTrace();
23 | }
24 | return -1;
25 | }
26 | public User getUserByID(int id){
27 | User user = null;
28 | String query = "SELECT * FROM tbl_user WHERE id="+id;
29 | // PreparedStatement ve ResultSet ayrı yapıyorduk
30 | try(ResultSet rs = DBConnector.getPreparedStatement(query).executeQuery()){
31 | if(rs.next()){
32 | user = new User(rs.getInt("id"),
33 | rs.getString("tcNo"),
34 | rs.getString("username"),
35 | rs.getString("password"),
36 | rs.getString("name"),
37 | rs.getString("surname"),
38 | rs.getString("usertype"));
39 | }
40 | //rs.close();
41 | //ps.close();
42 | }catch (Exception e){
43 | e.printStackTrace();
44 | }
45 | return user;
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/src/business/AdminManager.java:
--------------------------------------------------------------------------------
1 | package business;
2 |
3 | import dao.AdminDao;
4 | import entity.User;
5 |
6 | import java.util.ArrayList;
7 |
8 | // Yönetici ile ilgili işlemler
9 | public class AdminManager {
10 |
11 | private final AdminDao adminDao; // Assuming AdminDao is the actual implementation
12 |
13 | // AdminManager'ı varsayılan bir AdminDao örneği ile başlatan varsayılan kurucu.
14 | public AdminManager() {
15 | this.adminDao = new AdminDao(); // Assuming AdminDao is the actual implementation
16 | }
17 |
18 | // Yeni kullanıcı ekleme
19 | public boolean addUser(String tcNo, String username, String password, String name, String surname, String userType) {
20 | try {
21 | return adminDao.addUser(tcNo, username, password, name, surname, userType);
22 | } catch (Exception e) {
23 | // Log the exception or print a detailed error message
24 | e.printStackTrace();
25 | return false;
26 | }
27 | }
28 | // kullanıcı bilgileri güncelleme
29 | public boolean updateUser(int userID, String tcNo, String username, String password, String name, String surname, String userType) {
30 | try {
31 | return adminDao.updateUser(userID, tcNo, username, password, name, surname, userType);
32 | } catch (Exception e) {
33 | // Log the exception or print a detailed error message
34 | e.printStackTrace();
35 | return false;
36 | }
37 | }
38 |
39 | // kullanıcı silme
40 | public boolean deleteUser(int userID) {
41 | return adminDao.deleteUser(userID);
42 | }
43 |
44 | // kullanıcı listeleme
45 | public ArrayList getUserList() {
46 | return adminDao.getUserList();
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/src/view/LoginGUI.java:
--------------------------------------------------------------------------------
1 | package view;
2 | import business.LoginManager;
3 | import core.Helper;
4 | import javax.swing.*;
5 | public class LoginGUI extends Layout {
6 | private JPanel container;
7 | private JTextField fld_username_tcno;
8 | private JPasswordField fld_password;
9 | private JButton btn_login;
10 | private LoginManager loginManager;
11 | public LoginGUI(LoginManager loginManager) {
12 | this.loginManager = loginManager;
13 |
14 | try {
15 | // nimbus kullanıldı
16 | UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
17 | } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException e) {
18 | e.printStackTrace();
19 | }
20 | SwingUtilities.invokeLater(() -> {
21 | add(container);
22 | guiInitialize(350, 250);
23 |
24 | // login butonu için action listener oluşturuldu
25 |
26 | btn_login.addActionListener(e -> {
27 |
28 | // ilgili alanların doluluğu kontrol edildiği yer
29 |
30 | if (Helper.isFieldEmpty(fld_username_tcno) || Helper.isFieldEmpty(fld_password)) {
31 | Helper.showMsg("Hata", "Lütfen ilgili alanları doldurunuz");
32 | } else {
33 |
34 | // giriş işleminin gerçekleşmesi için kontrollerin yapıldığı yer
35 |
36 | if (loginManager.login(fld_username_tcno.getText(), fld_password.getText())) {
37 | dispose();
38 | } else {
39 | Helper.showMsg("Uyarı", "Kullanıcı adı veya şifre hatalı !");
40 | }
41 | }
42 | });
43 | });
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/dao/UserDao.java:
--------------------------------------------------------------------------------
1 | package dao;
2 |
3 | import core.DBConnector;
4 | import entity.User;
5 |
6 | import java.sql.PreparedStatement;
7 | import java.sql.ResultSet;
8 | import java.sql.SQLException;
9 |
10 | public class UserDao {
11 | public int login(String username_tcno, String password) {
12 | String query = "SELECT * FROM tbl_user WHERE ((tcNo=? OR username=?) AND password=?)";
13 | try(PreparedStatement ps = DBConnector.getPreparedStatement(query)){
14 | ps.setString(1,username_tcno);
15 | ps.setString(2,username_tcno);
16 | ps.setString(3,password);
17 | ResultSet rs = ps.executeQuery();
18 | //ps.close();
19 | //rs.close();
20 | if(rs.next()){
21 | return rs.getInt("id");
22 | }
23 | }catch (Exception e){
24 | e.printStackTrace();
25 | }
26 | return -1;
27 | }
28 | public User getUserByID(int id){
29 | User user = null;
30 | String query = "SELECT * FROM tbl_user WHERE id="+id;
31 | try(PreparedStatement ps = DBConnector.getPreparedStatement(query)){
32 | ResultSet rs = ps.executeQuery();
33 | if(rs.next()){
34 | user = match(rs);
35 | }
36 | //rs.close();
37 | //ps.close();
38 | }catch (Exception e){
39 | e.printStackTrace();
40 | }
41 | return user;
42 | }
43 | private User match(ResultSet rs) throws SQLException {
44 | return new User(rs.getInt("id"),
45 | rs.getString("tcNo"),
46 | rs.getString("username"),
47 | rs.getString("password"),
48 | rs.getString("name"),
49 | rs.getString("surname"),
50 | rs.getString("usertype"));
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/src/view/ReservationGUI.java:
--------------------------------------------------------------------------------
1 | package view;
2 |
3 | import business.EmployeeManager;
4 | import core.Helper;
5 |
6 | import javax.swing.*;
7 |
8 | //Rezervasyon bilgileri
9 | public class ReservationGUI extends Layout {
10 | private EmployeeManager employeeManager;
11 | private JPanel container;
12 | private JTextField fld_customerName;
13 | private JTextField fld_customerTcNo;
14 | private JTextField fld_customerPhone;
15 | private JTextField fld_customerEmail;
16 | private JButton btn_reservation;
17 | private JLabel fld_totalPrice;
18 | public ReservationGUI(EmployeeGUI gui, EmployeeManager employeeManager, int hotelID, int roomID, int childNumber, int adultNumber,int adultPrice,int childPrice, int totalPrice) {
19 | add(container);
20 | guiInitialize(500,500);
21 | this.employeeManager = employeeManager;
22 | fld_totalPrice.setText(String.valueOf(totalPrice));
23 |
24 | btn_reservation.addActionListener(e -> {
25 | if(Helper.isFieldEmpty(fld_customerName) || Helper.isFieldEmpty(fld_customerTcNo) || Helper.isFieldEmpty(fld_customerPhone) || Helper.isFieldEmpty(fld_customerEmail)){
26 | Helper.showMsg("Uyarı !","İlgili alanları doldurun");
27 | }else{
28 | if(employeeManager.addReservation(
29 | hotelID,
30 | roomID,
31 | fld_customerName.getText(),
32 | fld_customerTcNo.getText(),
33 | fld_customerPhone.getText(),
34 | fld_customerEmail.getText(),
35 | childNumber,
36 | adultNumber)){
37 | employeeManager.decreaseStock(roomID);
38 | gui.loadRezervationList();
39 | Helper.showMsg("Başarılı !","Rezervasyon yapıldı");
40 | }
41 | }
42 | });
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/src/entity/Hotel.java:
--------------------------------------------------------------------------------
1 | package entity;
2 |
3 | public class Hotel {
4 | private final int hotelID;
5 | private String hotelName;
6 | private String city;
7 | private String region;
8 | private String address;
9 | private String hotelEmail;
10 | private String hotelPhoneNumber;
11 | private int hotelStars;
12 |
13 |
14 | public Hotel(int hotelID, String hotelName, String city, String region, String address, String hotelEmail, String hotelPhoneNumber, int hotelStars) {
15 | this.hotelID = hotelID;
16 | this.hotelName = hotelName;
17 | this.city = city;
18 | this.region = region;
19 | this.address = address;
20 | this.hotelEmail = hotelEmail;
21 | this.hotelPhoneNumber = hotelPhoneNumber;
22 | this.hotelStars = hotelStars;
23 | }
24 |
25 | public String getCity() {
26 | return city;
27 | }
28 |
29 | public String getRegion() {
30 | return region;
31 | }
32 |
33 | public String getAddress() {
34 | return address;
35 | }
36 |
37 | public int getHotelID() {
38 | return hotelID;
39 | }
40 |
41 | public String getHotelName() {
42 | return hotelName;
43 | }
44 |
45 | public void setHotelName(String hotelName) {
46 | this.hotelName = hotelName;
47 | }
48 |
49 | public String getHotelEmail() {
50 | return hotelEmail;
51 | }
52 |
53 | public void setHotelEmail(String hotelEmail) {
54 | this.hotelEmail = hotelEmail;
55 | }
56 |
57 | public String getHotelPhoneNumber() {
58 | return hotelPhoneNumber;
59 | }
60 |
61 | public void setHotelPhoneNumber(String hotelPhoneNumber) {
62 | this.hotelPhoneNumber = hotelPhoneNumber;
63 | }
64 |
65 | public int getHotelStars() {
66 | return hotelStars;
67 | }
68 |
69 | public void setHotelStars(int hotelStars) {
70 | this.hotelStars = hotelStars;
71 | }
72 | }
73 |
--------------------------------------------------------------------------------
/src/entity/Room.java:
--------------------------------------------------------------------------------
1 | package entity;
2 |
3 | public class Room {
4 | private int id;
5 | private int hotelID;
6 | private int seasonID;
7 | private int pensionID;
8 | private String roomType;
9 | private int bedNumber;
10 | private int stock;
11 | private int priceChild;
12 | private int priceAdult;
13 |
14 | public Room(int id, int hotelID, int seasonID, int pensionID, String roomType, int bedNumber, int stock, int priceChild,int priceAdult) {
15 | this.id = id;
16 | this.hotelID = hotelID;
17 | this.seasonID = seasonID;
18 | this.pensionID = pensionID;
19 | this.roomType = roomType;
20 | this.bedNumber = bedNumber;
21 | this.stock = stock;
22 | this.priceChild = priceChild;
23 | this.priceAdult = priceAdult;
24 | }
25 |
26 | public int getId() {
27 | return id;
28 | }
29 |
30 | public int getHotelID() {
31 | return hotelID;
32 | }
33 |
34 | public int getSeasonID() {
35 | return seasonID;
36 | }
37 | public void setSeasonID(int seasonID) {
38 | this.seasonID = seasonID;
39 | }
40 |
41 | public int getPensionID() {
42 | return pensionID;
43 | }
44 |
45 | public void setPensionID(int pensionID) {
46 | this.pensionID = pensionID;
47 | }
48 |
49 | public String getRoomType() {
50 | return roomType;
51 | }
52 |
53 | public void setRoomType(String roomType) {
54 | this.roomType = roomType;
55 | }
56 |
57 | public int getBedNumber() {
58 | return bedNumber;
59 | }
60 |
61 | public void setBedNumber(int bedNumber) {
62 | this.bedNumber = bedNumber;
63 | }
64 |
65 | public int getStock() {
66 | return stock;
67 | }
68 |
69 | public void setStock(int stock) {
70 | this.stock = stock;
71 | }
72 |
73 | public int getPriceChild() {
74 | return priceChild;
75 | }
76 | public int getPriceAdult() {
77 | return priceAdult;
78 | }
79 |
80 | public void setPriceAdult(int _priceAdult) {
81 | this.priceAdult = _priceAdult;
82 | }
83 | public void setPriceChild(int _priceChild) {
84 | this.priceChild = _priceChild;
85 | }
86 | }
87 |
88 |
--------------------------------------------------------------------------------
/src/view/AddRoomPropertyGUI.java:
--------------------------------------------------------------------------------
1 | package view;
2 | import business.EmployeeHotelDetailManager;
3 | import core.Helper;
4 | import entity.RoomFeature;
5 | import javax.swing.*;
6 | import javax.swing.table.DefaultTableModel;
7 | import java.awt.event.ActionEvent;
8 | import java.awt.event.ActionListener;
9 | import java.awt.event.MouseAdapter;
10 | import java.awt.event.MouseEvent;
11 | public class AddRoomPropertyGUI extends Layout {
12 | private JPanel container;
13 | private JTextField txt_room_property;
14 | private JButton btn_addRoomFeature;
15 | private EmployeeHotelDetailManager detailManager;
16 | private JTable tbl_room_property;
17 | private DefaultTableModel mdl_room_property;
18 | private Object[] row_room_property;
19 | int roomID;
20 | public AddRoomPropertyGUI(EmployeeHotelDetailManager detailManager, int roomID){
21 | this.detailManager = detailManager;
22 | this.roomID = roomID;
23 | add(container);
24 | guiInitialize(400,400);
25 | // kullanıcıya tabloyu göstermek için yapılan işlemler
26 | mdl_room_property = new DefaultTableModel();
27 | mdl_room_property.setColumnIdentifiers(new Object[]{"Oda Özellikleri"});
28 | row_room_property = new Object[1];
29 | tbl_room_property.setModel(mdl_room_property); // setleme işlemi
30 |
31 | tbl_room_property.addMouseListener(new MouseAdapter() {
32 | @Override
33 | public void mousePressed(MouseEvent e) {
34 | tbl_room_property.setRowSelectionInterval(tbl_room_property.rowAtPoint(e.getPoint()), tbl_room_property.rowAtPoint(e.getPoint()));
35 | }
36 | });
37 |
38 | // Tablo için oluşturulan menü
39 | JPopupMenu popup = new JPopupMenu();
40 | popup.add("Sil").addActionListener(e ->{
41 | detailManager.deleteRoomProperty(
42 | roomID,
43 | tbl_room_property.getValueAt(tbl_room_property.getSelectedRow(),0).toString());
44 | loadRoomPropertyList();
45 | });
46 | tbl_room_property.setComponentPopupMenu(popup);
47 | loadRoomPropertyList();
48 | btn_addRoomFeature.addActionListener(new ActionListener() {
49 | @Override
50 | public void actionPerformed(ActionEvent e) {
51 | if(Helper.isFieldEmpty(txt_room_property)){
52 | Helper.showMsg("Uyarı","Eksik metin");
53 | }else{
54 | if(detailManager.addHotelRoomProperty(roomID,txt_room_property.getText())){
55 | loadRoomPropertyList();
56 | Helper.showMsg("Başarılı","Başarıyla Eklendi");
57 | }
58 | }
59 | }
60 | });
61 | }
62 |
63 | // oda özelliklerini göstermesi için tanımlanan metod
64 | private void loadRoomPropertyList(){
65 | DefaultTableModel db = (DefaultTableModel) tbl_room_property.getModel();
66 | db.setRowCount(0);
67 | for(RoomFeature feature : detailManager.getRoomFeatureList(roomID)){
68 | row_room_property[0] = feature.getFeatureName();
69 | mdl_room_property.addRow(row_room_property);
70 | }
71 | }
72 | }
73 |
--------------------------------------------------------------------------------
/src/dao/AdminDao.java:
--------------------------------------------------------------------------------
1 | package dao;
2 |
3 | import core.DBConnector;
4 | import core.Helper;
5 | import entity.User;
6 |
7 | import java.sql.PreparedStatement;
8 | import java.sql.ResultSet;
9 | import java.sql.SQLException;
10 | import java.util.ArrayList;
11 |
12 | public class AdminDao {
13 | // Adds a new user to the database.
14 | public boolean addUser(String tcNo, String username, String password, String name, String surname, String userType) {
15 | try (PreparedStatement ps = DBConnector.getPreparedStatement("INSERT INTO tbl_user (tcNo, username, password, name, surname, usertype) VALUES (?, ?, ?, ?, ?, ?)")) {
16 | ps.setString(1, tcNo);
17 | ps.setString(2, username);
18 | ps.setString(3, password);
19 | ps.setString(4, name);
20 | ps.setString(5, surname);
21 | ps.setString(6, userType);
22 | ps.executeUpdate();
23 | return true;
24 | } catch (SQLException e) {
25 | e.printStackTrace();
26 | return false;
27 | }
28 | }
29 |
30 | // Updates an existing user's information in the database.
31 | public boolean updateUser(int userID, String tcNo, String username, String password, String name, String surname, String userType) {
32 | try (PreparedStatement ps = DBConnector.getPreparedStatement("UPDATE tbl_user SET tcNo=?, username=?, password=?, name=?, surname=?, usertype=? WHERE id=?")) {
33 | ps.setString(1, tcNo);
34 | ps.setString(2, username);
35 | ps.setString(3, password);
36 | ps.setString(4, name);
37 | ps.setString(5, surname);
38 | ps.setString(6, userType);
39 | ps.setInt(7, userID);
40 | ps.executeUpdate();
41 | return true;
42 | } catch (SQLException e) {
43 | e.printStackTrace();
44 | return false;
45 | }
46 | }
47 |
48 | // Deletes a user from the database.
49 | public boolean deleteUser(int userID) {
50 | try (PreparedStatement ps = DBConnector.getPreparedStatement("DELETE FROM tbl_user WHERE id=?")) {
51 | ps.setInt(1, userID);
52 | int result = ps.executeUpdate();
53 | return result != -1;
54 | } catch (SQLException e) {
55 | e.printStackTrace();
56 | return false;
57 | }
58 | }
59 |
60 | // Retrieves a list of all users from the database.
61 | public ArrayList getUserList() {
62 | ArrayList list = new ArrayList<>();
63 | try (PreparedStatement ps = DBConnector.getPreparedStatement("SELECT * FROM tbl_user");
64 | ResultSet rs = ps.executeQuery()) {
65 | while (rs.next()) {
66 | list.add(new User(
67 | rs.getInt("id"),
68 | rs.getString("tcNo"),
69 | rs.getString("username"),
70 | rs.getString("password"),
71 | rs.getString("name"),
72 | rs.getString("surname"),
73 | rs.getString("usertype")));
74 | }
75 | } catch (SQLException e) {
76 | e.printStackTrace();
77 | }
78 | return list;
79 | }
80 | }
--------------------------------------------------------------------------------
/src/view/AddRoomPropertyGUI.form:
--------------------------------------------------------------------------------
1 |
2 |
71 |
--------------------------------------------------------------------------------
/src/entity/SearchResult.java:
--------------------------------------------------------------------------------
1 | package entity;
2 |
3 | import java.util.ArrayList;
4 |
5 | public class SearchResult {
6 | private String seasonName;
7 | private String seasonStartDate;
8 | private String seasonEndDate;
9 | private int hotelID;
10 | private String hotelName;
11 | private String hotelCity;
12 | private String hotelRegion;
13 | private String hotelAdress;
14 | private String hotelEmail;
15 | private String hotelPhoneNumber;
16 | private int hotelStars;
17 | private int seasonID;
18 | private int pensionID;
19 | private ArrayList hotelFeatures;
20 | private int roomID;
21 | private String roomType;
22 | private int roomBedNumber;
23 | private int roomStock;
24 | private int roomPriceChildren;
25 | private int roomPriceAdult;
26 | private ArrayList roomFeatures;
27 |
28 | public SearchResult(String seasonName, String seasonStartDate, String seasonEndDate, int hotelID, String hotelName, String hotelCity, String hotelRegion, String hotelAdress, String hotelEmail, String hotelPhoneNumber, int hotelStars, int seasonID, int pensionID,int roomID ,String roomType, int roomBedNumber, int roomStock, int roomPriceChildren, int roomPriceAdult) {
29 | this.seasonName = seasonName;
30 | this.seasonStartDate = seasonStartDate;
31 | this.seasonEndDate = seasonEndDate;
32 | this.hotelID = hotelID;
33 | this.hotelName = hotelName;
34 | this.hotelCity = hotelCity;
35 | this.hotelRegion = hotelRegion;
36 | this.hotelAdress = hotelAdress;
37 | this.hotelEmail = hotelEmail;
38 | this.hotelPhoneNumber = hotelPhoneNumber;
39 | this.hotelStars = hotelStars;
40 | this.seasonID = seasonID;
41 | this.pensionID = pensionID;
42 | this.hotelFeatures = null;
43 | this.roomID=roomID;
44 | this.roomType = roomType;
45 | this.roomBedNumber = roomBedNumber;
46 | this.roomStock = roomStock;
47 | this.roomPriceChildren = roomPriceChildren;
48 | this.roomPriceAdult = roomPriceAdult;
49 | this.roomFeatures = null;
50 | }
51 |
52 | public String getSeasonName() {
53 | return seasonName;
54 | }
55 |
56 | public String getSeasonStartDate() {
57 | return seasonStartDate;
58 | }
59 |
60 | public String getSeasonEndDate() {
61 | return seasonEndDate;
62 | }
63 |
64 | public int getHotelID() {
65 | return hotelID;
66 | }
67 |
68 | public String getHotelName() {
69 | return hotelName;
70 | }
71 |
72 | public String getHotelCity() {
73 | return hotelCity;
74 | }
75 |
76 | public String getHotelRegion() {
77 | return hotelRegion;
78 | }
79 |
80 | public String getHotelAdress() {
81 | return hotelAdress;
82 | }
83 |
84 | public String getHotelEmail() {
85 | return hotelEmail;
86 | }
87 |
88 | public String getHotelPhoneNumber() {
89 | return hotelPhoneNumber;
90 | }
91 |
92 | public int getHotelStars() {
93 | return hotelStars;
94 | }
95 |
96 | public int getSeasonID() {
97 | return seasonID;
98 | }
99 |
100 | public int getPensionID() {
101 | return pensionID;
102 | }
103 |
104 | public ArrayList getHotelFeatures() {
105 | return hotelFeatures;
106 | }
107 | public void getHotelFeatures(ArrayList hotelFeatures) {
108 | this.hotelFeatures = hotelFeatures;
109 | }
110 |
111 | public int getRoomID() {
112 | return roomID;
113 | }
114 |
115 | public String getRoomType() {
116 | return roomType;
117 | }
118 |
119 | public int getRoomBedNumber() {
120 | return roomBedNumber;
121 | }
122 |
123 | public int getRoomStock() {
124 | return roomStock;
125 | }
126 |
127 | public int getRoomPriceChildren() {
128 | return roomPriceChildren;
129 | }
130 |
131 | public int getRoomPriceAdult() {
132 | return roomPriceAdult;
133 | }
134 |
135 | public ArrayList getRoomFeatures() {
136 | return roomFeatures;
137 | }
138 | public void setRoomFeatures(ArrayList roomFeatures) {
139 | this.roomFeatures = roomFeatures;
140 | }
141 |
142 | }
143 |
--------------------------------------------------------------------------------
/src/business/EmployeeHotelDetailManager.java:
--------------------------------------------------------------------------------
1 | package business;
2 |
3 | import dao.EmployeeHotelDetailDao;
4 | import entity.*;
5 |
6 | import java.util.ArrayList;
7 |
8 | // Çalışanlarla ilgili otel ayrıntılarını ve sezonları yönetme kısmı
9 | public class EmployeeHotelDetailManager {
10 |
11 | private EmployeeHotelDetailDao employeeHotelDetailDao = new EmployeeHotelDetailDao();
12 |
13 | // otel id ve kimlik
14 |
15 | public ArrayList getSeasonListByHotelID(int hotelID) {
16 | return employeeHotelDetailDao.getSeasonListByHotelID(hotelID);
17 | }
18 |
19 | // otel sezonu
20 |
21 | public boolean addSeason(int hotelID, String seasonName, String startDate, String endDate) {
22 | return employeeHotelDetailDao.addSeason(hotelID, seasonName, startDate, endDate);
23 | }
24 |
25 | // pansiyon listeleme
26 |
27 | public ArrayList getPensionList(int hotelID) {
28 | return employeeHotelDetailDao.getPensionList(hotelID);
29 | }
30 |
31 | // Retrieves a list of available pension types.
32 |
33 | public ArrayList getPensionTypeList() {
34 | return employeeHotelDetailDao.getPensionTypeList();
35 | }
36 |
37 | // Adds a pension to a hotel.
38 |
39 | public boolean addPensiontoHotel(int hotelID, int pensionID, String pensionName) {
40 | return employeeHotelDetailDao.addPensiontoHotel(hotelID, pensionID, pensionName);
41 | }
42 |
43 | // Retrieves a list of available hotel features.
44 |
45 | public ArrayList getHotelFeaturesList() {
46 | return employeeHotelDetailDao.getHotelFeaturesList();
47 | }
48 |
49 | // Adds a new feature to a hotel.
50 |
51 | public boolean addHotelFeature(int hotelID, int featureID, String featuretoAdd) {
52 | return employeeHotelDetailDao.addHotelFeature(hotelID, featureID, featuretoAdd);
53 | }
54 |
55 | // Adds a new room to a hotel.
56 |
57 | public boolean addHotelRoom(int hotelID, int seasonID, int pensionID, String roomType, int bedNumber, int stock, int priceChildren, int priceAdult) {
58 | return employeeHotelDetailDao.addHotelRoom(hotelID, seasonID, pensionID, roomType, bedNumber, stock, priceChildren, priceAdult);
59 | }
60 |
61 | // Retrieves a list of hotel features by hotel ID.
62 |
63 | public ArrayList getHotelFeatureListByID(int hotelID) {
64 | return employeeHotelDetailDao.getHotelFeatureListByID(hotelID);
65 | }
66 |
67 | // Retrieves a list of rooms by hotel ID.
68 |
69 | public ArrayList getHotelRoomListByID(int hotelID) {
70 | return employeeHotelDetailDao.getHotelRoomListByID(hotelID);
71 | }
72 |
73 | // Retrieves the name of a season by its ID.
74 |
75 | public String getSeasonNameByID(int seasonID) {
76 | return employeeHotelDetailDao.getSeasonNameByID(seasonID);
77 | }
78 |
79 | // Retrieves the name of a pension by its ID.
80 |
81 | public String getPensionNameByID(int pensionID) {
82 | return employeeHotelDetailDao.getPensionNameByID(pensionID);
83 | }
84 |
85 | // Adds a property to a hotel room.
86 |
87 | public boolean addHotelRoomProperty(int roomID, String roomProperty) {
88 | return employeeHotelDetailDao.addHotelRoomProperty(roomID, roomProperty);
89 | }
90 |
91 | // Retrieves a list of room features by room ID.
92 |
93 | public ArrayList getRoomFeatureList(int roomID) {
94 | return employeeHotelDetailDao.getRoomFeatureList(roomID);
95 | }
96 |
97 | // Updates room information.
98 |
99 | public boolean updateRoomInfo(String roomType, int bedNumber, int stock, int priceChild, int priceAdult) {
100 | return employeeHotelDetailDao.updateRoomInfo(roomType, bedNumber, stock, priceChild, priceAdult);
101 | }
102 |
103 | // Deletes a room by its ID.
104 |
105 | public boolean deleteRoom(int roomID) {
106 | return employeeHotelDetailDao.deleteRoom(roomID);
107 | }
108 |
109 | // Deletes a season by its ID.
110 |
111 | public boolean deleteSeason(int seasonID) {
112 | return employeeHotelDetailDao.deleteSeason(seasonID);
113 | }
114 |
115 | // Deletes a hotel feature by its name and hotel ID.
116 |
117 | public boolean deleteHotelFeature(int hotelID, String featureName) {
118 | return employeeHotelDetailDao.deleteHotelFeature(hotelID, featureName);
119 | }
120 |
121 | // Deletes a pension by its ID.
122 |
123 | public boolean deleteHotelPension(int pensionID) {
124 | return employeeHotelDetailDao.deleteHotelPension(pensionID);
125 | }
126 |
127 | // Deletes a room property by its name and room ID.
128 |
129 | public boolean deleteRoomProperty(int roomID, String property) {
130 | return employeeHotelDetailDao.deleteRoomProperty(roomID, property);
131 | }
132 | }
133 |
--------------------------------------------------------------------------------
/src/view/AdminGUI.java:
--------------------------------------------------------------------------------
1 | package view;
2 | import business.AdminManager;
3 | import business.LoginManager;
4 | import core.Helper;
5 | import dao.LoginDao;
6 | import entity.User;
7 | import javax.swing.*;
8 | import javax.swing.table.DefaultTableModel;
9 | import java.awt.event.*;
10 |
11 | // Admin ile ilgili bileşenlerin olduğu class
12 | public class AdminGUI extends Layout {
13 | private AdminManager adminManager = new AdminManager();
14 | private JPanel wrapper;
15 | private JTabbedPane tabbedPane1;
16 | private JTable tbl_personel;
17 | private DefaultTableModel mdl_personel;
18 | private Object[] row_personel;
19 | private JTextField fld_tcNo;
20 | private JTextField fld_userName;
21 | private JTextField fld_name;
22 | private JTextField fld_surname;
23 | private JComboBox cmb_userType;
24 | private JButton btn_addUser;
25 | private JTextField fld_password;
26 | private User admin;
27 | public AdminGUI(User admin){
28 | this.admin = admin;
29 | add(wrapper);
30 | guiInitialize(800,700);
31 | addWindowListener(new WindowAdapter() {
32 | @Override
33 | public void windowClosing(WindowEvent e) {
34 | LoginGUI backToLogin = new LoginGUI(new LoginManager(new LoginDao()));
35 | }
36 | });
37 |
38 | // tablonun kullanıcıya gösterilmesi yapılan işlem adımları
39 | mdl_personel = new DefaultTableModel();
40 | mdl_personel.setColumnIdentifiers(new Object[]{"Kullanıcı id","TC","Kullanıcı Adı","Şifre","Adı","Soyadı","Kullanıcı Tipi"});
41 | row_personel = new Object[7];
42 | tbl_personel.setModel(mdl_personel);
43 |
44 | // mouse listener
45 |
46 | tbl_personel.addMouseListener(new MouseAdapter() {
47 | @Override
48 | public void mousePressed(MouseEvent e) {
49 | tbl_personel.setRowSelectionInterval(tbl_personel.rowAtPoint(e.getPoint()), tbl_personel.rowAtPoint(e.getPoint()));
50 | }
51 | });
52 | loadPersonelTable();
53 |
54 | // personel listesi için oluşturulan Menü
55 |
56 | JPopupMenu tbl_personel_popup = new JPopupMenu();
57 | tbl_personel_popup.add("Güncelle").addActionListener(e ->{
58 | //System.out.println(tbl_personel.getValueAt(tbl_personel.getSelectedRow(),6).toString());
59 | if(adminManager.updateUser(
60 | // Kullanıcı bilgileri seçilip satır içerisinde düzenleyip mouse ile güncelle diyerek kullanılan alan
61 |
62 | Integer.parseInt(tbl_personel.getValueAt(tbl_personel.getSelectedRow(),0).toString()),
63 | tbl_personel.getValueAt(tbl_personel.getSelectedRow(),1).toString(),
64 | tbl_personel.getValueAt(tbl_personel.getSelectedRow(),2).toString(),
65 | tbl_personel.getValueAt(tbl_personel.getSelectedRow(),3).toString(),
66 | tbl_personel.getValueAt(tbl_personel.getSelectedRow(),4).toString(),
67 | tbl_personel.getValueAt(tbl_personel.getSelectedRow(),5).toString(),
68 | tbl_personel.getValueAt(tbl_personel.getSelectedRow(),6).toString()
69 |
70 | )){
71 | loadPersonelTable();
72 | Helper.showMsg("Başarılı","Kullanıcı Güncellendi");
73 | } else {
74 | Helper.showMsg("Hata","Beklenmeyen bir hata oluştu !");
75 | }
76 | });
77 | tbl_personel_popup.add("Sil").addActionListener(e ->{
78 | if(adminManager.deleteUser(Integer.parseInt(tbl_personel.getValueAt(tbl_personel.getSelectedRow(),0).toString()))){
79 | loadPersonelTable();
80 | Helper.showMsg("Başarılı","Kullanıcı Silindi");
81 | } else {
82 | Helper.showMsg("Hata","Beklenmeyen bir hata oluştu !");
83 | }
84 | });
85 | tbl_personel.setComponentPopupMenu(tbl_personel_popup);
86 |
87 | btn_addUser.addActionListener(e -> {
88 | if (Helper.isFieldEmpty(fld_tcNo) || Helper.isFieldEmpty(fld_userName) || Helper.isFieldEmpty(fld_password) ||
89 | Helper.isFieldEmpty(fld_name) || Helper.isFieldEmpty(fld_surname)) {
90 | Helper.showMsg("Uyarı !", "İlgili alanları doldurunuz");
91 | } else {
92 | if (adminManager.addUser(
93 | fld_tcNo.getText(),
94 | fld_userName.getText(),
95 | fld_password.getText(),
96 | fld_name.getText(),
97 | fld_surname.getText(),
98 | cmb_userType.getSelectedItem().toString()
99 | )) {
100 | loadPersonelTable();
101 | Helper.showMsg("Başarılı", "Kullanıcı Eklendi");
102 | }
103 | }
104 | });
105 | }
106 | // loadPersonelTable metodu Db de ki personel tablosunu kullanıcının göreceği format ile geliyor
107 | private void loadPersonelTable(){
108 | DefaultTableModel db = (DefaultTableModel) tbl_personel.getModel();
109 | db.setRowCount(0);
110 | for(User user : adminManager.getUserList()){
111 | row_personel[0] = user.getUserID();
112 | row_personel[1] = user.getTcNo();
113 | row_personel[2] = user.getUsername();
114 | row_personel[3] = user.getPassword();
115 | row_personel[4] = user.getName();
116 | row_personel[5] = user.getSurname();
117 | row_personel[6] = user.getUserType();
118 | mdl_personel.addRow(row_personel);
119 | }
120 | }
121 | }
122 |
--------------------------------------------------------------------------------
/src/view/LoginGUI.form:
--------------------------------------------------------------------------------
1 |
2 |
125 |
--------------------------------------------------------------------------------
/src/business/EmployeeManager.java:
--------------------------------------------------------------------------------
1 | package business;
2 | import core.DBConnector;
3 | import dao.EmployeeDao;
4 | import entity.Reservation;
5 | import entity.Hotel;
6 | import entity.HotelFeature;
7 | import entity.RoomFeature;
8 | import entity.SearchResult;
9 | import java.sql.ResultSet;
10 | import java.time.LocalDate;
11 | import java.time.format.DateTimeFormatter;
12 | import java.time.temporal.ChronoUnit;
13 | import java.util.ArrayList;
14 | public class EmployeeManager {
15 |
16 | private EmployeeDao employeeDao = new EmployeeDao();
17 |
18 | // Retrieves a list of hotels.
19 | public ArrayList getHotelList() {
20 | return employeeDao.getHotelList();
21 | }
22 |
23 | // Retrieves a hotel by its ID.
24 | public Hotel getHotelByID(int hotelID) {
25 | return employeeDao.getHotelByID(hotelID);
26 | }
27 |
28 | // Adds a new hotel.
29 | public boolean addHotel(String hotelName, String city, String region, String address, String hotelEmail, String hotelPhone, int star) {
30 | return employeeDao.addHotel(hotelName, city, region, address, hotelEmail, hotelPhone, star);
31 | }
32 |
33 | // Updates hotel information.
34 | public boolean updateHotel(int hotelID,String hotelName,String city,String region,String address, String hotelEmail, String hotelPhone, int star) {
35 | return employeeDao.updateHotel(hotelID,hotelName,city,region,address,hotelEmail,hotelPhone,star);
36 | }
37 |
38 |
39 | // Deletes a hotel by its ID.
40 | public boolean deleteHotel(int hotelID) {
41 | return employeeDao.deleteHotel(hotelID);
42 | }
43 |
44 | // Performs a search query.
45 | public String searchQuery(String city, String region, String hotelName, String startDate, String endDate, int bedCount) {
46 | startDate = (startDate.isEmpty()) ? startDate : formatDate(startDate);
47 | endDate = (endDate.isEmpty()) ? endDate : formatDate(endDate);
48 | return employeeDao.searchQuery(city, region, hotelName, startDate, endDate, bedCount);
49 | }
50 |
51 | // Searches and returns a list of search results based on a query.
52 | public ArrayList search(String query) {
53 | return employeeDao.search(query);
54 | }
55 |
56 | // Searches and returns a list of search results with a default query.
57 | public ArrayList search() {
58 | String query = "SELECT s.season_name,s.start_date,s.end_date,h.hotel_id,h.name,h.city,h.region,h.address,h.email,h.phoneNumber,h.stars,r.season_id,r.pension_id,r.room_id,r.room_type,r.bed_number,r.stock,r.price_child,r.price_adult\n" +
59 | "FROM tbl_season AS s\n" +
60 | "INNER JOIN tbl_hotel_room AS r ON s.season_id = r.season_id\n" +
61 | "INNER JOIN tbl_hotel AS h ON r.hotel_id = h.hotel_id\n";
62 | return employeeDao.search(query);
63 | }
64 |
65 | // Retrieves a list of hotel features by hotel ID.
66 | public ArrayList getHotelFeatures(int hotelID) {
67 | return employeeDao.getHotelFeatures(hotelID);
68 | }
69 |
70 | // Retrieves a list of room features by room ID.
71 | public ArrayList getRoomFeatures(int roomID) {
72 | return employeeDao.getRoomFeatures(roomID);
73 | }
74 |
75 | // Adds a new reservation.
76 | public boolean addReservation(int hotelID, int roomID, String customerName, String customerTc, String customerPhone, String customerEmail, int childNumber, int adultNumber) {
77 | return employeeDao.addReservation(hotelID, roomID, customerName, customerTc, customerPhone, customerEmail, childNumber, adultNumber);
78 | }
79 |
80 | // Decreases the stock of a room.
81 | public boolean decreaseStock(int roomID) {
82 | return employeeDao.decreaseStock(roomID);
83 | }
84 |
85 | // Increases the stock of a room.
86 | public boolean increaseStock(int roomID) {
87 | return employeeDao.increaseStock(roomID);
88 | }
89 |
90 | // Retrieves a list of reservations.
91 | public ArrayList getReservationList() {
92 | return employeeDao.getReservationList();
93 | }
94 |
95 | // Updates reservation information.
96 | public boolean updateReservation(int reservationID, String customerName, String customerTc, String customerPhone, String customerEmail, int childNumber, int adultNumber) {
97 | return employeeDao.updateReservation(reservationID, customerName, customerTc, customerPhone, customerEmail, childNumber, adultNumber);
98 | }
99 |
100 | // Deletes a reservation by its ID.
101 | public boolean deleteReservation(int reservationID) {
102 | return employeeDao.deleteReservation(reservationID);
103 | }
104 |
105 | // Deletes all rooms associated with a hotel by its ID.
106 | public void deleteRoomByHotelID(int hotelID) {
107 | }
108 |
109 | // Deletes all seasons associated with a hotel by its ID.
110 | public void deleteSeasonByHotelID(int hotelID) {
111 | }
112 |
113 | // Checks if the input dates are valid.
114 | public Boolean isValidDates(String dateToCheck1, String dateToCheck2) {
115 | if (dateToCheck1.isEmpty() && dateToCheck2.isEmpty()) {
116 | return true;
117 | }
118 | DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("dd/MM/yyyy");
119 | LocalDate date = null;
120 | try {
121 | if (!dateToCheck1.isEmpty()) {
122 | date = LocalDate.parse(dateToCheck1, DATE_TIME_FORMATTER);
123 | }
124 | if (!dateToCheck2.isEmpty()) {
125 | date = LocalDate.parse(dateToCheck2, DATE_TIME_FORMATTER);
126 | }
127 | return true;
128 | } catch (Exception e) {
129 | e.printStackTrace();
130 | }
131 | return false;
132 | }
133 |
134 | // Formats the date from dd/MM/yyyy to yyyy-MM-dd.
135 | private String formatDate(String input) {
136 | String[] arr = input.split("/");
137 | return arr[2] + "-" + arr[1] + "-" + arr[0];
138 | }
139 |
140 | // Formats the date from yyyy-MM-dd to dd/MM/yyyy.
141 | public String formatDateBack(String input) {
142 | String[] arr = input.split("-");
143 | return arr[2] + "/" + arr[1] + "/" + arr[0];
144 | }
145 |
146 | // Calculates the number of days between two dates.
147 | public int calculateDay(String startDate, String endDate) {
148 | DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd/MM/yyyy");
149 | try {
150 | LocalDate date1 = LocalDate.parse(startDate, dtf);
151 | LocalDate date2 = LocalDate.parse(endDate, dtf);
152 | return (int) ChronoUnit.DAYS.between(date1, date2);
153 | } catch (Exception e) {
154 | e.printStackTrace();
155 | }
156 | return 0;
157 | }
158 |
159 | // Retrieves the pension name by its ID.
160 | public String getPensionNameByID(int pensionID) {
161 | try (ResultSet rs = DBConnector.getPreparedStatement("SELECT pension_name FROM tbl_pensiontype WHERE id=" + pensionID).executeQuery()) {
162 | if (rs.next()) {
163 | return rs.getString("pension_name");
164 | }
165 | } catch (Exception e) {
166 | e.printStackTrace();
167 | }
168 | return null;
169 | }
170 | }
171 |
--------------------------------------------------------------------------------
/src/view/ReservationGUI.form:
--------------------------------------------------------------------------------
1 |
2 |
142 |
--------------------------------------------------------------------------------
/.idea/uiDesigner.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | -
6 |
7 |
8 | -
9 |
10 |
11 | -
12 |
13 |
14 | -
15 |
16 |
17 | -
18 |
19 |
20 |
21 |
22 |
23 | -
24 |
25 |
26 |
27 |
28 |
29 | -
30 |
31 |
32 |
33 |
34 |
35 | -
36 |
37 |
38 |
39 |
40 |
41 | -
42 |
43 |
44 |
45 |
46 | -
47 |
48 |
49 |
50 |
51 | -
52 |
53 |
54 |
55 |
56 | -
57 |
58 |
59 |
60 |
61 | -
62 |
63 |
64 |
65 |
66 | -
67 |
68 |
69 |
70 |
71 | -
72 |
73 |
74 | -
75 |
76 |
77 |
78 |
79 | -
80 |
81 |
82 |
83 |
84 | -
85 |
86 |
87 |
88 |
89 | -
90 |
91 |
92 |
93 |
94 | -
95 |
96 |
97 |
98 |
99 | -
100 |
101 |
102 | -
103 |
104 |
105 | -
106 |
107 |
108 | -
109 |
110 |
111 | -
112 |
113 |
114 |
115 |
116 | -
117 |
118 |
119 | -
120 |
121 |
122 |
123 |
124 |
--------------------------------------------------------------------------------
/src/dao/EmployeeHotelDetailDao.java:
--------------------------------------------------------------------------------
1 | package dao;
2 |
3 | import core.DBConnector;
4 | import core.Helper;
5 | import entity.*;
6 |
7 | import java.sql.PreparedStatement;
8 | import java.sql.ResultSet;
9 | import java.util.ArrayList;
10 |
11 | public class EmployeeHotelDetailDao{
12 |
13 | public ArrayList getSeasonListByHotelID(int hotelID) {
14 | ArrayList list = new ArrayList<>();
15 | try(ResultSet rs = DBConnector.getPreparedStatement("SELECT season_id,season_name,start_date,end_date FROM tbl_season WHERE hotel_id="+hotelID).executeQuery()) {
16 | while(rs.next()){
17 | list.add(new Season(
18 | rs.getInt("season_id"),
19 | hotelID,
20 | rs.getString("season_name"),
21 | rs.getString("start_date"),
22 | rs.getString("end_date")
23 | ));
24 | }
25 | }catch (Exception e){
26 | e.printStackTrace();
27 | }
28 | return list;
29 | }
30 |
31 |
32 | public boolean addSeason(int hotelID, String seasonName, String startDate, String endDate) {
33 | try(PreparedStatement ps = DBConnector.getPreparedStatement("INSERT INTO tbl_season (hotel_id,season_name,start_date,end_date) VALUES(?,?,?,?)")){
34 | ps.setInt(1,hotelID);
35 | ps.setString(2,seasonName);
36 | ps.setString(3,startDate);
37 | ps.setString(4,endDate);
38 | int result = ps.executeUpdate();
39 | return result != -1;
40 |
41 | }catch (Exception e){
42 | e.printStackTrace();
43 | }
44 | return false;
45 | }
46 |
47 |
48 | public ArrayList getPensionList(int hotelID) {
49 | ArrayList list = new ArrayList<>();
50 | try(ResultSet rs = DBConnector.getPreparedStatement("SELECT pension_id,pension_name FROM tbl_hotel_pension WHERE hotel_id="+hotelID).executeQuery()) {
51 | while(rs.next()){
52 | list.add(new Pension(
53 | rs.getInt("pension_id"),
54 | rs.getString("pension_name")
55 | ));
56 | }
57 | }catch (Exception e){
58 | e.printStackTrace();
59 | }
60 | return list;
61 | }
62 |
63 |
64 | public ArrayList getPensionTypeList() {
65 | ArrayList list = new ArrayList<>();
66 | try(ResultSet rs = DBConnector.getPreparedStatement("SELECT * FROM tbl_pensiontype").executeQuery()) {
67 | while(rs.next()){
68 | list.add(new Pension(
69 | rs.getInt("id"),
70 | rs.getString("pension_name")
71 | ));
72 | }
73 | }catch (Exception e){
74 | e.printStackTrace();
75 | }
76 | return list;
77 | }
78 |
79 |
80 | public boolean addPensiontoHotel(int hotelID, int pensionID, String pensionName) {
81 | try(PreparedStatement ps = DBConnector.getPreparedStatement("INSERT INTO tbl_hotel_pension (hotel_id,pension_id,pension_name) VALUES(?,?,?)")){
82 | ps.setInt(1,hotelID);
83 | ps.setInt(2,pensionID);
84 | ps.setString(3,pensionName);
85 | int result = ps.executeUpdate();
86 | return result != -1;
87 |
88 | }catch (Exception e){
89 | e.printStackTrace();
90 | }
91 | return false;
92 | }
93 |
94 |
95 | public ArrayList getHotelFeaturesList() {
96 | ArrayList list = new ArrayList<>();
97 | try(ResultSet rs = DBConnector.getPreparedStatement("SELECT * FROM tbl_featuretype").executeQuery()) {
98 | while(rs.next()){
99 | list.add(new HotelFeature(
100 | rs.getInt("id"),
101 | rs.getString("feature_name")
102 | ));
103 | }
104 | }catch (Exception e){
105 | e.printStackTrace();
106 | }
107 | return list;
108 | }
109 |
110 |
111 | public boolean addHotelFeature(int hotelID,int featureID ,String featuretoAdd) {
112 | try(PreparedStatement ps = DBConnector.getPreparedStatement("INSERT INTO tbl_hotel_feature (hotel_id,feature_id,feature_name) VALUES(?,?,?)")){
113 | ps.setInt(1,hotelID);
114 | ps.setInt(2,featureID);
115 | ps.setString(3,featuretoAdd);
116 | int result = ps.executeUpdate();
117 | return result != -1;
118 |
119 | }catch (Exception e){
120 | e.printStackTrace();
121 | }
122 | return false;
123 | }
124 |
125 |
126 | public boolean addHotelRoom(int hotelID, int seasonID, int pensionID, String roomType, int bedNumber, int stock, int priceChildren,int priceAdult) {
127 | try(PreparedStatement ps = DBConnector.getPreparedStatement(
128 | "INSERT INTO tbl_hotel_room (hotel_id,season_id,pension_id,room_type,bed_number,stock,price_child,price_adult) VALUES(?,?,?,?,?,?,?,?)")){
129 | ps.setInt(1,hotelID);
130 | ps.setInt(2,seasonID);
131 | ps.setInt(3,pensionID);
132 | ps.setString(4,roomType);
133 | ps.setInt(5,bedNumber);
134 | ps.setInt(6,stock);
135 | ps.setInt(7,priceChildren);
136 | ps.setInt(8,priceAdult);
137 | int result = ps.executeUpdate();
138 | return result != -1;
139 |
140 | }catch (Exception e){
141 | e.printStackTrace();
142 | }
143 | return false;
144 | }
145 |
146 |
147 | public ArrayList getHotelFeatureListByID(int hotelID) {
148 | ArrayList list = new ArrayList<>();
149 | try(ResultSet rs = DBConnector.getPreparedStatement("SELECT * FROM tbl_hotel_feature WHERE hotel_id="+hotelID).executeQuery()) {
150 | while(rs.next()){
151 | list.add(new HotelFeature(
152 | rs.getInt("feature_id"),
153 | rs.getString("feature_name")
154 | ));
155 | }
156 | }catch (Exception e){
157 | e.printStackTrace();
158 | }
159 | return list;
160 | }
161 |
162 |
163 | public ArrayList getHotelRoomListByID(int hotelID) {
164 | ArrayList list = new ArrayList<>();
165 | try(ResultSet rs = DBConnector.getPreparedStatement("SELECT * FROM tbl_hotel_room WHERE hotel_id="+hotelID).executeQuery()) {
166 | while(rs.next()){
167 | list.add(new Room(
168 | rs.getInt("room_id"),
169 | rs.getInt("hotel_id"),
170 | rs.getInt("season_id"),
171 | rs.getInt("pension_id"),
172 | rs.getString("room_type"),
173 | rs.getInt("bed_number"),
174 | rs.getInt("stock"),
175 | rs.getInt("price_child"),
176 | rs.getInt("price_adult")
177 | ));
178 | }
179 | }catch (Exception e){
180 | e.printStackTrace();
181 | }
182 | return list;
183 | }
184 |
185 |
186 | public String getSeasonNameByID(int seasonID) {
187 | try(ResultSet rs = DBConnector.getPreparedStatement("SELECT season_name FROM tbl_season WHERE season_id="+seasonID).executeQuery()) {
188 | if(rs.next()){
189 | return rs.getString("season_name");
190 | }
191 | }catch (Exception e){
192 | e.printStackTrace();
193 | }
194 | return null;
195 | }
196 |
197 |
198 | public String getPensionNameByID(int pensionID) {
199 | try(ResultSet rs = DBConnector.getPreparedStatement("SELECT pension_name FROM tbl_pensiontype WHERE id="+pensionID).executeQuery()) {
200 | if(rs.next()){
201 | return rs.getString("pension_name");
202 | }
203 | }catch (Exception e){
204 | e.printStackTrace();
205 | }
206 | return null;
207 | }
208 |
209 |
210 | public boolean addHotelRoomProperty(int roomID, String roomProperty) {
211 | try(PreparedStatement ps = DBConnector.getPreparedStatement(
212 | "INSERT INTO tbl_room_property (room_id,property_name) VALUES(?,?)")){
213 | ps.setInt(1,roomID);
214 | ps.setString(2,roomProperty);
215 | int result = ps.executeUpdate();
216 | return result != -1;
217 |
218 | }catch (Exception e){
219 | e.printStackTrace();
220 | }
221 | return false;
222 | }
223 |
224 |
225 | public ArrayList getRoomFeatureList(int roomID) {
226 | ArrayList list = new ArrayList<>();
227 | try(ResultSet rs = DBConnector.getPreparedStatement("SELECT * FROM tbl_room_property WHERE room_id="+roomID).executeQuery()) {
228 | while(rs.next()){
229 | list.add(new RoomFeature(
230 | rs.getInt("room_id"),
231 | rs.getString("property_name")
232 | ));
233 | }
234 | }catch (Exception e){
235 | e.printStackTrace();
236 | }
237 | return list;
238 | }
239 |
240 |
241 | public boolean updateRoomInfo(String roomType, int bedNumber, int stock, int priceChild, int priceAdult) {
242 | try(PreparedStatement ps = DBConnector.getPreparedStatement("UPDATE tbl_hotel_room SET room_type=?,bed_number=?,stock=?,price_child=?,price_adult=?")) {
243 | ps.setString(1,roomType);
244 | ps.setInt(2,bedNumber);
245 | ps.setInt(3,stock);
246 | ps.setInt(4,priceChild);
247 | ps.setInt(5,priceAdult);
248 | int result = ps.executeUpdate();
249 | ps.close();
250 | return result != -1;
251 | }catch (Exception e){
252 | e.printStackTrace();
253 | }
254 | return false;
255 | }
256 |
257 |
258 | public boolean deleteRoom(int roomID) {
259 | try(PreparedStatement ps = DBConnector.getPreparedStatement("DELETE FROM tbl_hotel_room WHERE room_id="+roomID)) {
260 | int result = ps.executeUpdate();
261 | ps.close();
262 | return result != -1;
263 | }catch (Exception e){
264 | Helper.showMsg("Hata","Veri Tabanı Hatası!!!");
265 | }
266 | return false;
267 | }
268 |
269 |
270 | public boolean deleteSeason(int seasonID) {
271 | try(PreparedStatement ps = DBConnector.getPreparedStatement("DELETE FROM tbl_season WHERE season_id="+seasonID)) {
272 | int result = ps.executeUpdate();
273 | ps.close();
274 | return result != -1;
275 | }catch (Exception e){
276 | Helper.showMsg("Hata","Veri Tabanı Hatası!!!");
277 | }
278 | return false;
279 | }
280 |
281 |
282 | public boolean deleteHotelFeature(int hotelID, String featureName) {
283 | try(PreparedStatement ps = DBConnector.getPreparedStatement("DELETE FROM tbl_hotel_feature WHERE hotel_id=? AND feature_name=?")) {
284 | ps.setInt(1,hotelID);
285 | ps.setString(2,featureName);
286 | int result = ps.executeUpdate();
287 | ps.close();
288 | return result != -1;
289 | }catch (Exception e){
290 | Helper.showMsg("Hata","Veri Tabanı Hatası!!!");
291 | }
292 | return false;
293 | }
294 |
295 |
296 | public boolean deleteHotelPension(int pensionID) {
297 | try (PreparedStatement ps = DBConnector.getPreparedStatement("DELETE FROM tbl_hotel_pension WHERE pension_id=?")) {
298 | ps.setInt(1, pensionID);
299 | int result = ps.executeUpdate();
300 | ps.close();
301 | return result != -1;
302 | } catch (Exception e) {
303 | Helper.showMsg("Hata","Veri Tabanı Hatası!!!");
304 | }
305 | return false;
306 | }
307 |
308 | public boolean deleteRoomProperty(int roomID, String property) {
309 | try(PreparedStatement ps = DBConnector.getPreparedStatement("DELETE FROM tbl_room_property WHERE room_id=? AND property_name=?")) {
310 | ps.setInt(1,roomID);
311 | ps.setString(2,property);
312 | int result = ps.executeUpdate();
313 | ps.close();
314 | return result != -1;
315 | }catch (Exception e){
316 | Helper.showMsg("Hata","Veri Tabanı Hatası!!!");
317 | }
318 | return false;
319 | }
320 | }
321 |
--------------------------------------------------------------------------------
/src/view/AdminGUI.form:
--------------------------------------------------------------------------------
1 |
2 |
217 |
--------------------------------------------------------------------------------
/src/dao/EmployeeDao.java:
--------------------------------------------------------------------------------
1 | package dao;
2 |
3 | import core.DBConnector;
4 | import core.Helper;
5 | import entity.Reservation;
6 | import entity.Hotel;
7 | import entity.HotelFeature;
8 | import entity.RoomFeature;
9 | import entity.SearchResult;
10 |
11 | import java.sql.PreparedStatement;
12 | import java.sql.ResultSet;
13 | import java.sql.SQLException;
14 | import java.sql.Statement;
15 | import java.util.ArrayList;
16 |
17 | public class EmployeeDao {
18 |
19 | public ArrayList getHotelList() {
20 | ArrayList hotelList = new ArrayList<>();
21 | try(ResultSet rs = DBConnector.getPreparedStatement("SELECT * FROM tbl_hotel").executeQuery()) {
22 | while(rs.next()){
23 | hotelList.add(new Hotel(rs.getInt("hotel_id"),
24 | rs.getString("name"),
25 | rs.getString("city"),
26 | rs.getString("region"),
27 | rs.getString("address"),
28 | rs.getString("email"),
29 | rs.getString("phoneNumber"),
30 | rs.getInt("stars")));
31 |
32 | }
33 | }catch (Exception e){
34 | e.printStackTrace();
35 | }
36 | return hotelList;
37 | }
38 |
39 | public Hotel getHotelByID(int hotelID) {
40 | Hotel hotel = null;
41 | try(ResultSet rs = DBConnector.getPreparedStatement("SELECT * FROM tbl_hotel WHERE hotel_id="+hotelID).executeQuery()) {
42 | if(rs.next()){
43 | hotel = new Hotel(
44 | rs.getInt("hotel_id"),
45 | rs.getString("name"),
46 | rs.getString("city"),
47 | rs.getString("region"),
48 | rs.getString("address"),
49 | rs.getString("email"),
50 | rs.getString("phoneNumber"),
51 | rs.getInt("stars")
52 | );
53 | }
54 | }catch (Exception e){
55 | e.printStackTrace();
56 | }
57 | return hotel;
58 | }
59 |
60 |
61 | public boolean addHotel(String hotelName,String city,String region,String address, String hotelEmail, String hotelPhone, int star) {
62 | try(PreparedStatement ps = DBConnector.getPreparedStatement("INSERT INTO tbl_hotel (name,city,region,address,email,phoneNumber,stars) VALUES(?,?,?,?,?,?,?)")){
63 | ps.setString(1,hotelName);
64 | ps.setString(2,city);
65 | ps.setString(3,region);
66 | ps.setString(4,address);
67 | ps.setString(5,hotelEmail);
68 | ps.setString(6,hotelPhone);
69 | ps.setInt(7,star);
70 | ps.executeUpdate();
71 | ps.close();
72 | return true;
73 | }catch (Exception e){
74 | e.printStackTrace();
75 | }
76 | return false;
77 | }
78 |
79 |
80 | public boolean updateHotel(int hotelID,String hotelName,String city,String region,String address, String hotelEmail, String hotelPhone, int star) {
81 | try(PreparedStatement ps = DBConnector.getPreparedStatement("UPDATE tbl_hotel SET name=?,city=?,region=?,address=?,email=?,phoneNumber=?,stars=? WHERE hotel_id=?")) {
82 | ps.setString(1,hotelName);
83 | ps.setString(2,city);
84 | ps.setString(3,region);
85 | ps.setString(4,address);
86 | ps.setString(5,hotelEmail);
87 | ps.setString(6,hotelPhone);
88 | ps.setInt(7,star);
89 | ps.setInt(8,hotelID);
90 | ps.executeUpdate();
91 | ps.close();
92 | return true;
93 | }catch (Exception e){
94 | e.printStackTrace();
95 | }
96 | return false;
97 | }
98 |
99 |
100 | public boolean deleteHotel(int hotelID) {
101 | try(PreparedStatement ps = DBConnector.getPreparedStatement("DELETE FROM tbl_hotel WHERE hotel_id="+hotelID)) {
102 | int result = ps.executeUpdate();
103 | ps.close();
104 | deleteRoomByHotelID(hotelID);
105 | deleteSeasonByHotelID(hotelID);
106 | deleteReservationByHotelID(hotelID);
107 | return result != -1;
108 | }catch (Exception e){
109 | Helper.showMsg("Hata","Veri Tabanı Hatası!!!");
110 | }
111 | return false;
112 | }
113 |
114 |
115 | public String searchQuery(String city,String region,String hotelName, String startDate, String endDate, int bedCount) {
116 | if(startDate.isEmpty()){}
117 | String query = "SELECT s.season_name,s.start_date,s.end_date,h.hotel_id,h.name,h.city,h.region,h.address,h.email,h.phoneNumber,h.stars,r.season_id,r.pension_id,r.room_id,r.room_type,r.bed_number,r.stock,r.price_child,r.price_adult\n" +
118 | "FROM tbl_season AS s \n" +
119 | "INNER JOIN tbl_hotel_room AS r ON s.season_id = r.season_id\n" +
120 | "INNER JOIN tbl_hotel AS h ON r.hotel_id = h.hotel_id\n" +
121 | "WHERE (h.name LIKE '%{{hotel}}%' OR h.city LIKE '%{{city}}%' OR h.region LIKE '%{{region}}%') AND r.bed_number>={{bedNumber}}";
122 |
123 | query = query.replace("{{hotel}}",hotelName);
124 | query = query.replace("{{city}}",city);
125 | query = query.replace("{{region}}",region);
126 | query = query.replace("{{bedNumber}}", String.valueOf(bedCount));
127 |
128 | if(!startDate.isEmpty()){
129 | query += "\nAND start_date <= '{{startDate}}'";
130 | query = query.replace("{{startDate}}",startDate);
131 | }
132 | if(!endDate.isEmpty()){
133 | query+=" AND end_date >= '{{endDate}}'";
134 | query = query.replace("{{endDate}}",endDate);
135 | }
136 | return query;
137 | }
138 |
139 |
140 | public ArrayList search(String query) {
141 | ArrayList resultList = new ArrayList<>();
142 | SearchResult object;
143 | try {
144 | Statement statement = DBConnector.getConnectionInstance().createStatement();
145 | ResultSet rs = statement.executeQuery(query);
146 | while(rs.next()){
147 | object = new SearchResult(
148 | rs.getString("season_name"),
149 | rs.getString("start_date"),
150 | rs.getString("end_date"),
151 | rs.getInt("hotel_id"),
152 | rs.getString("name"),
153 | rs.getString("city"),
154 | rs.getString("region"),
155 | rs.getString("address"),
156 | rs.getString("email"),
157 | rs.getString("phoneNumber"),
158 | rs.getInt("stars"),
159 | rs.getInt("season_id"),
160 | rs.getInt("pension_id"),
161 | rs.getInt("room_id"),
162 | rs.getString("room_type"),
163 | rs.getInt("bed_number"),
164 | rs.getInt("stock"),
165 | rs.getInt("price_child"),
166 | rs.getInt("price_adult")
167 | );
168 | resultList.add(object);
169 | }
170 | statement.close();
171 | rs.close();
172 | } catch (SQLException e) {
173 |
174 | }
175 | return resultList;
176 | }
177 |
178 |
179 | public ArrayList getHotelFeatures(int hotelID) {
180 | ArrayList list = new ArrayList<>();
181 | try(ResultSet rs = DBConnector.getPreparedStatement("SELECT * FROM tbl_hotel_feature WHERE hotel_id="+hotelID).executeQuery()) {
182 | while(rs.next()){
183 | list.add(new HotelFeature(
184 | rs.getInt("feature_id"),
185 | rs.getString("feature_name")
186 | ));
187 | }
188 | }catch (Exception e){
189 | e.printStackTrace();
190 | }
191 | return list;
192 | }
193 |
194 |
195 | public ArrayList getRoomFeatures(int roomID) {
196 | ArrayList list = new ArrayList<>();
197 | try(ResultSet rs = DBConnector.getPreparedStatement("SELECT * FROM tbl_room_property WHERE room_id="+roomID).executeQuery()) {
198 | while(rs.next()){
199 | list.add(new RoomFeature(
200 | rs.getInt("room_id"),
201 | rs.getString("property_name")
202 | ));
203 | }
204 | }catch (Exception e){
205 | e.printStackTrace();
206 | }
207 | return list;
208 | }
209 |
210 |
211 | public boolean addReservation(int hotelID, int roomID, String customerName, String customerTc, String customerPhone, String customerEmail, int childNumber, int adultNumber) {
212 | try(PreparedStatement ps = DBConnector.getPreparedStatement("INSERT INTO tbl_reservation (hotel_id,room_id,customer_name,customer_tc,customer_phone,customer_email,child_number,adult_number) VALUES(?,?,?,?,?,?,?,?)")){
213 | ps.setInt(1,hotelID);
214 | ps.setInt(2,roomID);
215 | ps.setString(3,customerName);
216 | ps.setString(4,customerTc);
217 | ps.setString(5,customerPhone);
218 | ps.setString(6,customerEmail);
219 | ps.setInt(7,childNumber);
220 | ps.setInt(8,adultNumber);
221 | ps.executeUpdate();
222 | ps.close();
223 | return true;
224 | }catch (Exception e){
225 | e.printStackTrace();
226 | }
227 | return false;
228 | }
229 |
230 |
231 | public boolean decreaseStock(int roomID) {
232 | try(PreparedStatement ps = DBConnector.getPreparedStatement("UPDATE tbl_hotel_room SET stock=stock-1 WHERE room_id="+roomID)) {
233 | int result = ps.executeUpdate();
234 | ps.close();
235 | return result != -1;
236 | }catch (Exception e){
237 | e.printStackTrace();
238 | }
239 | return false;
240 | }
241 | public boolean increaseStock(int roomID) {
242 | try(PreparedStatement ps = DBConnector.getPreparedStatement("UPDATE tbl_hotel_room SET stock=stock+1 WHERE room_id="+roomID)) {
243 | int result = ps.executeUpdate();
244 | ps.close();
245 | return result != -1;
246 | }catch (Exception e){
247 | e.printStackTrace();
248 | }
249 | return false;
250 | }
251 |
252 |
253 | public ArrayList getReservationList() {
254 | ArrayList list = new ArrayList<>();
255 | try(ResultSet rs = DBConnector.getPreparedStatement("SELECT * FROM tbl_reservation").executeQuery()) {
256 | while(rs.next()){
257 | list.add(new Reservation(
258 | rs.getInt("reservation_id"),
259 | rs.getInt("hotel_id"),
260 | rs.getInt("room_id"),
261 | rs.getString("customer_name"),
262 | rs.getString("customer_tc"),
263 | rs.getString("customer_phone"),
264 | rs.getString("customer_email"),
265 | rs.getInt("child_number"),
266 | rs.getInt("adult_number")
267 | ));
268 | }
269 | }catch (Exception e){
270 | e.printStackTrace();
271 | }
272 | return list;
273 | }
274 |
275 |
276 | public boolean updateReservation(int reservationID,String customerName, String customerTc, String customerPhone, String customerEmail, int childNumber, int adultNumber) {
277 | try(PreparedStatement ps = DBConnector.getPreparedStatement("UPDATE tbl_reservation SET customer_name=?,customer_tc=?,customer_phone=?,customer_email=?,child_number=?,adult_number=? WHERE reservation_id=?")) {
278 | ps.setString(1,customerName);
279 | ps.setString(2,customerTc);
280 | ps.setString(3,customerPhone);
281 | ps.setString(4,customerEmail);
282 | ps.setInt(5,childNumber);
283 | ps.setInt(6,adultNumber);
284 | ps.setInt(7,reservationID);
285 | ps.executeUpdate();
286 | ps.close();
287 | return true;
288 | }catch (Exception e){
289 | e.printStackTrace();
290 | }
291 | return false;
292 | }
293 |
294 |
295 | public boolean deleteReservation(int reservationID) {
296 | try(PreparedStatement ps = DBConnector.getPreparedStatement("DELETE FROM tbl_reservation WHERE reservation_id="+reservationID)) {
297 | int result = ps.executeUpdate();
298 | ps.close();
299 | return result != -1;
300 | }catch (Exception e){
301 | Helper.showMsg("Hata","Veri Tabanı Hatası!!!");
302 | }
303 | return false;
304 | }
305 |
306 |
307 | public void deleteRoomByHotelID(int hotelID) {
308 | try(PreparedStatement ps = DBConnector.getPreparedStatement("DELETE FROM tbl_hotel_room WHERE hotel_id="+hotelID)) {
309 | ps.executeUpdate();
310 | }catch (Exception e){
311 | e.printStackTrace();
312 | }
313 | }
314 | public void deleteSeasonByHotelID(int hotelID) {
315 | try(PreparedStatement ps = DBConnector.getPreparedStatement("DELETE FROM tbl_season WHERE hotel_id="+hotelID)) {
316 | ps.executeUpdate();
317 | }catch (Exception e){
318 | e.printStackTrace();
319 | }
320 | }
321 | public void deleteReservationByHotelID(int hotelID){
322 | try(PreparedStatement ps = DBConnector.getPreparedStatement("DELETE FROM tbl_reservation WHERE hotel_id="+hotelID)) {
323 | ps.executeUpdate();
324 | }catch (Exception e){
325 | e.printStackTrace();
326 | }
327 | }
328 | }
329 |
--------------------------------------------------------------------------------
/patika_turizm.sql:
--------------------------------------------------------------------------------
1 | -- MySQL dump 10.13 Distrib 8.0.36, for Win64 (x86_64)
2 | --
3 | -- Host: localhost Database: patika_turizm
4 | -- ------------------------------------------------------
5 | -- Server version 8.0.36
6 |
7 | /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
8 | /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
9 | /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
10 | /*!50503 SET NAMES utf8 */;
11 | /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
12 | /*!40103 SET TIME_ZONE='+00:00' */;
13 | /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
14 | /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
15 | /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
16 | /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
17 |
18 | --
19 | -- Table structure for table `tbl_featuretype`
20 | --
21 |
22 | DROP TABLE IF EXISTS `tbl_featuretype`;
23 | /*!40101 SET @saved_cs_client = @@character_set_client */;
24 | /*!50503 SET character_set_client = utf8mb4 */;
25 | CREATE TABLE `tbl_featuretype` (
26 | `id` int NOT NULL AUTO_INCREMENT,
27 | `feature_name` varchar(150) NOT NULL,
28 | PRIMARY KEY (`id`)
29 | ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb3;
30 | /*!40101 SET character_set_client = @saved_cs_client */;
31 |
32 | --
33 | -- Dumping data for table `tbl_featuretype`
34 | --
35 |
36 | LOCK TABLES `tbl_featuretype` WRITE;
37 | /*!40000 ALTER TABLE `tbl_featuretype` DISABLE KEYS */;
38 | INSERT INTO `tbl_featuretype` VALUES (1,'Ücretsiz Otopark'),(2,'7/24 Oda Servisi'),(3,'Fitness Center'),(4,'SPA'),(5,'Ücretsiz WiFi'),(6,'Yüzme havuzu'),(7,'Hotel Concierge');
39 | /*!40000 ALTER TABLE `tbl_featuretype` ENABLE KEYS */;
40 | UNLOCK TABLES;
41 |
42 | --
43 | -- Table structure for table `tbl_hotel`
44 | --
45 |
46 | DROP TABLE IF EXISTS `tbl_hotel`;
47 | /*!40101 SET @saved_cs_client = @@character_set_client */;
48 | /*!50503 SET character_set_client = utf8mb4 */;
49 | CREATE TABLE `tbl_hotel` (
50 | `hotel_id` int NOT NULL AUTO_INCREMENT,
51 | `name` varchar(255) NOT NULL,
52 | `city` varchar(150) NOT NULL,
53 | `region` varchar(255) NOT NULL,
54 | `address` varchar(255) NOT NULL,
55 | `email` varchar(255) NOT NULL,
56 | `phoneNumber` varchar(15) NOT NULL,
57 | `stars` int NOT NULL,
58 | PRIMARY KEY (`hotel_id`)
59 | ) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8mb3;
60 | /*!40101 SET character_set_client = @saved_cs_client */;
61 |
62 | --
63 | -- Dumping data for table `tbl_hotel`
64 | --
65 |
66 | LOCK TABLES `tbl_hotel` WRITE;
67 | /*!40000 ALTER TABLE `tbl_hotel` DISABLE KEYS */;
68 | INSERT INTO `tbl_hotel` VALUES (1,'Marmara Hotel','İstanbul','Taksim','Beyoğlu, İstanbul','marmara@gmail','02125058085',3),(2,'Hilton Hotel','İstanbul','Şişli','Harbiye, Cumhuriyet Cd. No:50, 34367 Şişli/İstanbul','hilton@gmail.com','02123406780',4),(3,'kapadokya','nevşehir','kapadokya','Ortahisar/Kapadokya/Nevşehir','kapadokya@gmail.com','021678',4),(4,'Swissotel','İzmir','Alsancak, Konak, İzmir','Konak','swissotel@gmail.com','02325056070',3),(9,'Otel Seyhan','Adana','Seyhan','Seyhan, Turhan Cemal Beriker Blv. Otel Seyhan 20/A, 01120',' fitness@otelseyhan.com.tr',' 4553030',4),(12,'Edis Premier Hotel','Adana','Seyhan',' Zahit Akdağ Blv. No:2, 01360 Çukurova/Adana','premier@hotmail.com',' 0322290',1),(13,'Anemon Hotel','Ankara','Çankaya','Kavaklıdere, Konur Sok. No:60, 06680 Çankaya/Ankara','anemon@hotmail.com','03129502160',3),(14,'Sürmeli Hotels','Adana','Seyhan','Beriker Blv. Otel Seyhan 20/A, 01120',' hotel@sürmeli.com.tr',' 4553030',4),(15,'Vinifera Vineyards Hotel','İzmir','Selçuk','Yedi Bilgeler, 35920 Selçuk/İzmir','vinifre@hotmail.com','894 82 57',5),(16,'Hilton Hotel','İzmir','Konak','İsmet Kaptan, Gazi Osman Paşa Blv. No:7, 35210 Konak/İzmir','izmirhilton@hotmail.com','506874',5),(17,'hilton','kayseri','melikgazi','alpaslan mah kayseri','hilton@gmail','789',3),(22,'Rönesans','İzmir','Konak','Konak, Konak mahallesi','rönesans@rönesans.com','023245698741',4),(23,'İzmir Ege Otel','İzmir','Alsancak','Alsancak mah,1409 sk. no:10','otelege@gmail.com','5368744125',3),(24,'Patika Otel','İzmir','Buca','Buca koop. mah. 1409 sk.','bucali@gmail.com','541575',5);
69 | /*!40000 ALTER TABLE `tbl_hotel` ENABLE KEYS */;
70 | UNLOCK TABLES;
71 |
72 | --
73 | -- Table structure for table `tbl_hotel_feature`
74 | --
75 |
76 | DROP TABLE IF EXISTS `tbl_hotel_feature`;
77 | /*!40101 SET @saved_cs_client = @@character_set_client */;
78 | /*!50503 SET character_set_client = utf8mb4 */;
79 | CREATE TABLE `tbl_hotel_feature` (
80 | `hotel_id` int NOT NULL,
81 | `feature_id` int NOT NULL,
82 | `feature_name` varchar(150) NOT NULL
83 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
84 | /*!40101 SET character_set_client = @saved_cs_client */;
85 |
86 | --
87 | -- Dumping data for table `tbl_hotel_feature`
88 | --
89 |
90 | LOCK TABLES `tbl_hotel_feature` WRITE;
91 | /*!40000 ALTER TABLE `tbl_hotel_feature` DISABLE KEYS */;
92 | INSERT INTO `tbl_hotel_feature` VALUES (1,5,'Ücretsiz WİFİ'),(9,7,'Hotel Concierge'),(9,7,'Hotel Concierge'),(1,1,'Ücretsiz Otopark'),(2,2,'7/24 Oda Servisi'),(3,5,'Ücretsiz WiFi'),(4,1,'Ücretsiz Otopark'),(5,4,'Fitness Center'),(12,2,'7/24 Oda Servisi'),(9,8,'Yüzme Havuzu'),(13,1,'Ücretsiz Otopark'),(14,5,'Ücretsiz WiFi'),(15,4,'Fitness Center'),(16,1,'Ücretsiz Otopark'),(16,8,'Yüzme Havuzu'),(12,7,'Hotel Concierge'),(1,6,'Yüzme havuzu'),(1,4,'SPA'),(9,5,'Ücretsiz WiFi'),(17,3,'Fitness Center'),(17,6,'Yüzme havuzu'),(3,5,'Ücretsiz WiFi'),(16,5,'Ücretsiz WiFi'),(9,6,'Yüzme havuzu'),(4,2,'7/24 Oda Servisi'),(15,6,'Yüzme havuzu'),(5,1,'Ücretsiz Otopark'),(2,4,'SPA'),(24,5,'Ücretsiz WiFi'),(24,3,'Fitness Center'),(16,2,'7/24 Oda Servisi'),(16,4,'SPA'),(23,5,'Ücretsiz WiFi'),(22,1,'Ücretsiz Otopark');
93 | /*!40000 ALTER TABLE `tbl_hotel_feature` ENABLE KEYS */;
94 | UNLOCK TABLES;
95 |
96 | --
97 | -- Table structure for table `tbl_hotel_pension`
98 | --
99 |
100 | DROP TABLE IF EXISTS `tbl_hotel_pension`;
101 | /*!40101 SET @saved_cs_client = @@character_set_client */;
102 | /*!50503 SET character_set_client = utf8mb4 */;
103 | CREATE TABLE `tbl_hotel_pension` (
104 | `id` int NOT NULL AUTO_INCREMENT,
105 | `hotel_id` int NOT NULL,
106 | `pension_id` int NOT NULL,
107 | `pension_name` varchar(150) NOT NULL,
108 | PRIMARY KEY (`id`)
109 | ) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=utf8mb3;
110 | /*!40101 SET character_set_client = @saved_cs_client */;
111 |
112 | --
113 | -- Dumping data for table `tbl_hotel_pension`
114 | --
115 |
116 | LOCK TABLES `tbl_hotel_pension` WRITE;
117 | /*!40000 ALTER TABLE `tbl_hotel_pension` DISABLE KEYS */;
118 | INSERT INTO `tbl_hotel_pension` VALUES (8,13,2,'Tam Pansiyon'),(9,1,6,'Herşey Dahil'),(10,15,2,'Tam Pansiyon'),(11,16,7,'Oda Kahvaltı'),(13,15,7,'Alkol Hariç Full credit'),(16,23,4,'Tam Pansiyon'),(17,23,5,'Yarım Pansiyon'),(18,2,2,'Her Şey Dahil'),(19,24,4,'Tam Pansiyon'),(20,24,5,'Yarım Pansiyon'),(21,24,6,'Sadece Yatak'),(22,5,3,'Oda Kahvaltı'),(23,16,2,'Her Şey Dahil'),(27,23,5,'Yarım Pansiyon'),(29,4,2,'Her Şey Dahil'),(30,4,5,'Yarım Pansiyon'),(33,22,1,'Ultra Her Şey Dahil'),(34,22,2,'Her Şey Dahil');
119 | /*!40000 ALTER TABLE `tbl_hotel_pension` ENABLE KEYS */;
120 | UNLOCK TABLES;
121 |
122 | --
123 | -- Table structure for table `tbl_hotel_room`
124 | --
125 |
126 | DROP TABLE IF EXISTS `tbl_hotel_room`;
127 | /*!40101 SET @saved_cs_client = @@character_set_client */;
128 | /*!50503 SET character_set_client = utf8mb4 */;
129 | CREATE TABLE `tbl_hotel_room` (
130 | `room_id` int NOT NULL AUTO_INCREMENT,
131 | `hotel_id` int NOT NULL,
132 | `season_id` int NOT NULL,
133 | `pension_id` int NOT NULL,
134 | `room_type` varchar(150) NOT NULL,
135 | `bed_number` int NOT NULL,
136 | `stock` int NOT NULL,
137 | `price_child` int NOT NULL,
138 | `price_adult` int NOT NULL,
139 | PRIMARY KEY (`room_id`)
140 | ) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8mb3;
141 | /*!40101 SET character_set_client = @saved_cs_client */;
142 |
143 | --
144 | -- Dumping data for table `tbl_hotel_room`
145 | --
146 |
147 | LOCK TABLES `tbl_hotel_room` WRITE;
148 | /*!40000 ALTER TABLE `tbl_hotel_room` DISABLE KEYS */;
149 | INSERT INTO `tbl_hotel_room` VALUES (1,1,1,1,'Single',70,199,200,300),(2,1,10,2,'Double',10,100,200,500),(3,9,13,3,'King',2,5,700,900),(16,15,14,2,'single',3,5,400,900),(17,1,15,6,'king',4,5,600,800),(18,9,16,5,'junior',3,6,700,1000),(19,1,1,1,'junior king',3,6,500,600),(20,9,16,5,'single',2,5,700,900),(21,9,16,5,'double',2,3,400,600),(22,2,10,1,'King',2,3,1000,2000),(23,23,21,4,'King',2,4,500,1500),(24,24,22,4,'2 Kişilik',2,2,500,1000),(26,16,25,2,'Jumbo',2,10,1000,2500);
150 | /*!40000 ALTER TABLE `tbl_hotel_room` ENABLE KEYS */;
151 | UNLOCK TABLES;
152 |
153 | --
154 | -- Table structure for table `tbl_pensiontype`
155 | --
156 |
157 | DROP TABLE IF EXISTS `tbl_pensiontype`;
158 | /*!40101 SET @saved_cs_client = @@character_set_client */;
159 | /*!50503 SET character_set_client = utf8mb4 */;
160 | CREATE TABLE `tbl_pensiontype` (
161 | `id` int NOT NULL AUTO_INCREMENT,
162 | `pension_name` varchar(150) NOT NULL,
163 | PRIMARY KEY (`id`)
164 | ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb3;
165 | /*!40101 SET character_set_client = @saved_cs_client */;
166 |
167 | --
168 | -- Dumping data for table `tbl_pensiontype`
169 | --
170 |
171 | LOCK TABLES `tbl_pensiontype` WRITE;
172 | /*!40000 ALTER TABLE `tbl_pensiontype` DISABLE KEYS */;
173 | INSERT INTO `tbl_pensiontype` VALUES (1,'Ultra Her Şey Dahil'),(2,'Her Şey Dahil'),(3,'Oda Kahvaltı'),(4,'Tam Pansiyon'),(5,'Yarım Pansiyon'),(6,'Sadece Yatak'),(7,'Alkol Hariç Full credit');
174 | /*!40000 ALTER TABLE `tbl_pensiontype` ENABLE KEYS */;
175 | UNLOCK TABLES;
176 |
177 | --
178 | -- Table structure for table `tbl_reservation`
179 | --
180 |
181 | DROP TABLE IF EXISTS `tbl_reservation`;
182 | /*!40101 SET @saved_cs_client = @@character_set_client */;
183 | /*!50503 SET character_set_client = utf8mb4 */;
184 | CREATE TABLE `tbl_reservation` (
185 | `reservation_id` int NOT NULL AUTO_INCREMENT,
186 | `hotel_id` int NOT NULL,
187 | `room_id` int NOT NULL,
188 | `customer_name` varchar(150) NOT NULL,
189 | `customer_tc` varchar(150) NOT NULL,
190 | `customer_phone` varchar(150) NOT NULL,
191 | `customer_email` varchar(150) NOT NULL,
192 | `child_number` int NOT NULL,
193 | `adult_number` int NOT NULL,
194 | PRIMARY KEY (`reservation_id`)
195 | ) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8mb3;
196 | /*!40101 SET character_set_client = @saved_cs_client */;
197 |
198 | --
199 | -- Dumping data for table `tbl_reservation`
200 | --
201 |
202 | LOCK TABLES `tbl_reservation` WRITE;
203 | /*!40000 ALTER TABLE `tbl_reservation` DISABLE KEYS */;
204 | INSERT INTO `tbl_reservation` VALUES (22,1,1,'ilke','456321','123654','ilke@gmail.com',0,1),(23,9,3,'Emre Arabali','5458211','584566323','emre@emre.com.tr',0,2),(26,24,24,'Yasin','00008888000','5985445','yasin@arabeni.com',0,1),(27,24,24,'said','54545','541541','541541@gmail.com',1,1),(28,23,23,'asdaf','54545','878787','asdaf@gmail.com.tr',0,2),(29,24,24,'ali balkı','55585','54545454','asd@asd.com',1,1);
205 | /*!40000 ALTER TABLE `tbl_reservation` ENABLE KEYS */;
206 | UNLOCK TABLES;
207 |
208 | --
209 | -- Table structure for table `tbl_room_property`
210 | --
211 |
212 | DROP TABLE IF EXISTS `tbl_room_property`;
213 | /*!40101 SET @saved_cs_client = @@character_set_client */;
214 | /*!50503 SET character_set_client = utf8mb4 */;
215 | CREATE TABLE `tbl_room_property` (
216 | `room_id` int NOT NULL,
217 | `property_name` varchar(150) NOT NULL
218 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
219 | /*!40101 SET character_set_client = @saved_cs_client */;
220 |
221 | --
222 | -- Dumping data for table `tbl_room_property`
223 | --
224 |
225 | LOCK TABLES `tbl_room_property` WRITE;
226 | /*!40000 ALTER TABLE `tbl_room_property` DISABLE KEYS */;
227 | INSERT INTO `tbl_room_property` VALUES (1,'Televizyon'),(2,'Minibar'),(3,'Kasa'),(4,'Ücretsiz Wifi'),(5,'Wifi'),(6,'Oyun Konsolu'),(7,'Projeksiyon'),(20,'televizyon'),(22,'Televizyon'),(24,'Klima'),(24,'Televizyon');
228 | /*!40000 ALTER TABLE `tbl_room_property` ENABLE KEYS */;
229 | UNLOCK TABLES;
230 |
231 | --
232 | -- Table structure for table `tbl_season`
233 | --
234 |
235 | DROP TABLE IF EXISTS `tbl_season`;
236 | /*!40101 SET @saved_cs_client = @@character_set_client */;
237 | /*!50503 SET character_set_client = utf8mb4 */;
238 | CREATE TABLE `tbl_season` (
239 | `season_id` int NOT NULL AUTO_INCREMENT,
240 | `hotel_id` int NOT NULL,
241 | `season_name` varchar(150) NOT NULL,
242 | `start_date` date NOT NULL,
243 | `end_date` date NOT NULL,
244 | PRIMARY KEY (`season_id`)
245 | ) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8mb3;
246 | /*!40101 SET character_set_client = @saved_cs_client */;
247 |
248 | --
249 | -- Dumping data for table `tbl_season`
250 | --
251 |
252 | LOCK TABLES `tbl_season` WRITE;
253 | /*!40000 ALTER TABLE `tbl_season` DISABLE KEYS */;
254 | INSERT INTO `tbl_season` VALUES (1,1,'Kış Sezonu','2024-01-01','2024-05-31'),(10,2,'Yaz sezonu','2024-05-01','2024-09-01'),(11,3,'Yaz sezonu','2024-05-01','2024-09-01'),(12,4,'Kış Sezonu','2024-01-01','2024-05-31'),(14,15,'1','2024-02-01','2024-03-01'),(15,1,'Yaz sezonu','2024-06-06','2024-09-06'),(16,9,'kış sezonu','2024-01-01','2024-09-09'),(17,17,'Yaz Sezonu','2024-06-01','2024-09-01'),(18,3,'Kış sezonu','2024-01-01','2024-06-01'),(19,16,'kış sezonu','2024-01-01','2024-05-01'),(20,9,'yaz sezonu','2024-06-01','2024-09-01'),(21,23,'Yaz Sezonu','2024-01-01','2024-06-01'),(22,24,'Yaz Sezon','2024-01-01','2024-05-31'),(24,12,'winter','2025-02-01','2025-05-01'),(25,16,'Yaz Sezonu','2024-06-01','2024-09-30');
255 | /*!40000 ALTER TABLE `tbl_season` ENABLE KEYS */;
256 | UNLOCK TABLES;
257 |
258 | --
259 | -- Table structure for table `tbl_user`
260 | --
261 |
262 | DROP TABLE IF EXISTS `tbl_user`;
263 | /*!40101 SET @saved_cs_client = @@character_set_client */;
264 | /*!50503 SET character_set_client = utf8mb4 */;
265 | CREATE TABLE `tbl_user` (
266 | `id` int NOT NULL AUTO_INCREMENT,
267 | `tcNo` varchar(11) NOT NULL,
268 | `username` varchar(100) NOT NULL,
269 | `password` varchar(50) NOT NULL,
270 | `name` varchar(255) NOT NULL,
271 | `surname` varchar(255) NOT NULL,
272 | `usertype` enum('admin','employee','user') NOT NULL,
273 | PRIMARY KEY (`id`)
274 | ) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8mb3;
275 | /*!40101 SET character_set_client = @saved_cs_client */;
276 |
277 | --
278 | -- Dumping data for table `tbl_user`
279 | --
280 |
281 | LOCK TABLES `tbl_user` WRITE;
282 | /*!40000 ALTER TABLE `tbl_user` DISABLE KEYS */;
283 | INSERT INTO `tbl_user` VALUES (1,'3578','Fatih','541','Fatih','Balkı','employee'),(2,'4555','İlke','29','İlke','Balkı','admin'),(26,'5590621','admin','admin','Yönetici','Yönetici','admin'),(27,'545454','selami','sel1','selami','hello','admin'),(29,'5454','asddas','asddas','asddas','asddas','employee'),(30,'5454','asd','da','asss','assdd','employee');
284 | /*!40000 ALTER TABLE `tbl_user` ENABLE KEYS */;
285 | UNLOCK TABLES;
286 |
287 | --
288 | -- Dumping routines for database 'patika_turizm'
289 | --
290 | /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
291 |
292 | /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
293 | /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
294 | /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
295 | /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
296 | /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
297 | /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
298 | /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
299 |
300 | -- Dump completed on 2024-04-23 22:24:31
301 |
--------------------------------------------------------------------------------
/src/view/EmployeeHotelDetailGUI.java:
--------------------------------------------------------------------------------
1 | package view;
2 | import business.EmployeeHotelDetailManager;
3 | import core.Helper;
4 | import entity.*;
5 | import javax.swing.*;
6 | import javax.swing.table.DefaultTableModel;
7 | import java.awt.event.MouseAdapter;
8 | import java.awt.event.MouseEvent;
9 | import java.time.LocalDate;
10 | import java.time.format.DateTimeFormatter;
11 | public class EmployeeHotelDetailGUI extends Layout {
12 | private Hotel hotel;
13 | private EmployeeHotelDetailManager detailManager = new EmployeeHotelDetailManager();
14 | private JPanel container;
15 | private JTabbedPane tabbedPane;
16 | private JTable tbl_season;
17 | DefaultTableModel mdl_season;
18 | private Object[] row_season;
19 | private JTextField fld_season_name;
20 | private JTextField fld_season_startDate;
21 | private JTextField fld_season_endDate;
22 | private JButton btn_addSeason;
23 | private JButton btn_addPensiontoHotel;
24 | private JComboBox cmb_pension;
25 | private JTable tbl_pension;
26 | private JTable tbl_hotel_feature;
27 | private DefaultTableModel mdl_hotelFeature;
28 | private Object[] row_hotelFeature;
29 | private JComboBox cmb_hotelFeatures;
30 | private JButton btn_addHotelFeature;
31 | private JComboBox cmb_room_season;
32 | private JComboBox cmb_room_pension;
33 | private JTextField fld_room_type;
34 | private JTextField fld_room_bedNumber;
35 | private JTextField fld_room_stock;
36 | private JTextField fld_room_price_child;
37 | private JButton btn_addHotelRoom;
38 | DefaultTableModel mdl_pension;
39 | private Object[] row_pension;
40 | private JTable tbl_room;
41 | private JTextField fld_room_price_adult;
42 | private JPopupMenu tbl_room_popup;
43 | DefaultTableModel mdl_room;
44 | private Object[] row_room;
45 | public EmployeeHotelDetailGUI(Hotel hotel) {
46 | this.hotel = hotel;
47 | this.add(container);
48 | guiInitialize(1000,500);
49 |
50 | // Sezon tablo oluşturma
51 | mdl_season = new DefaultTableModel();
52 |
53 | // tablonun sütun isimleri
54 | mdl_season.setColumnIdentifiers(new Object[]{"ID","Sezon","Başlangıç Tarihi","Bitiş Tarihi"});
55 | row_season = new Object[4];
56 | tbl_season.setModel(mdl_season);
57 | tbl_season.addMouseListener(new MouseAdapter() {
58 | @Override
59 | public void mousePressed(MouseEvent e) {
60 | tbl_season.setRowSelectionInterval(tbl_season.rowAtPoint(e.getPoint()), tbl_season.rowAtPoint(e.getPoint()));
61 | }
62 | });
63 | JPopupMenu tbl_season_popup = new JPopupMenu();
64 | // Otel sezon silme işlemi
65 | tbl_season_popup.add("Sil").addActionListener(e ->{
66 | if(detailManager.deleteSeason(Integer.parseInt(tbl_season.getValueAt(tbl_season.getSelectedRow(),0).toString()))){
67 | loadSeasonList();
68 | Helper.showMsg("Başarılı","Otel sezon silindi !");
69 | }else{
70 | Helper.showMsg("Uyarı!","Otel sezon silerken hata oluştu");}
71 | });
72 | tbl_season.setComponentPopupMenu(tbl_season_popup);
73 | loadSeasonList();
74 | // işlem sonunda güncel tabloyu görmek için loadSeasonList() metodunu çağırmalıyız
75 |
76 | // Pansiyon tablosu oluşturma
77 | mdl_pension = new DefaultTableModel();
78 | mdl_pension.setColumnIdentifiers(new Object[]{"ID","Pension"});
79 | row_pension = new Object[2];
80 | tbl_pension.setModel(mdl_pension);
81 | tbl_pension.addMouseListener(new MouseAdapter() {
82 | @Override
83 | public void mousePressed(MouseEvent e) {
84 | tbl_pension.setRowSelectionInterval(tbl_pension.rowAtPoint(e.getPoint()), tbl_pension.rowAtPoint(e.getPoint()));
85 | }
86 | });
87 | JPopupMenu tbl_pension_popup = new JPopupMenu();
88 |
89 | // Pansiyon silme
90 | tbl_pension_popup.add("Sil").addActionListener(e -> {
91 | if (detailManager.deleteHotelPension(Integer.parseInt(tbl_pension.getValueAt(tbl_pension.getSelectedRow(), 0).toString()))) {
92 | loadPensionList();
93 | Helper.showMsg("done","Pansiyon Silindi");
94 | } else {
95 | Helper.showMsg("error","İşlem Sırasında Hata Oluştu");
96 | }
97 | });
98 | tbl_pension.setComponentPopupMenu(tbl_pension_popup);
99 | loadPensionList();
100 |
101 | // tablo da yapılan işlemleri görmek için loadPensionList() metodu çağrılır
102 |
103 | // otel özelliklerinin listelendiği tabloyu oluşturma
104 | mdl_hotelFeature = new DefaultTableModel();
105 | mdl_hotelFeature.setColumnIdentifiers(new Object[]{"Özellik"});
106 | row_hotelFeature = new Object[1];
107 | tbl_hotel_feature.setModel(mdl_hotelFeature);
108 | tbl_hotel_feature.addMouseListener(new MouseAdapter() {
109 | @Override
110 | public void mousePressed(MouseEvent e) {
111 | tbl_hotel_feature.setRowSelectionInterval(tbl_hotel_feature.rowAtPoint(e.getPoint()), tbl_hotel_feature.rowAtPoint(e.getPoint()));
112 | }
113 | });
114 | JPopupMenu tbl_hotelFeature_popup = new JPopupMenu();
115 |
116 | // Otel özelliği silme
117 | tbl_hotelFeature_popup.add("Sil").addActionListener(e ->{
118 | if(detailManager.deleteHotelFeature(hotel.getHotelID(),
119 | tbl_hotel_feature.getValueAt(tbl_hotel_feature.getSelectedRow(),0).toString())){
120 | loadHotelFeatureList();
121 | Helper.showMsg("Başarılı","Pansiyon silindi");
122 | }else{
123 | Helper.showMsg("Uyarı","Pansiyon silinirken hata oluştu");}
124 | });
125 | tbl_hotel_feature.setComponentPopupMenu(tbl_hotelFeature_popup);
126 | loadHotelFeatureList();
127 |
128 | // tabloda yapılan değişiklikleri görmek için loadHotelFeatureList() metodu çağrılır
129 |
130 | // odanın listeleneceği tabloyu oluşturma
131 | mdl_room = new DefaultTableModel();
132 | mdl_room.setColumnIdentifiers(new Object[]{"ID","Sezon","Pansiyon","Oda tipi","Yatak sayısı","Stok","Çocuk fiyatı","Yetişkin fiyatı"});
133 | row_room = new Object[8];
134 | tbl_room.setModel(mdl_room);
135 | loadHotelRoomList();
136 | // mouse tıklandığında ilgili satır seçilir
137 | tbl_room.addMouseListener(new MouseAdapter() {
138 | @Override
139 | public void mousePressed(MouseEvent e) {
140 | tbl_room.setRowSelectionInterval(tbl_room.rowAtPoint(e.getPoint()), tbl_room.rowAtPoint(e.getPoint()));
141 | }
142 | });
143 | tbl_room_popup = new JPopupMenu();
144 |
145 | // Oda özelliği ekleme
146 | tbl_room_popup.add("Oda özelliği ekle").addActionListener(e -> {
147 | int id = Integer.parseInt(tbl_room.getValueAt(tbl_room.getSelectedRow(),0).toString());
148 | AddRoomPropertyGUI addRoomProperty = new AddRoomPropertyGUI(detailManager,id);
149 | });
150 |
151 | // Oda bilgisi güncelleme
152 |
153 | tbl_room_popup.add("Güncelle").addActionListener(e -> {
154 | if(tbl_room.getCellEditor() != null){
155 | tbl_room.getCellEditor().stopCellEditing();
156 | if(detailManager.updateRoomInfo(
157 | tbl_room.getValueAt(tbl_room.getSelectedRow(),3).toString(),
158 | Integer.parseInt(tbl_room.getValueAt(tbl_room.getSelectedRow(),4).toString()),
159 | Integer.parseInt(tbl_room.getValueAt(tbl_room.getSelectedRow(),5).toString()),
160 | Integer.parseInt(tbl_room.getValueAt(tbl_room.getSelectedRow(),6).toString()),
161 | Integer.parseInt(tbl_room.getValueAt(tbl_room.getSelectedRow(),7).toString())
162 | )){
163 | loadHotelRoomList();
164 | Helper.showMsg("Başarılı","Güncelleme işlemi başarılı");
165 | }else {
166 | Helper.showMsg("Uyarı","Güncelleme işlemi başarısız");
167 | }
168 | }
169 | });
170 |
171 | // Oda Silme
172 |
173 | tbl_room_popup.add("Sil").addActionListener(e -> {
174 | if(detailManager.deleteRoom((int)tbl_room.getValueAt(tbl_room.getSelectedRow(),0))){
175 | loadHotelRoomList();
176 | Helper.showMsg("Başarılı","Silme işlemi başarılı");
177 | }
178 | });
179 | tbl_room.setComponentPopupMenu(tbl_room_popup);
180 |
181 | // comboboxların çağrılması
182 | loadPensionCombobox();
183 | loadHotelFeaturesCombobox();
184 | loadRoomSeasonCombobox();
185 | loadRoomPensionCombobox();
186 |
187 | // otele sezon ekleme işlemi
188 | btn_addSeason.addActionListener(e -> {
189 | if(isValidDates(fld_season_startDate.getText(), fld_season_endDate.getText())){
190 | if(detailManager.addSeason(
191 | hotel.getHotelID(),
192 | fld_season_name.getText(),
193 | formatDate(fld_season_startDate.getText()),
194 | formatDate(fld_season_endDate.getText()))){
195 | loadSeasonList();
196 | loadRoomSeasonCombobox();
197 | Helper.showMsg("Başarılı","Sezon başarıyla eklendi");
198 | }
199 | }
200 | });
201 |
202 | // Otellere pansiyon eklenmesi
203 | btn_addPensiontoHotel.addActionListener(e -> {
204 | if(Helper.confirm("sure")){
205 | detailManager.addPensiontoHotel(
206 | hotel.getHotelID(),
207 | ((Pension) cmb_pension.getSelectedItem()).getId(),
208 | ((Pension) cmb_pension.getSelectedItem()).getPensionName()
209 | );
210 | loadPensionList();
211 | loadRoomPensionCombobox();
212 | Helper.showMsg("Başarılı","Ekleme işlemi gerçekleşti");
213 | }
214 | });
215 |
216 |
217 | // Otellere özellik eklenmesi
218 | btn_addHotelFeature.addActionListener(e -> {
219 | if(Helper.confirm("sure")){
220 | detailManager.addHotelFeature(
221 | hotel.getHotelID(),
222 | ((HotelFeature) cmb_hotelFeatures.getSelectedItem()).getId(),
223 | ((HotelFeature) cmb_hotelFeatures.getSelectedItem()).getFeatureName()
224 | );
225 | loadHotelFeatureList();
226 | Helper.showMsg("Başarılı","Ekleme işlemi başarılı");
227 | }
228 |
229 | });
230 |
231 | // otellere oda ekleme
232 | btn_addHotelRoom.addActionListener(e -> {
233 | if(Helper.isFieldEmpty(fld_room_type) || Helper.isFieldEmpty(fld_room_bedNumber) || !isNumeric(fld_room_bedNumber.getText()) || Helper.isFieldEmpty(fld_room_stock)|| !isNumeric(fld_room_stock.getText()) || Helper.isFieldEmpty(fld_room_price_child) || !isNumeric(fld_room_price_child.getText()) || Helper.isFieldEmpty(fld_room_price_adult) || !isNumeric(fld_room_price_adult.getText())){
234 | Helper.showMsg("Uyarı!","İlgili alanları doğru şekilde doldurun");
235 | }else {
236 | if(detailManager.addHotelRoom(
237 | hotel.getHotelID(),
238 | ((Season)cmb_room_season.getSelectedItem()).getId(),
239 | ((Pension)cmb_room_pension.getSelectedItem()).getId(),
240 | fld_room_type.getText(),
241 | Integer.parseInt(fld_room_bedNumber.getText()),
242 | Integer.parseInt(fld_room_stock.getText()),
243 | Integer.parseInt(fld_room_price_child.getText()),
244 | Integer.parseInt(fld_room_price_adult.getText())
245 | )){
246 | loadHotelRoomList();
247 | Helper.showMsg("Başarılı","Ekleme işlemi başarılı");
248 | }
249 | }
250 | });
251 | }
252 | private String formatDate(String input){
253 | String[] arr = input.split("/");
254 | return arr[2]+"-"+arr[1]+"-"+arr[0];
255 | }
256 | public Boolean isValidDates(String dateToCheck1,String dateToCheck2){
257 | DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("dd/MM/yyyy");
258 | LocalDate date = null;
259 | try {
260 | date = LocalDate.parse(dateToCheck1,DATE_TIME_FORMATTER);
261 | date = LocalDate.parse(dateToCheck2,DATE_TIME_FORMATTER);
262 | return true;
263 | }catch (Exception e){
264 | Helper.showMsg("Uyarı!","İstenilen formatta tarih giriniz");
265 | }
266 | return false;
267 | }
268 | private void loadSeasonList() {
269 | DefaultTableModel db = (DefaultTableModel) tbl_season.getModel();
270 | db.setRowCount(0);
271 | for(Season season : detailManager.getSeasonListByHotelID(hotel.getHotelID())){
272 | row_season[0] = season.getId();
273 | row_season[1] = season.getSeasonName();
274 | row_season[2] = season.getStartDate();
275 | row_season[3] = season.getEndDate();
276 | mdl_season.addRow(row_season);
277 | }
278 | }
279 | private void loadPensionList(){
280 | DefaultTableModel db = (DefaultTableModel) tbl_pension.getModel();
281 | db.setRowCount(0);
282 | for(Pension pension : detailManager.getPensionList(hotel.getHotelID())){
283 | row_pension[0] = pension.getId();
284 | row_pension[1] = pension.getPensionName();
285 | mdl_pension.addRow(row_pension);
286 | }
287 | }
288 | private void loadHotelFeatureList(){
289 | DefaultTableModel db = (DefaultTableModel) tbl_hotel_feature.getModel();
290 | db.setRowCount(0);
291 | for(HotelFeature hotelFeature : detailManager.getHotelFeatureListByID(hotel.getHotelID())){
292 | row_hotelFeature[0] = hotelFeature.getFeatureName();
293 | mdl_hotelFeature.addRow(row_hotelFeature);
294 | }
295 | }
296 | private void loadHotelRoomList(){
297 | DefaultTableModel db = (DefaultTableModel) tbl_room.getModel();
298 | db.setRowCount(0);
299 | for(Room room : detailManager.getHotelRoomListByID(hotel.getHotelID())){
300 | row_room[0] = room.getId();
301 | row_room[1] =detailManager.getSeasonNameByID(room.getSeasonID());
302 | row_room[2] =detailManager.getPensionNameByID(room.getPensionID());
303 | row_room[3] =room.getRoomType();
304 | row_room[4] =room.getBedNumber();
305 | row_room[5] =room.getStock();
306 | row_room[6] =room.getPriceChild();
307 | row_room[7] =room.getPriceAdult();
308 | mdl_room.addRow(row_room);
309 | }
310 | }
311 | private void loadPensionCombobox(){
312 | cmb_pension.removeAllItems();
313 | for(Pension pension : detailManager.getPensionTypeList()){
314 | cmb_pension.addItem(pension);
315 | }
316 | }
317 | private void loadHotelFeaturesCombobox(){
318 | cmb_hotelFeatures.removeAllItems();
319 | for(HotelFeature hotelFeature : detailManager.getHotelFeaturesList()){
320 | cmb_hotelFeatures.addItem(hotelFeature);
321 | }
322 | }
323 | private void loadRoomSeasonCombobox(){
324 | cmb_room_season.removeAllItems();
325 | for(Season season : detailManager.getSeasonListByHotelID(hotel.getHotelID())){
326 | cmb_room_season.addItem(season);
327 | }
328 | }
329 | private void loadRoomPensionCombobox(){
330 | cmb_room_pension.removeAllItems();
331 | for(Pension pension : detailManager.getPensionList(hotel.getHotelID())){
332 | cmb_room_pension.addItem(pension);
333 | }
334 | }
335 | public static boolean isNumeric(String maybeNumeric) {
336 |
337 | // regex kullanıldı, girilen değerin uygun aralıkta olması için
338 |
339 | return maybeNumeric != null && maybeNumeric.matches("[0-9]+");
340 | }
341 | }
342 |
343 |
--------------------------------------------------------------------------------
/src/view/EmployeeGUI.java:
--------------------------------------------------------------------------------
1 | package view;
2 | import business.EmployeeManager;
3 | import business.LoginManager;
4 | import core.Helper;
5 | import entity.Reservation;
6 | import dao.LoginDao;
7 | import entity.*;
8 | import javax.swing.*;
9 | import javax.swing.table.DefaultTableModel;
10 | import java.awt.event.*;
11 | import java.util.ArrayList;
12 | public class EmployeeGUI extends Layout {
13 | private final EmployeeManager employeeManager = new EmployeeManager();
14 | private JTabbedPane tabbedPane1;
15 | private User employee;
16 | private JPanel pnl_hotel;
17 | private JTable tbl_hotel; // gui den gelen jtable
18 | private JTextField fld_hotel_name;
19 | private JTextField fld_hotel_email;
20 | private JTextField fld_hotel_phoneNumber;
21 | private JButton btn_addHotel;
22 | private JComboBox cmb_hotel_star;
23 | private JPanel pnl_bottom;
24 | private JTextField fld_city;
25 | private JTextField fld_startDate;
26 | private JTextField fld_endDate;
27 | private JComboBox cmb_childNumber;
28 | private JComboBox cmb_adultNumber;
29 | private JButton btn_search;
30 | DefaultTableModel mdl_hotel_list; // veri set etmek için oluşturdumğum tbl
31 | private Object[] row_hotel_list;
32 | private JPopupMenu tbl_hotel_PopupMenu; // otel listesinde gezinirken employeenin yapacağı işlemleri gösteren menüler için tanımlandı
33 | private JTable tbl_search;
34 | private JTextArea fld_hotelFeatures;
35 | private JTextArea fld_roomFeatures;
36 | DefaultTableModel mdl_search;
37 | private Object[] row_search;
38 |
39 | private JTable tbl_rezervations;
40 | private JTextField fld_addcity;
41 | private JTextField fld_region;
42 | private JTextField fld_address;
43 | private JPanel container;
44 | private JButton btn_newUserButton;
45 | DefaultTableModel mdl_rezervations;
46 | private Object[] row_rezervations;
47 | private Hotel hotelUpdate;
48 | public EmployeeGUI(User employee) {
49 | this.employee = employee;
50 | add(container);
51 | guiInitialize(1300, 500);
52 | addWindowListener(new WindowAdapter() {
53 | @Override
54 | public void windowClosing(WindowEvent e) {
55 | LoginGUI backToLogin = new LoginGUI(new LoginManager(new LoginDao()));
56 | }
57 | });
58 |
59 | // Db de yer alan otellerin listesi için mdl_hotel_list(DefaultTableModel türünde) oluşturuldu. Buralarda destek alındı
60 |
61 | mdl_hotel_list = new DefaultTableModel() {
62 | @Override
63 | public boolean isCellEditable(int row, int column) {
64 | if (column == 0) {
65 | return false;
66 | }
67 | return super.isCellEditable(row, column);
68 | }
69 | };
70 | // Kullanıcının göreceği listeye col isimleri veridi
71 |
72 | Object[] col_hotel_list = {"ID", "Otel Adı", "Şehir", "Bölge", "Adres", "Email", "Telefon Numarası", "Yıldız"};
73 | mdl_hotel_list.setColumnIdentifiers(col_hotel_list);
74 | row_hotel_list = new Object[col_hotel_list.length];
75 | tbl_hotel.setModel(mdl_hotel_list); // son olarak default table, J table setlendi.
76 | tbl_hotel.getTableHeader().setReorderingAllowed(false);
77 | tbl_hotel.addMouseListener(new MouseAdapter() {
78 | @Override
79 | public void mousePressed(MouseEvent e) {
80 | tbl_hotel.setRowSelectionInterval(tbl_hotel.rowAtPoint(e.getPoint()), tbl_hotel.rowAtPoint(e.getPoint()));
81 | }
82 | });
83 | // employee ilgili oteli seçip clic yaptıktan sonra otelle ilgili işlemleri gerçekleştirebilecek
84 | tbl_hotel_PopupMenu = new JPopupMenu();
85 | tbl_hotel_PopupMenu.add("Yönet").addActionListener(e -> {
86 | int selectedHotelID = Integer.parseInt(tbl_hotel.getValueAt(tbl_hotel.getSelectedRow(), 0).toString());
87 | EmployeeHotelDetailGUI detailGUI = new EmployeeHotelDetailGUI(employeeManager.getHotelByID(selectedHotelID));
88 | });
89 | // otel bilgilerinin güncellenmesi
90 | tbl_hotel_PopupMenu.add("Güncelle").addActionListener(e -> {
91 | int selectedHotelID = this.getTableSelectedRow(tbl_hotel,0);
92 | Hotel selectedHotel = this.employeeManager.getHotelByID(selectedHotelID);
93 | setUpdateHotel(selectedHotel);
94 | this.fld_hotel_name.setText(selectedHotel.getHotelName());
95 | this.fld_addcity.setText(selectedHotel.getCity());
96 | this.fld_region.setText(selectedHotel.getRegion());
97 | this.fld_address.setText(selectedHotel.getAddress());
98 | this.fld_hotel_email.setText(selectedHotel.getHotelEmail());
99 | this.fld_hotel_phoneNumber.setText(selectedHotel.getHotelPhoneNumber());
100 | this.btn_addHotel.setText("Güncelle");
101 | });
102 | tbl_hotel_PopupMenu.add("Sil").addActionListener(e -> {
103 | if (employeeManager.deleteHotel(Integer.parseInt(tbl_hotel.getValueAt(tbl_hotel.getSelectedRow(), 0).toString()))) {
104 | loadHotelTable();
105 | Helper.showMsg("Başarılı", "Otel Silindi");
106 | }
107 | });
108 | tbl_hotel.setComponentPopupMenu(tbl_hotel_PopupMenu); // menülerin çalışması için en son setledik
109 | loadHotelTable();
110 | // rezervasyonların listeleneceği tablonun oluşturulması
111 | mdl_rezervations = new DefaultTableModel();
112 | mdl_rezervations.setColumnIdentifiers(new Object[]{"Rezervasyon ID", "Otel ID", "Otel", "Room ID", "İsim Soyisim", "TC. No", "Telefon", "Email", "Çocuk Sayısı", "Yetişkin Sayısı"});
113 | row_rezervations = new Object[10];
114 | tbl_rezervations.setModel(mdl_rezervations); // tabloyu görebilmemiz için en son setleme işlemini yapmalıyız
115 | tbl_rezervations.addMouseListener(new MouseAdapter() {
116 | @Override
117 | public void mousePressed(MouseEvent e) {
118 | tbl_rezervations.setRowSelectionInterval(tbl_rezervations.rowAtPoint(e.getPoint()), tbl_rezervations.rowAtPoint(e.getPoint()));
119 | }
120 | });
121 |
122 | // rezervayon bilgilerinin güncellenmesi
123 | JPopupMenu tbl_rezervations_popup = new JPopupMenu();
124 | tbl_rezervations_popup.add("Güncelle").addActionListener(e -> {
125 | // Take choose of user's reservation col index
126 | int selectedRow = tbl_rezervations.getSelectedRow();
127 | if (selectedRow != -1) {
128 | // Take user's reservation index
129 | int reservationID = Integer.parseInt(tbl_rezervations.getValueAt(selectedRow, 0).toString());
130 |
131 | // Take data from users
132 | String customerName = (String) tbl_rezervations.getValueAt(selectedRow, 4);
133 | String customerTc = (String) tbl_rezervations.getValueAt(selectedRow, 5);
134 | String customerPhone = (String) tbl_rezervations.getValueAt(selectedRow, 6);
135 | String customerEmail = (String) tbl_rezervations.getValueAt(selectedRow, 7);
136 | int childNumber = Integer.parseInt(tbl_rezervations.getValueAt(selectedRow, 8).toString());
137 | int adultNumber = Integer.parseInt(tbl_rezervations.getValueAt(selectedRow, 9).toString());
138 |
139 | // Call update
140 | if (employeeManager.updateReservation(reservationID, customerName, customerTc, customerPhone, customerEmail, childNumber, adultNumber)) {
141 | // If update procesess is succesfull, it update list of reservation
142 | loadRezervationList();
143 | Helper.showMsg("Başarılı","Güncelleme Başarılı");
144 | } else {
145 | Helper.showMsg("Hata","Güncelleme Yaparken Bir hata Oldu");
146 | }
147 | } else {
148 | Helper.showMsg("Info","Lütfen Satır Seçiniz");
149 | }
150 | });
151 |
152 | //silme işleminin yapıldığı yer
153 |
154 | tbl_rezervations_popup.add("Sil").addActionListener(e -> {
155 | if (employeeManager.deleteReservation(Integer.parseInt(tbl_rezervations.getValueAt(tbl_rezervations.getSelectedRow(), 0).toString()))) {
156 | employeeManager.increaseStock(Integer.parseInt(tbl_rezervations.getValueAt(tbl_rezervations.getSelectedRow(), 3).toString()));
157 | loadRezervationList();
158 | Helper.showMsg("Başarılı", "Rezervasyon Silindi");
159 | }
160 | });
161 | tbl_rezervations.setComponentPopupMenu(tbl_rezervations_popup);
162 | loadRezervationList();
163 | // Arama sonuçlarının listeleneceği tablo
164 | mdl_search = new DefaultTableModel();
165 | mdl_search.setColumnIdentifiers(new Object[]{"Sezon", "Sezon Başngıç Tarihi", "Sezon Bitiş Tarihi", "Hotel", "City", "District", "Address",
166 | "Email", "Telefon Numarası", "Yıldız", "Pansiyon", "Oda Tipi", "Yatak Sayısı", "Uygun Oda", "Çocuk Fiyatı", "Yetişkin Fiyatı", "Otel ID", "Oda ID"});
167 | row_search = new Object[18];
168 | tbl_search.addMouseListener(new MouseAdapter() {
169 | @Override
170 | public void mouseClicked(MouseEvent e) {
171 | tbl_search.setRowSelectionInterval(tbl_search.rowAtPoint(e.getPoint()), tbl_search.rowAtPoint(e.getPoint()));
172 | int hotelID = Integer.parseInt(tbl_search.getValueAt(tbl_search.getSelectedRow(), 16).toString());
173 | int roomID = Integer.parseInt(tbl_search.getValueAt(tbl_search.getSelectedRow(), 17).toString());
174 | loadHotelFeatures(fld_hotelFeatures, employeeManager.getHotelFeatures(hotelID));
175 | loadRoomFeatures(fld_roomFeatures, employeeManager.getRoomFeatures(roomID));
176 | }
177 | @Override
178 | public void mousePressed(MouseEvent e) {
179 | tbl_search.setRowSelectionInterval(tbl_search.rowAtPoint(e.getPoint()), tbl_search.rowAtPoint(e.getPoint()));
180 | }
181 | });
182 | tbl_search.setModel(mdl_search);
183 | tbl_search.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
184 | tbl_search.getColumnModel().getColumn(16).setPreferredWidth(0);
185 | tbl_search.getColumnModel().getColumn(17).setPreferredWidth(0);
186 | JPopupMenu reservation = new JPopupMenu();
187 |
188 | reservation.add("Rezervasyon").addActionListener(e -> {
189 | int adult_number = Integer.parseInt((String)cmb_adultNumber.getSelectedItem());
190 | int child_number = Integer.parseInt((String)cmb_childNumber.getSelectedItem());
191 | int child_price = Integer.parseInt(tbl_search.getValueAt(tbl_search.getSelectedRow(),14).toString());
192 | int adult_price = Integer.parseInt(tbl_search.getValueAt(tbl_search.getSelectedRow(),15).toString());
193 |
194 | if (fld_startDate.getText().isEmpty() || fld_endDate.getText().isEmpty()) {
195 | Helper.showMsg("Uyarı", "Uygun aralıkta tarih giriniz");
196 | return;
197 | }
198 | int days = employeeManager.calculateDay(fld_startDate.getText(), fld_endDate.getText());
199 | int totalPrice = ( adult_number * days * adult_price)+(child_number*child_price*days);
200 | ReservationGUI res = new ReservationGUI(
201 | this,
202 | employeeManager,
203 | Integer.parseInt(tbl_search.getValueAt(tbl_search.getSelectedRow(), 16).toString()),
204 | Integer.parseInt(tbl_search.getValueAt(tbl_search.getSelectedRow(), 17).toString()),
205 | Integer.parseInt(cmb_childNumber.getSelectedItem().toString()),
206 | Integer.parseInt(cmb_adultNumber.getSelectedItem().toString()),
207 | child_price,
208 | adult_price,
209 | totalPrice
210 | );
211 | });
212 | tbl_search.setComponentPopupMenu(reservation);
213 | loadSearchTable();
214 | btn_addHotel.addActionListener(e -> {
215 | if (Helper.isFieldEmpty(fld_hotel_name) || Helper.isFieldEmpty(fld_hotel_email) || Helper.isFieldEmpty(fld_hotel_phoneNumber)) {
216 | Helper.showMsg("Uyarı!", "İlgili alanların tamamını doldurunuz");
217 | } else {
218 | if(btn_addHotel.getText().equals("Güncelle")){
219 | employeeManager.updateHotel(
220 | hotelUpdate.getHotelID(),
221 | fld_hotel_name.getText(),
222 | fld_addcity.getText(),
223 | fld_region.getText(),
224 | fld_address.getText(),
225 | fld_hotel_email.getText(),
226 | fld_hotel_phoneNumber.getText(),
227 | Integer.parseInt((String) cmb_hotel_star.getSelectedItem()));
228 | loadHotelTable();
229 | Helper.showMsg("Başarılı", "Güncelleme İşlemi gerçekleşti");
230 | }
231 | else {
232 | employeeManager.addHotel(
233 | fld_hotel_name.getText(),
234 | fld_addcity.getText(),
235 | fld_region.getText(),
236 | fld_address.getText(),
237 | fld_hotel_email.getText(),
238 | fld_hotel_phoneNumber.getText(),
239 | Integer.parseInt((String) cmb_hotel_star.getSelectedItem())) ;
240 | loadHotelTable();
241 | Helper.showMsg("Başarılı", "Ekleme işlemi başarılı");
242 | }
243 | }
244 | });
245 | btn_newUserButton.addActionListener(e -> {
246 | this.fld_hotel_name.setText(null);
247 | this.fld_addcity.setText(null);
248 | this.fld_region.setText(null);
249 | this.fld_address.setText(null);
250 | this.fld_hotel_email.setText(null);
251 | this.fld_hotel_phoneNumber.setText(null);
252 | this.btn_addHotel.setText("Ekle");
253 | });
254 | btn_search.addActionListener(new ActionListener() {
255 | @Override
256 | public void actionPerformed(ActionEvent e) {
257 | if (!employeeManager.isValidDates(fld_startDate.getText(), fld_endDate.getText())) {
258 | Helper.showMsg("Uyarı!", "Uygun değer aralığında tarih giriniz (Gün/Ay/Yıl)");
259 | } else {
260 | ArrayList result = employeeManager.search(
261 | employeeManager.searchQuery(
262 | fld_city.getText(),
263 | fld_city.getText(),
264 | fld_city.getText(),
265 | fld_startDate.getText(),
266 | fld_endDate.getText(),
267 | Integer.parseInt(cmb_childNumber.getSelectedItem().toString()) + Integer.parseInt(cmb_adultNumber.getSelectedItem().toString())
268 | )
269 | );
270 | loadSearchTable(result);
271 | }
272 | }
273 | });
274 | }
275 | public void loadRezervationList() {
276 | DefaultTableModel db = (DefaultTableModel) tbl_rezervations.getModel();
277 | db.setRowCount(0);
278 | for (Reservation r : employeeManager.getReservationList()) {
279 | row_rezervations[0] = r.getId();
280 | row_rezervations[1] = r.getHotelID();
281 | row_rezervations[2] = employeeManager.getHotelByID(r.getHotelID()).getHotelName();
282 | row_rezervations[3] = r.getRoomID();
283 | row_rezervations[4] = r.getCustomerName();
284 | row_rezervations[5] = r.getCustomerTcNo();
285 | row_rezervations[6] = r.getCustomerPhone();
286 | row_rezervations[7] = r.getCustomerEmail();
287 | row_rezervations[8] = r.getChildNumber();
288 | row_rezervations[9] = r.getAdultNumber();
289 | mdl_rezervations.addRow(row_rezervations);
290 | }
291 | }
292 | private void loadHotelFeatures(JTextArea area, ArrayList list) {
293 | area.setText("");
294 | for (HotelFeature f : list) {
295 | area.append(f.getFeatureName() + "\n");
296 | }
297 | }
298 | private void loadRoomFeatures(JTextArea area, ArrayList list) {
299 | area.setText("");
300 | for (RoomFeature r : list) {
301 | area.append(r.getFeatureName() + "\n");
302 | }
303 | }
304 |
305 | private void loadSearchTable(ArrayList result) {
306 | DefaultTableModel db = (DefaultTableModel) tbl_search.getModel();
307 | db.setRowCount(0);
308 | for (SearchResult r : result) {
309 | row_search[0] = r.getSeasonName();
310 | row_search[1] = employeeManager.formatDateBack(r.getSeasonStartDate());
311 | row_search[2] = employeeManager.formatDateBack(r.getSeasonEndDate());
312 | row_search[3] = r.getHotelName();
313 | row_search[4] = r.getHotelCity();
314 | row_search[5] = r.getHotelRegion();
315 | row_search[6] = r.getHotelAdress();
316 | row_search[7] = r.getHotelEmail();
317 | row_search[8] = r.getHotelPhoneNumber();
318 | row_search[9] = r.getHotelStars();
319 | row_search[10] = employeeManager.getPensionNameByID(r.getPensionID());
320 | row_search[11] = r.getRoomType();
321 | row_search[12] = r.getRoomBedNumber();
322 | row_search[13] = r.getRoomStock();
323 | row_search[14] = r.getRoomPriceChildren();
324 | row_search[15] = r.getRoomPriceAdult();
325 | row_search[16] = r.getHotelID();
326 | row_search[17] = r.getRoomID();
327 | mdl_search.addRow(row_search);
328 | }
329 | }
330 | private void loadSearchTable() {
331 | DefaultTableModel db = (DefaultTableModel) tbl_search.getModel();
332 | db.setRowCount(0);
333 | for (SearchResult r : employeeManager.search()) {
334 | row_search[0] = r.getSeasonName();
335 | row_search[1] = employeeManager.formatDateBack(r.getSeasonStartDate());
336 | row_search[2] = employeeManager.formatDateBack(r.getSeasonEndDate());
337 | row_search[3] = r.getHotelName();
338 | row_search[4] = r.getHotelCity();
339 | row_search[5] = r.getHotelRegion();
340 | row_search[6] = r.getHotelAdress();
341 | row_search[7] = r.getHotelEmail();
342 | row_search[8] = r.getHotelPhoneNumber();
343 | row_search[9] = r.getHotelStars();
344 | row_search[10] = employeeManager.getPensionNameByID(r.getPensionID());
345 | row_search[11] = r.getRoomType();
346 | row_search[12] = r.getRoomBedNumber();
347 | row_search[13] = r.getRoomStock();
348 | row_search[14] = r.getRoomPriceChildren();
349 | row_search[15] = r.getRoomPriceAdult();
350 | row_search[16] = r.getHotelID();
351 | row_search[17] = r.getRoomID();
352 | mdl_search.addRow(row_search);
353 | }
354 | }
355 | private void loadHotelTable() {
356 | DefaultTableModel db = (DefaultTableModel) tbl_hotel.getModel();
357 | db.setRowCount(0);
358 | for (Hotel hotel : employeeManager.getHotelList()) {
359 | row_hotel_list[0] = hotel.getHotelID();
360 | row_hotel_list[1] = hotel.getHotelName();
361 | row_hotel_list[2] = hotel.getCity();
362 | row_hotel_list[3] = hotel.getRegion();
363 | row_hotel_list[4] = hotel.getAddress();
364 | row_hotel_list[5] = hotel.getHotelEmail();
365 | row_hotel_list[6] = hotel.getHotelPhoneNumber();
366 | row_hotel_list[7] = hotel.getHotelStars();
367 | mdl_hotel_list.addRow(row_hotel_list);
368 | }
369 | }
370 | private Hotel getUpdateHotel(){
371 | return hotelUpdate;
372 | }
373 | private void setUpdateHotel(Hotel hotel){
374 | this.hotelUpdate = hotel;
375 | }
376 | }
377 |
--------------------------------------------------------------------------------
/src/view/EmployeeHotelDetailGUI.form:
--------------------------------------------------------------------------------
1 |
2 |
415 |
--------------------------------------------------------------------------------
/src/view/EmployeeGUI.form:
--------------------------------------------------------------------------------
1 |
2 |
442 |
--------------------------------------------------------------------------------