Empoyee Management
Empoyee Management
import java.util.InputMismatchException;
import java.util.Scanner;
import java.util.ArrayList;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
}
}
/*method for choose add,delete,modify and display method to manipulate
employee detail*/
static void editDetail()
{
Scanner scanner=new Scanner(System.in);
while(true)
{
try
{
System.out.println(" ");
System.out.println("****Enter your choice*****");
System.out.println("1)Add Employee details");
System.out.println("2)Delete Employee details");
System.out.println("3)Modify Employee detail");
System.out.println("4)View Employee datail");
System.out.println("5)View Employee salary detail");
System.out.println("6)Goto Main menu");
choice=scanner.nextInt();
}catch(InputMismatchException inputmismatchexception)
{
System.out.println("Input Miss matched");
EmployeeAdmin.editDetail();
}
EmployeeDetail employeedetail=new EmployeeDetail();
switch(choice)
{
case 1:employeedetail.addDetail();
break;
case 2:employeedetail.deleteDetail();
break;
case 3:employeedetail.modifyDetail();
break;
case 4:employeedetail.displayDetail();
break;
case 5:EmployeeAdmin.viewSalary();
break;
case 6: EmployeeAdmin.main(null) ;
break;
default:System.out.println("***Invalid input please enter
valid input***");
break;
}
}
}
}
else if(choice==2)
{
EmployeeAdmin.editDetail();
}
else
{
System.out.println("*****Invalid Input******");
EmployeeAdmin.viewSalary();
}
}catch(InputMismatchException inputmismatchexception)
{
System.out.println("Input miss matched Please Enter numeric 1
and 2");
EmployeeAdmin.viewSalary();
}
}
}
catch(InputMismatchException inputmismatchexception)
{
System.out.println("Input miss matched please enter valid input");
employeedetail.addDetail();
}
}
/*Method for delete the employee name,id,email id,data of
joining,salary,contact,age,date of birth
gender and designatation*/
void deleteDetail()
{
System.out.println("Enter employee Id to delete its details: ");
String id=scanner.next();
boolean result=arraylistId.contains(id);
if(result)
{
int idIndex=arraylistId.indexOf(id);
arraylistName.remove(idIndex);
arraylistId.remove(idIndex);
arraylistContact.remove(idIndex);
arraylistSalary.remove(idIndex);
arraylistDateofJoining.remove(idIndex);
arraylistDesignation.remove(idIndex);
arraylistDateofBirth.remove(idIndex);
arraylistEmailId.remove(idIndex);
arraylistGender.remove(idIndex);
System.out.println("Employee Detail Deleted sucessfully: ");
}
else
{
System.out.println(" Invalid Id / Id Not Found ");
}
}
/*Method for display the employee name,id,email id,data of
joining,salary,contact,age,date of birth
gender and designatation*/
void displayDetail()
{
System.out.println("Enter employee id to view detail");
String id=scanner.next();
boolean result=arraylistId.contains(id);
if(result)
{
int idIndex=arraylistId.indexOf(id);
System.out.println("*****Employee Detail*****");
System.out.println("EmployeeId : "+arraylistId.get(idIndex));
System.out.println("EmployeeName :
"+arraylistName.get(idIndex));
System.out.println("EmployeeGender :
"+arraylistGender.get(idIndex));
System.out.println("EmailId :
"+arraylistEmailId.get(idIndex));
System.out.println("Desigination :
"+arraylistDesignation.get(idIndex));
System.out.println("Date of Joining :
"+arraylistDateofJoining.get(idIndex));
System.out.println("Salary :
"+arraylistSalary.get(idIndex));
System.out.println("Phone Number :
"+arraylistContact.get(idIndex));
System.out.println("Date of Birth :
"+arraylistDateofBirth.get(idIndex));
}
else
{
System.out.println("ID Not Found / Invalid ID");
}
}
/*Method for change the employee name,id,email id,data of
joining,salary,contact,age,date of birth
gender and designatation*/
void modifyDetail()
{
EmployeeDetail employeedetail=new EmployeeDetail();
try
{
int idIndex=arraylistId.indexOf(id);
System.out.println(" ");
System.out.println("*****Enter your choice to modify***** ");
System.out.println("1)To Modify EmployeeName:");
System.out.println("2)To Modify EmployeeGender");
System.out.println("3)To Modify EmployeeEmailId:");
System.out.println("4)To Modify EmployeeDesignation:");
System.out.println("5)To Modify EmployeeDateofJoining:");
System.out.println("6)To Modify EmployeeBasicSalary:");
System.out.println("7)To Modify EmployeeConatact:");
System.out.println("8)To Modify EmployeeDOB:");
System.out.println("9)Goto Detail menu:");
int value=scanner.nextInt();
if(value==1)
{
System.out.println("Enter Name:[EX:Aravinth P]");
String name=scanner.next();
Validator.modifyName(name,idIndex);
}
else if(value==2)
{
System.out.println("Enter Gender (Male/Female)");
String gender=scanner.next();
Validator.modifyGender(gender, idIndex);
}
else if(value==3)
{
System.out.println("Enter EmailId[Ex:[email protected]]");
String email=scanner.next();
Validator.modifyEmail(email, idIndex);
}
else if(value==4)
{
System.out.println("Enter Designation [Ex:Hr/Trainee]");
String designation=scanner.next();
Validator.modifyDesignation(designation, idIndex);
}
else if(value==5)
{
System.out.println("Enter Date of Joining dd-Mon-yyyy[Ex:01-Jan-
2020]");
String dateofJoining=scanner.next();
Validator.modifyDateofJoining(dateofJoining, idIndex);
}
else if(value==6)
{
System.out.println("Enter Salary in numeric value");
long newSalary=scanner.nextLong();
String salary=Long.toString(newSalary);
Validator.modifySalary(salary, idIndex);
}
else if(value==7)
{
System.out.println("Enter Contact It must contains ten digit");
long newContact=scanner.nextLong();
String contact=Long.toString(newContact);
Validator.modifyContact(contact, idIndex);
}
else if(value==8)
{
System.out.println("Enter Date of Birth
MM/dd/yyyy[Ex:01/01/2020]");
String dateofBirth=scanner.next();
Validator.modifydateofBirth(dateofBirth, idIndex);
}
else if(value==9)
{
EmployeeAdmin.editDetail();
}
else
{
System.out.println("Invalid Input");
}
System.out.println("Detail Updated Successfully..!");
}
}
else
{
System.out.println("ID Not Found/Invalid ID");
EmployeeAdmin.editDetail();
}
}catch(InputMismatchException inputmismatchexception)
{
System.out.println("Input Miss matched");
employeedetail.modifyDetail();
}
}
}
/* abstratc class for find employee basic salary using employee id and contains
*abstract methods to calculate gross pay,net pay and print salary detail*/
abstract class Salary extends EmployeeAdmin
{
long dearnessAllowance;
long houseRentAllowance;
long incomeTax;
long grossPay;
long netPay;
long providentFund;
abstract void calculateGrosspay(long basicSalary);
abstract void calculateNetpay();
abstract void printSalary(long basicSalary, String name);
//method for getting employee id and find index of id to get basic salary of
employee
static void displaySalary()
{
Salary salary=new EmployeeSalary();
Scanner scanner=new Scanner(System.in);
System.out.println("Enter Employee Id To Print Salary Detail ");
String id=scanner.next();
boolean idFlag=arraylistId.contains(id);
if(idFlag)
{
int idIndex=arraylistId.indexOf(id);
long basicSalary=arraylistSalary.get(idIndex);
String name=arraylistName.get(idIndex);
salary.calculateGrosspay(basicSalary);
salary.calculateNetpay();
salary.printSalary(basicSalary,name);
}
else
{
System.out.println("Invalid id/Id not found");
EmployeeAdmin.viewSalary();
}
}
/*class for calculate net pay,gross pay according to employee basic salary
and print employee salary detail*/
class EmployeeSalary extends Salary
{
/*method for calculate dearnessAllowance,houseRentAllowance,incomeTax,
providentFund and gross pay of the employee*/
@Override
void calculateGrosspay(long basicSalary)
{
dearnessAllowance=basicSalary*10/100;
houseRentAllowance=basicSalary*12/100;
incomeTax=basicSalary*15/100;
providentFund=2500;
grossPay=basicSalary+dearnessAllowance+houseRentAllowance+incomeTax;
}
//method for calculate net pay of employee
@Override
void calculateNetpay()
{
netPay=grossPay-(incomeTax+providentFund);
}
//method for print the salary detail of employee
@Override
void printSalary(long basicSalary,String name)
{
System.out.println("*****Employee Salary Detail*****");
System.out.println("Employee Name : "+name);
System.out.println("Basic Salary : "+basicSalary);
System.out.println("Dearness Allowance : "+dearnessAllowance);
System.out.println("Home rent Allowance : "+houseRentAllowance);
System.out.println("Income Tax : "+incomeTax);
System.out.println("Provident Fund : "+providentFund);
System.out.println("grossPay : "+grossPay);
System.out.println("netpay : "+netPay);
}
}
}
else
{
System.out.println("Invalid ID format");
System.out.println("Enter Format [Ex:ace2233]");
String validId=scanner.next();
Validator.addId(validId);
}
}
/*validating method for adding employee name*/
static void addName(String name)
{
Scanner scanner=new Scanner(System.in);
boolean match=name.matches("[A_Z]{1}[a-z A-Z]+$");
if(match)
{
arraylistName.add(name);
}
else
{
System.out.println("Invalid name format");
System.out.println("Enter valid name starting with uppercase letter");
String validName=scanner.next();
Validator.addName(validName);
}
}
/*validating method for adding employee email*/
static void addEmail(String email)
{
Scanner scanner=new Scanner(System.in);
String emailRegex="^[\\w-_\\.+]*[\\w-_\\.]\\@([\\w]+\\.)+[\\w]+[\\w]
$";//"[a-z]+[0-9][email protected]{1}+$";
boolean match=email.matches(emailRegex);
if(match)
{
arraylistEmailId.add(email);
}
else
{
System.out.println("Invalid email format");
System.out.println("Enter valid mail(****@gmail.com)");
String validEmail=scanner.next();
Validator.addEmail(validEmail);
}
}
/*validating method for adding employee designation*/
static void addDesignation(String designation)
{
Scanner scanner=new Scanner(System.in);
String designationRegex="[A-Z]{1}[a-zA-Z]+$";
boolean match=designation.matches(designationRegex);
if(match)
{
arraylistDesignation.add(designation);
}
else
{
System.out.println("Invalid input format");
System.out.println("Enter input first letter start with uppercase");
String validDesignation=scanner.next();
Validator.addDesignation(validDesignation);
}
}
/*validating method to add employee date of joining*/
static void addDateofJoining(String dateofJoining)
{
Scanner scanner=new Scanner(System.in);
String regex="[0-9]{2}[-]{1}[A-Z]{1}[a-z]{2}[-]{1}[0-9]{4}";
boolean match=dateofJoining.matches(regex);
if(match)
{
arraylistDateofJoining.add(dateofJoining);
}
else
{
System.out.println("inval date format");
System.out.println("Enter dd-Mon-yyyy[EX:01-Jan-2019] Format");
String validDateofJoining=scanner.next();
Validator.addDateofJoining(validDateofJoining);
}
}
/*validating method to add employee salary*/
static void addSalary(String salary)//validating employee salary
{
Scanner scanner=new Scanner(System.in);
boolean match=salary.matches("[0-9]+$");
if(match)
{
long longSalary=Long.parseLong(salary);
arraylistSalary.add(longSalary);
}
else
{
System.out.println("invalid input");
System.out.println("Enter input in numeric");
String validSalary=scanner.next();
Validator.addSalary(validSalary);
}
}
/*validating method to add employee gender*/
static void addGender(String gender)
{
Scanner scanner=new Scanner(System.in);
boolean match=gender.matches("[Male]{4}||[Female]{6}+$");
if(match)
{
arraylistGender.add(gender);
}
else
{
System.out.println("invalid input");
System.out.println("Enter Male/Female");
String validGender=scanner.next();
Validator.addGender(validGender);
}
}
/*validating method to add employee contact*/
static void addContact(String contact)
{
Scanner scanner=new Scanner(System.in);
boolean match=contact.matches("[5-9]{1}[0-9]{9}+$");
if(match)
{
long longContact=Long.parseLong(contact);
arraylistContact.add(longContact);
}
else
{
System.out.println("invalid Contact");
System.out.println("Enter Contact with 10 digits");
String validContact=scanner.next();
Validator.addContact(validContact);
}
}
/*validating method to add employee date of birth*/
public static boolean addDateofBirth(String dateofBirth)
{
Scanner scanner=new Scanner(System.in);
if(dateofBirth.trim().equals(""))
{
return true;
}
else
{
SimpleDateFormat simpledateformat= new
SimpleDateFormat("MM/dd/yyyy");
simpledateformat.setLenient(false);
try
{
Date javaDate=simpledateformat.parse(dateofBirth);
arraylistDateofBirth.add(dateofBirth);
}catch(ParseException parseexception)
{
System.out.println("Invalid format");
System.out.println("Enter MM/dd/yyyy[Ex:01/01/2020]");
String validDateofBirth=scanner.next();
addDateofBirth(validDateofBirth);
}
return true;
}
}
//**************Validating methods for modify employee details*************//
/*validating method to modify employee name*/
static void modifyName(String name,int index)
{
Scanner scanner=new Scanner(System.in);
boolean match=name.matches("[A-Z]{1}[a-z A-Z]+$");
if(match)
{
arraylistName.set(index, name);
}
else
{
System.out.println("invalid name");
System.out.println("Enter name start with uppercase");
String validName=scanner.next();
Validator.modifyName(validName,index);
}
}
/*validating method to add employee gender*/
static void modifyGender(String gender,int index)
{
Scanner scanner=new Scanner(System.in);
boolean match=gender.matches("[Male]{4}||[Female]{6}+$");
if(match)
{
arraylistGender.set(index, gender);
}
else
{
System.out.println("invalid input");
System.out.println("Enter Male/Female");
String validGender=scanner.next();
Validator.modifyGender(validGender,index);
}
}
/*validating method to modify employee email*/
static void modifyEmail(String emailId,int index)
{
Scanner scanner=new Scanner(System.in);
String emailRegex="[a-z]+[0-9][email protected]{1}+$";
boolean match=emailId.matches(emailRegex);
if(match)
{
arraylistEmailId.set(index,emailId );
}
else
{
System.out.println("Invalid input");
System.out.println("Enter mail[[email protected]]");
String validEmailid=scanner.next();
Validator.modifyEmail(validEmailid, index);
}
}
/*validating method to modify employee employee designation*/
static void modifyDesignation(String designation,int index)
{
Scanner scanner=new Scanner(System.in);
String designationRegex="[A-Z]{1}[a-zA-Z]+$";
boolean match=designation.matches(designationRegex);
if(match)
{
arraylistDesignation.set(index, designation);
}
else
{
System.out.println("Invalid input");
System.out.println("Enter input start with uppercase");
String validDesignation=scanner.next();
Validator.modifyDesignation(validDesignation, index);
}
}
/*validating method to modify employee date of joining*/
static void modifyDateofJoining(String dateofJoining,int index)
{
Scanner scanner=new Scanner(System.in);
String dateofJoiningRegex="[0-9]{2}[-]{1}[A-Z]{1}[a-z]{2}[-]{1}
[0-9]{4}";
boolean matchFlag=dateofJoining.matches(dateofJoiningRegex);
if(matchFlag)
{
arraylistDateofJoining.set(index, dateofJoining);
}
else
{
System.out.println("invalid format");
System.out.println("Enter dd-Mon-yyyy[EX:01-Jan-2020]
Format");
String validDateofjoining=scanner.next();
Validator.modifyDateofJoining(validDateofjoining, index);
}
}
/*validating method to modify employee salary*/
static void modifySalary(String salary,int index)
{
Scanner scanner=new Scanner(System.in);
boolean match=salary.matches("[0-9]+$");
if(match)
{
long longsalary=Long.parseLong(salary);
arraylistSalary.set(index, longsalary);
}
else
{
System.out.println("invalid input");
System.out.println("Enter input in numeric");
String validSalary=scanner.next();
Validator.modifySalary(validSalary, index);
}
}
/*validating method to modify employee contact*/
static void modifyContact(String contact,int index)
{
Scanner scanner=new Scanner(System.in);
boolean match=contact.matches("[5-9]{1}[0-9]{9}+$");
if(match)
{
long con=Long.parseLong(contact);
arraylistContact.set(index, con);
}
else
{
System.out.println("invalid Contact");
System.out.println("Enter Contact with 10 digits");
String validContact=scanner.next();
Validator.modifyContact(validContact, index);
}
}
/*validating method to modify employee date of birth*/
public static boolean modifydateofBirth(String dateofBirth,int index)
{
Scanner scanner=new Scanner(System.in);
if(dateofBirth.trim().equals(""))
{
return true;
}
else
{
SimpleDateFormat simpledateformat= new
SimpleDateFormat("MM/dd/yyyy");
simpledateformat.setLenient(false);
try
{
Date javaDate=simpledateformat.parse(dateofBirth);
arraylistDateofBirth.set(index, dateofBirth);
}catch(ParseException parseexception)
{
System.out.println("Invalid format");
System.out.println("Enter in MM/dd/yyyy[EX:01/01/2020]
format");
String validDateofBirth=scanner.next();
modifydateofBirth(validDateofBirth, index);
}
return true;
}
}
}