Skip to content
Snippets Groups Projects
TimeOff.java 3.97 KiB
Newer Older
  • Learn to ignore specific revisions
  • package com.example.scheduler_server;
    
    import java.sql.*;
    
    /*
        Name: TimeOff
        Description: Responsible for sending queries and receiving responses from the database that deal with the
        TimeOff table.
     */
    public class TimeOff {
    
        private final Connection dbConnection;
    
        protected TimeOff(Connection c) {
            this.dbConnection = c;
        }
    
        protected String addTimeOff(int employeeID, String startDate, String endDate, boolean approved, String reason){
            String newTimeOff = "";
            Date sD = Date.valueOf(startDate);
            Date eD = Date.valueOf(endDate);
            try {
                Statement myStatement = dbConnection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
                myStatement.executeUpdate("INSERT INTO TimeOff (employeeID, startDate, endDate, approved, reason) " +
                        "VALUES ('" + employeeID +"', '"+ sD +"', '"+ eD +"', '"+ approved +"', '" + reason + "')");
                ResultSet myRs = myStatement.executeQuery("select * from TimeOff where employeeID=" + employeeID +
                        " and startDate='" + sD + "' and endDate=" + eD);
                if (myRs.last()) {
                    newTimeOff = myRs.getString("ID") + "," + myRs.getString("employeeID" ) + "," +
                            myRs.getString("startDate") + "," + myRs.getString("endDate") +
                            "," + myRs.getString("approved") + "," + myRs.getString("reason");
                }
            } catch (SQLException exception) {
                exception.printStackTrace();
                return newTimeOff;
            }
            System.out.println("Shift successfully added");
            return newTimeOff;
        }
    
        protected int removeTimeOff(int timeOffID){
            try {
                Statement myStatement = dbConnection.createStatement();
                myStatement.executeUpdate("DELETE FROM TimeOff WHERE (ID =" + timeOffID + ")");
            } catch (SQLException exception) {
                exception.printStackTrace();
                return -1;
            }
            return timeOffID;
        }
    
        protected String setTimeOffApproval(int ID, boolean approved){
            String editedTimeOff = "";
            try {
                Statement myStatement = dbConnection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
                myStatement.executeUpdate("update TimeOff set approved=" + approved + " where ID=" + ID);
                ResultSet myRs = myStatement.executeQuery("select * from TimeOff where ID=" + ID);
                if (myRs.last()) {
                    editedTimeOff = myRs.getString("ID") + "," + myRs.getString("approved");
                }
            } catch (SQLException exception) {
                exception.printStackTrace();
                return editedTimeOff;
            }
            System.out.println("Shift successfully added");
            return editedTimeOff;
        }
    
        protected void removeAllTimeOffByID(int employeeID) {
            try {
                Statement myStatement = dbConnection.createStatement();
                myStatement.executeUpdate("DELETE FROM TimeOff WHERE (employeeID =" + employeeID + ")");
            } catch (SQLException exception) {
                exception.printStackTrace();
            }
        }
    
        protected String allTimeOff(){
            StringBuilder response = new StringBuilder("allTimeOff");
            try {
                Statement myStatement = dbConnection.createStatement();
                ResultSet myRs = myStatement.executeQuery("SELECT * FROM shifts");
                while (myRs.next()) {
                    response.append("/").append(myRs.getString("ID"))
                            .append(",").append(myRs.getString("employeeID"))
                            .append(",").append(myRs.getString("startDate"))
                            .append(",").append(myRs.getString("endDate"))
                            .append(",").append(myRs.getString("approved"))
                            .append(",").append(myRs.getString("reason"));
                }
            } catch (SQLException exception) {
                exception.printStackTrace();
            }
            return response.toString();
        }
    }