From c850d7774ad718486c31e8da1dce1b3b9db51b0e Mon Sep 17 00:00:00 2001 From: Joseph Garner Date: Sun, 21 May 2017 23:26:11 +1000 Subject: [PATCH] "Fixed Booking" --- assignment/src/gui/LoginController.java | 37 ++++---- assignment/src/gui/RootController.java | 14 ++- .../src/program/DatabaseConnection.java | 86 ++++++++++++++++++- assignment/src/program/User.java | 2 +- 4 files changed, 118 insertions(+), 21 deletions(-) diff --git a/assignment/src/gui/LoginController.java b/assignment/src/gui/LoginController.java index a113cf2..d28ec2d 100644 --- a/assignment/src/gui/LoginController.java +++ b/assignment/src/gui/LoginController.java @@ -201,6 +201,7 @@ else if(program.getUser().getAccountType() == 2) log.debug("LOGGER: Account Type = 2"); IUser admin = userFactory.getUser("SuperUser"); admin.getUserWindow(); + popcmb(); } } else{ @@ -263,8 +264,8 @@ public void ini() connect.addBusinessOwner(businessID, "Luke", "Mason", "0417125229", "80 Stanton Grove Lilydale", "05:00", "06:30", "05:00", "07:00"); connect.addUser("William", "Apples22", 0,businessID); // customer attached to Business 2 connect.addUser("Hannah", "Apples22", 0,businessID); // customer attached to Business 2 - connect.addUserDetails(3, "William", "Porter", "will@mail.com", "0452368593", "01/01/2002", "Male"); - connect.addUserDetails(4, "Hannah", "Hawlking", "hannah@mail.com", "0452136859", "20/04/1995", "Famale"); + connect.addUserDetails(3, "William", "Porter", "will@mail.com", "0452368593", "01/01/2002", "Male", businessID); + connect.addUserDetails(4, "Hannah", "Hawlking", "hannah@mail.com", "0452136859", "20/04/1995", "Famale", businessID); connect.addUser("Test1234", "Apples22", 0,6); connect.addEmployee("Luke Charles",25,businessID); connect.addEmployee("David Smith",26.6,businessID); @@ -378,23 +379,23 @@ public void ini() connect.addService(new Service("Service 3",90,60,4)); - connect.addBooking(2,1, "21/04/2017", "10:00", "10:40", 1,"active",1); - connect.addBooking(2,2, "22/04/2017", "11:00", "11:59", 2,"canceled",1); - connect.addBooking(2,1, "23/04/2017", "10:00", "10:40", 3,"canceled",1); - connect.addBooking(2,2, "24/04/2017", "11:00", "11:59", 2,"canceled",1); - connect.addBooking(2,3, "25/04/2017", "8:00", "8:40", 2, "active",1); - connect.addBooking(2,2, "26/04/2017", "8:00", "8:40", 2, "canceled",1); - connect.addBooking(2,1, "21/04/2017", "10:00", "10:40", 1,"active",2); - connect.addBooking(2,2, "22/04/2017", "11:00", "11:59", 2,"canceled",2); - connect.addBooking(2,1, "23/04/2017", "10:00", "10:40", 3,"canceled",2); - connect.addBooking(2,2, "24/04/2017", "11:00", "11:59", 2,"canceled",2); - connect.addBooking(2,3, "25/04/2017", "8:00", "8:40", 2, "active",2); - connect.addBooking(2,2, "26/04/2017", "8:00", "8:40", 2, "canceled",2); - connect.addBooking(2,3, "27/04/2017", "10:00", "10:40", 1,"active",3); - connect.addBooking(2,2, "28/04/2017", "11:00", "11:59", 1,"active",3); - connect.addBooking(2,3, "29/04/2017", "8:00", "8:40", 1, "canceled",3); + connect.addBooking(3,2, "21/04/2017", "10:00", "10:40", 1,"active",1); + connect.addBooking(3,2, "22/04/2017", "11:00", "11:59", 2,"canceled",1); + connect.addBooking(3,1, "23/04/2017", "10:00", "10:40", 3,"canceled",1); + connect.addBooking(3,2, "24/04/2017", "11:00", "11:59", 2,"canceled",1); + connect.addBooking(4,3, "25/04/2017", "8:00", "8:40", 2, "active",1); + connect.addBooking(4,2, "26/04/2017", "8:00", "8:40", 2, "canceled",1); + connect.addBooking(4,1, "21/04/2017", "10:00", "10:40", 1,"active",2); + connect.addBooking(4,2, "22/04/2017", "11:00", "11:59", 2,"canceled",2); + connect.addBooking(4,1, "23/04/2017", "10:00", "10:40", 3,"canceled",2); + connect.addBooking(4,2, "24/04/2017", "11:00", "11:59", 2,"canceled",2); + connect.addBooking(3,3, "25/04/2017", "8:00", "8:40", 2, "active",2); + connect.addBooking(3,2, "26/04/2017", "8:00", "8:40", 2, "canceled",2); + connect.addBooking(3,3, "27/04/2017", "10:00", "10:40", 1,"active",3); + connect.addBooking(3,2, "28/04/2017", "11:00", "11:59", 1,"active",3); + connect.addBooking(4,3, "29/04/2017", "8:00", "8:40", 1, "canceled",3); - connect.addBooking(2,1, "24/05/2017", "8:00", "8:40", 2, "active",3); + connect.addBooking(3,1, "24/05/2017", "8:00", "8:40", 2, "active",3); connect.addBooking(3,1, "16/07/2017", "10:00", "10:40", 3,"active",4); connect.addBooking(3,2, "14/05/2017", "11:00", "11:59", 1,"active",4); connect.addBooking(3,1, "4/05/2017", "10:00", "10:40", 2,"active",4); diff --git a/assignment/src/gui/RootController.java b/assignment/src/gui/RootController.java index 8c9ab97..10b29b2 100644 --- a/assignment/src/gui/RootController.java +++ b/assignment/src/gui/RootController.java @@ -133,7 +133,19 @@ public void refresh(){ @FXML public void delete(){ - + int id = listviewBO.getSelectionModel().getSelectedItem().getBusinessId(); + Alert alert = new Alert(AlertType.CONFIRMATION); + alert.setTitle("Delete"); + alert.setHeaderText("Delete Business?"); + alert.setContentText("Are you sure?"); + + Optional result = alert.showAndWait(); + if (result.get() == ButtonType.OK) { + con.deleteUser(id); + refresh(); + } else { + return; + } } @FXML diff --git a/assignment/src/program/DatabaseConnection.java b/assignment/src/program/DatabaseConnection.java index 753a99a..7444728 100755 --- a/assignment/src/program/DatabaseConnection.java +++ b/assignment/src/program/DatabaseConnection.java @@ -89,6 +89,24 @@ public void addUserDetails(int id, String fname, String lname, String email, Str log.info("OUT addUserDetails\n"); } + /** + * Adds User to database + * @param username + * @param password + * @param accountType + */ + public void addUserDetails(int id, String fname, String lname, String email, String phone, String dob, String gender, int businessID) + { + log.info("IN addUserDetails\n"); + /* + * account type boolean 1 for business owner 0 for user + */ + User user = getUser(id); + String query = "INSERT INTO CLIENTDETAILS(id, FName, LName, Email, Phone, DOB, Gender, businessID) " + "VALUES("+id+",'"+fname+"','"+lname+"','"+email+"','"+phone+"','"+dob+"','"+gender+"',"+businessID+")"; + executeQuery(query, "User Added\n"); + log.info("OUT addUserDetails\n"); + } + /** * Gets where the user name keyword matches another users name * @param username @@ -130,6 +148,47 @@ public User getUser(int id) return databaseUser; } + /** + * Gets where the user name keyword matches another users name + * @param username + * @return User Object + */ + public User getUser(int BID, String val) + { + log.info("IN getUser\n"); + int _id = 0; + String _username = "null"; + String _password = "null"; + int _accountType = 0; + int businessID = -1; + String query = "SELECT * FROM users WHERE businessID = ?"; + //Creates a null user to return, this can be used to validate user at login + User databaseUser = null; + try (Connection connect = this.connect(); PreparedStatement inject = connect.prepareStatement(query)) + { + //Sets '?' to user name in the query + //crates a user from the found information + inject.setInt(1,BID); + ResultSet output = inject.executeQuery(); + while (output.next()){ + _id = output.getInt(1); + _username = output.getString(2); + _password = output.getString(3); + _accountType = output.getInt(4); + businessID = output.getInt(5); + } + databaseUser = new User(_id ,_username, _password, _accountType, businessID); + output.close(); + } + catch(SQLException sqle) + { + //System.out.println("Getting User: "+sqle.getMessage()); + log.warn(sqle.getMessage()); + } + log.info("OUT getUser\n"); + return databaseUser; + } + /** * Gets where the user name keyword matches another users name * @param username @@ -1011,7 +1070,7 @@ public void createBooking(Booking book){ public void addBusinessOwner(int id, String fName,String lName,String phone,String address,String weekdayStart,String weekdayEnd,String weekendStart ,String weekendEnd){ log.info("IN addBusinessToDatabase\n"); //BusinessID is made in the database - String query = "INSERT INTO BUSINESS_OWNER (ID,fName,lName,phone,address,weekdayStart,weekdayEnd,weekendStart, weekendEnd)" + "VALUES("+id+",'"+ fName + "','"+ lName + "','"+ phone + "','"+ address + "','"+weekdayStart+"','" + weekdayEnd + "','" + weekendStart + "','"+weekendEnd+"', 1);"; + String query = "INSERT INTO BUSINESS_OWNER (ID,fName,lName,phone,address,weekdayStart,weekdayEnd,weekendStart, weekendEnd, color)" + "VALUES("+id+",'"+ fName + "','"+ lName + "','"+ phone + "','"+ address + "','"+weekdayStart+"','" + weekdayEnd + "','" + weekendStart + "','"+weekendEnd+"', 1);"; try(Connection connect = this.connect(); Statement inject = connect.createStatement()) { inject.executeUpdate(query); @@ -1272,4 +1331,29 @@ public String getlogo(int id){ } return val; } + + /** + * Delete user from database + * @param userName + */ + public void deleteUser(int businessID) + { + log.info("IN deleteUser\n"); + String query = "DELETE FROM BUSINESS WHERE businessID = "+businessID+";"; + String query1 = "DELETE FROM users WHERE businessID = "+businessID+";"; + int id = getOneBusiness(getUser(businessID,"").getID()).getID(); + String query2 = "DELETE FROM BUSINESS_OWNER WHERE ID = "+id+";"; + String query3 = "DELETE FROM CLIENTDETAILS WHERE businessID = "+businessID+";"; + String query4 = "DELETE FROM EMPLOYEES WHERE businessID = "+businessID+";"; + String query5 = "DELETE FROM BOOKINGS WHERE businessID = "+businessID+";"; + String query6 = "DELETE FROM SERVICES WHERE businessID = "+businessID+";"; + executeQuery(query, "Business " + businessID + " deleted\n"); + executeQuery(query1, "User " + businessID + " deleted\n"); + executeQuery(query2, "BUSINESS_OWNER " + businessID + " deleted\n"); + executeQuery(query3, "CLIENTDETAILS " + businessID + " deleted\n"); + executeQuery(query4, "EMPLOYEES " + businessID + " deleted\n"); + executeQuery(query5, "BOOKINGS " + businessID + " deleted\n"); + executeQuery(query6, "SERVICES " + businessID + " deleted\n"); + log.info("OUT deleteUser\n"); + } } diff --git a/assignment/src/program/User.java b/assignment/src/program/User.java index 6e639ff..cbbf75d 100755 --- a/assignment/src/program/User.java +++ b/assignment/src/program/User.java @@ -81,7 +81,7 @@ public String getPassword() { return _password; } - public String getFullName(){return fullName;} + public String getFullName(){return _fname+" "+_lname;} public String getFName(){return _fname;} public String getLName(){return _lname;} public String getPhone(){return _phone;}