You are on page 1of 29

{ public class User

;static Scanner in = new Scanner(System.in)

;)(><static ArrayList<Employee> employees = new ArrayList

;)(><static ArrayList<HRManager> hrManagers = new ArrayList

;private String name

;private String id

;private String email

;private String password

private String status; // 0: disabled, 1: active

;private String phoneNumber

;private String age

;private String department

;private String salary

{ )(public User

public User(String name, String id, String email, String password, String status, String
{ phoneNumber,String age, String department, String salary)

;this.id = id

;this.name = name

;this.password = password

;this.email = email
;this.phoneNumber = phoneNumber

;this.status = status

{ )(public String getId

;return id

{ public void setId(String id)

;this.id = id

{ )(public String getName

;return name

{ public void setName(String name)

;this.name = name

{ )(public String getPassword

;return password
}

{ public void setPassword(String password)

;this.password = password

{ )(public String getEmail

;return email

{ public void setEmail(String email)

;this.email = email

{ )(public String getPhoneNumber

;return phoneNumber

{ public void setPhoneNumber(String phoneNumber)

;this.phoneNumber = phoneNumber

{ )(public String getStatus

;return status

}
{ public void setStatus(String status)

;this.status = status

{ )(public String getAge

;return age

{ public void setAge(String age)

;this.age = age

{ )(public String getDepartment

;return department

{ public void setDepartment(String department)

;this.department = department

{ )(public String getSalary

;return salary

}
{ public void setSalary(String salary)

;this.salary = salary

{ )(public boolean validateEmail

validate email format //

;return true

{ )(public boolean validatePassword

validate password strength //

;return true

************************************************************************************************

{ public class HRManager extends User

;private String checkIn

;private String checkOut


;private int numPermissions

;private int numHolidayDays

public HRManager(String name,String id,String email, String password ,String status, String
phoneNumber ,String age ,String department ,String salary,String checkIn, String checkOut,int
{ numPermissions,int numHolidayDays)

;super(name, id, email, password, status, phoneNumber, age, department, salary)

;this.checkIn = checkIn

;this.checkOut = checkOut

;this.numPermissions = numPermissions

;this.numHolidayDays = numHolidayDays

{ )(public String getCheckIn

;return checkIn

{ public void setCheckIn(String checkIn)

;this.checkIn = checkIn

{ )(public String getCheckOut

;return checkOut

}
{ public void setCheckOut(String checkOut)

;this.checkOut = checkOut

{ )(public int getNumPermissions

;return numPermissions

{ public void setNumPermissions(int numPermissions)

;this.numPermissions = numPermissions

{ )(public int getNumHolidayDays

;return numHolidayDays

{ public void setNumHolidayDays(int numHolidayDays)

;this.numHolidayDays = numHolidayDays

static void addHR(String name,String id,String email, String password ,String status, String
phoneNumber ,String age ,String department ,String salary,String checkIn, String checkOut,int
{numPermissions,int numHolidayDays)

if (id != null &&name != null && password != null && email != null

phoneNumber != null && status !=null && checkIn != null&&


{ )checkOut != null &&

HRManager newHR = new HRManager( name, id, email, password , status,


phoneNumber , age , department , salary, checkIn,
;checkOut,numPermissions,numHolidayDays)

;hrManagers.add(newHR)

;System.out.println("HR Manager added successfully!")

{ else }

;System.out.println("HR Manager cannot be added due to missing information.")

static void editHR(String name,String id,String email, String password ,String status, String
phoneNumber ,String age ,String department ,String salary,String checkIn, String checkOut,int
{numPermissions ,int numHolidayDays)

{ for (int i = 0; i < hrManagers.size(); i++)

;HRManager hrmanager = hrManagers.get(i)

{ if (hrmanager.getId().equals(id) )

;hrmanager.setName(name)

;hrmanager.setPassword(password)

;hrmanager.setEmail(email)

;hrmanager.setPhoneNumber(phoneNumber)

;hrmanager.setStatus(status)

;hrmanager.setNumPermissions(numPermissions)

;hrmanager.setNumHolidayDays( numHolidayDays)

;hrmanager.setCheckIn(checkIn)

;hrmanager.setCheckOut(checkOut)
;break

;System.out.println(" HRManager not found.")

{)(static void deleteHR

;System.out.println("Enter the ID:")

;)(String id = in.next

;)(in.nextLine

{ for (HRManager hrManager :hrManagers)

{ if (hrManager.getId().equals(id) )

;hrManagers.remove(hrManager)

;break

static HRManager searchHR(String name,String id,String email, String password ,String


status, String phoneNumber ,String age ,String department ,String salary,String checkIn, String
{checkOut)

{ for (HRManager manager : hrManagers)

&& if (manager.getId().equals(id) && manager.getName().equals(name)

manager.getEmail().equals(email) &&
{ )manager.getPhoneNumber().equals(phoneNumber)

;return manager
}

;return null

{static void reportHR(boolean ascending)

Sort the HRManagers by name //

;Collections.sort(hrManagers, (h1,h2 ) -> h1.getName().compareTo(h2.getName()))

If the user wants the data in descending order, reverse the list //

{ if (!ascending)

;Collections.reverse(hrManagers)

Print the HRManagers' information //

{ for (HRManager hrManager : hrManagers)

;System.out.println("ID: " + hrManager.getId())

;System.out.println("Name: " + hrManager.getName())

;System.out.println("Age : " + hrManager.getAge())

;System.out.println("Email: " + hrManager.getEmail())

;System.out.println("password : " + hrManager.getPassword())

;System.out.println("Phone Number: " + hrManager.getPhoneNumber())

;System.out.println("department: " + hrManager.getDepartment())

;System.out.println("Status: " + hrManager.getStatus())


;System.out.println("Check-in: " + hrManager.getCheckIn())

;System.out.println("Check-out : " + hrManager.getCheckOut())

;System.out.println("salary : " + hrManager.getSalary())

;)"-----------------------"(System.out.println

{ )(static void handleHRManager

;Scanner scanner = new Scanner(System.in)

;System.out.println("Welcome, HR manager. Please select an option:")

;System.out.println("1.Add employee")

;System.out.println("2.edit employee")
;System.out.println("3.delete an employees")

;System.out.println("4.search about employees")

;System.out.println("5.report about employees")

;)(int choice = scanner.nextInt

{switch(choice)

:case 1

add employee //

;System.out.println("Enter employee name :")

;)(String names = scanner.next

;System.out.println("Enter emplouee Age :")

;)(String ages = scanner.next

;System.out.println("Enter employee ID:")

;)(String ids = scanner.next

;System.out.println("Enter employee password :")

;)(String passwords =scanner.next

;System.out.println("Enter employee email:")

;)(String emails = scanner.next

;System.out.println("Enter employee phone number:")

;)(String phoneNumbers = scanner.next

;System.out.println("Enter employee department:")

;)(String departments = scanner.next

;System.out.println("Enter employee salary:")

;)(String salarys = scanner.next

;System.out.println("Enter employee status:")

;)(String statuss = scanner.next


;System.out.println("Enter employee check-in:")

;)(String checkIns =scanner.next

;System.out.println("Enter employee check-out:")

;)(String checkOuts =scanner.next

;System.out.println("Enter employee user type:")

;)(String userTypes =scanner.next

;System.out.println("Enter employee number of permisions:")

;)(int numPermissionss =scanner.nextInt

;System.out.println("Enter employee number of holiday:")

;)(int numHolidayDays = scanner.nextInt

Employee newEmployee = new Employee( userTypes, numPermissionss,


numHolidayDays, checkIns, checkOuts, names, ids,emails, passwords, statuss,
;phoneNumbers, ages, departments, salarys)

;employees.add(newEmployee)

;System.out.println("Employee added successfully.")

;break

:case 2

;break

:case 3

;break

:case 4

;break

:case 5

;break
}

*******************************************************************************************

{ public class Employee extends User

;)(>private static ArrayList<Employee> employees = new ArrayList<Employee

private String userType; // Part-time or Full-time

;private int numPermissions

;private int numHolidayDays

;private String checkIn

;private String checkOut

public Employee( String userType, int numPermissions, int numHolidayDays, String checkIn,
String checkOut, String name, String id, String email, String password, String status, String
{ phoneNumber, String age, String department, String salary)

;super(name, id, email, password, status, phoneNumber, age, department, salary)

;this.userType = userType

;this.numPermissions = numPermissions

;this.numHolidayDays = numHolidayDays
;this.checkIn = checkIn

;this.checkOut = checkOut

{ )(public static ArrayList<Employee> getEmployees

;return employees

{ public static void setEmployees(ArrayList<Employee> employees)

;Employee.employees = employees

{ )(public String getUserType

;return userType

{ public void setUserType(String userType)

;this.userType = userType

{ )(public int getNumPermissions

;return numPermissions

}
{ public void setNumPermissions(int numPermissions)

;this.numPermissions = numPermissions

{ )(public int getNumHolidayDays

;return numHolidayDays

{ public void setNumHolidayDays(int numHolidayDays)

;this.numHolidayDays = numHolidayDays

{ )(public String getCheckIn

;return checkIn

{ public void setCheckIn(String checkIn)

;this.checkIn = checkIn

{ )(public String getCheckOut

;return checkOut

}
{ public void setCheckOut(String checkOut)

;this.checkOut = checkOut

static void addُEmployee( String userType, int numPermissions, int numHolidayDays, String
checkIn, String checkOut, String name, String id, String email, String password, String status,
{ String phoneNumber, String age, String department, String salary)

if (name != null && !name.isEmpty() && id != null && department!= null && !
{ department.isEmpty())

Employee newEmployee = new Employee( userType, numPermissions,


numHolidayDays, checkIn, checkOut, name, id, email, password, status, phoneNumber,
;age, department, salary)

;employees.add(newEmployee)

;System.out.println("New employee added: " + newEmployee)

{ else }

;System.out.println("Invalid input data, could not add employee.")

static void editEmployee( String userType, int numPermissions, int numHolidayDays, String
checkIn, String checkOut, String name, String id, String email, String password, String status,
{String phoneNumber, String age, String department,String salary)

{ for (int i = 0; i < employees.size(); i++)

;Employee employee = employees.get(i)

{ if (employee.getId().equals(id) )

;employee.setName(name)

;employee.setPassword(password)

;employee.setEmail(email)
;employee.setPhoneNumber(phoneNumber)

;employee.setStatus(status)

;employee.setUserType(userType)

;employee.setNumPermissions(numPermissions)

;employee.setNumHolidayDays(numHolidayDays)

;employee.setCheckIn(checkIn)

;employee.setCheckOut(checkOut)

;break

;System.out.println("Emoplo not found.")

{)(static void deleteEmployee

;System.out.println("Enter the ID:")

;)(String id = in.next

;)(in.nextLine

{ for (Employee employee :employees)

{ if (employee.getId().equals(id) )

;employees.remove(employee)

;break

}
}

static Employee searchEmployee( String userType, int numPermissions, int


numHolidayDays, String checkIn, String checkOut, String name, String id, String email, String
{password,String status, String phoneNumber, String age, String department, String salary)

{ for (Employee emp : employees)

&& if (emp.getId().equals(id) &&emp.getName().equals(name)

{ )emp.getEmail().equals(email) && emp.getPhoneNumber().equals(phoneNumber)

;return emp

;return null

{ public void report(boolean ascending)

;Collections.sort(employees, (h1,h2 ) -> h1.getName().compareTo(h2.getName()))

{ if (!ascending)

;Collections.reverse(employees)

Print the HRManagers' information //

print employee report //

{ for (Employee employee :employees)


;System.out.println("Employee report for " + employee.getName() + ":")

;System.out.println("Employee ID: " +employee.getId() )

;System.out.println("Employee Email:"+employee.getEmail())

;System.out.println("Employee Password:"+employee.getPassword())

;System.out.println("Employee Phone number:"+employee.getPhoneNumber())

;System.out.println("Employee status:"+employee.getStatus())

;System.out.println("Employee Age:"+employee.getAge())

;System.out.println("Employee User Type:"+employee.getUserType())

;System.out.println("Employee Number of permisions:"+employee.getNumPermissions())

;System.out.println("Employee number of Holidayes :"+employee.getNumHolidayDays())

;System.out.println("Employee Chick in:"+employee.getCheckIn())

;System.out.println("Employee Chick out :"+employee.getCheckOut())

;System.out.println("Employee Department:"+employee.getDepartment())

;System.out.println("Employee Salary:"+employee.getSalary())

;)"========================================"(System.out.println

{ )(static void handleNormalEmployee

;Scanner scanner = new Scanner(System.in)

;System.out.println("Please enter your email:")


;)(String email = scanner.next

;boolean found = false

{ for (Employee employee : employees)

{ if (employee.getEmail().equals(email))

;found = true

;System.out.println(employee)

;break

{ if (!found)

;System.out.println("Employee not found.")

**********************************************************************
{ public class Holiday

)id, user id, name, type, details, start date, end date, status( //

;private int id

;private int userId

; private String name

‫نوع االجازة‬//; private String type

; private String details

; private int startDate

; private int endtDate

; private int status

public Holiday(int id, int userId, String name, String type, String details, int startDate, int
{ endtDate, int status)

;this.id = id

;this.userId = userId

;this.name = name

;this.type = type

;this.details = details

;this.startDate = startDate

;this.endtDate = endtDate

;this.status = status

{ )(public int getId

;return id
}

{ public void setId(int id)

;this.id = id

{ )(public int getUserId

;return userId

{ public void setUserId(int userId)

;this.userId = userId

{ )(public String getName

;return name

{ public void setName(String name)

;this.name = name

{ )(public String getType

;return type

}
{ public void setType(String type)

;this.type = type

{ )(public String getDetails

;return details

{ public void setDetails(String details)

;this.details = details

{ )(public int getStartDate

;return startDate

{ public void setStartDate(int startDate)

;this.startDate = startDate

{ )(public int getEndtDate

;return endtDate

}
{ public void setEndtDate(int endtDate)

;this.endtDate = endtDate

{ )(public int getStatus

;return status

{ public void setStatus(int status)

;this.status = status

***************************************************************************************************

{ public class permission

;private int id

;private int userId

; private String name

; private String type

; private String details

; private int startDate

; private int endtDate

; private int status


public permission(int id, int userId, String name, String type, String details, int startDate, int
{ endtDate)

;this.id = id

;this.userId = userId

;this.name = name

;this.type = type

;this.details = details

;this.startDate = startDate

;this.endtDate = endtDate

{ )(public int getId

;return id

{ public void setId(int id)

;this.id = id

{ )(public int getUserId

;return userId

{ public void setUserId(int userId)

;this.userId = userId
}

{ )(public String getName

;return name

{ public void setName(String name)

;this.name = name

{ )(public String getType

;return type

{ public void setType(String type)

;this.type = type

{ )(public String getDetails

;return details

{ public void setDetails(String details)

;this.details = details

}
{ )(public int getStartDate

;return startDate

{ public void setStartDate(int startDate)

;this.startDate = startDate

{ )(public int getEndtDate

;return endtDate

{ public void setEndtDate(int endtDate)

;this.endtDate = endtDate

{ )(public int getStatus

;return status

{ public void setStatus(int status)

;this.status = status

}
}

You might also like