/** HourlyWorker - A class to represent workers paid on a salaried basis)
 *
 * @author - Nancy Harris and YOUR NAME HERE
 * @version - V1 - YOUR UPDATE DATE HERE
 */
 
 public class HourlyWorker
 {
 	// declare the instance variables of the class
	
	private String name; 		// the name of the worker
	private String SSN;  		// the SSN of the worker
	private String homeDepartment; //the department of the worker
	private int exemptions;	// the number of tax exemptions for this worker
	private double wage; 		// the hourly rate for this hourly worker
	
	private double hours;		// the hours that this worker last worked
	
	/** explicit value constructor
	 * 
	 * @param name 	The name of the worker
	 * @param SSN  	The SSN of the worker
	 * @param exempt	The number of payroll exemptions
	 & @param rate 	The hourly rate for this employee
	 */
	public HourlyWorker(String homeDepartment, String name, String SSN,
	 int exempt, double rate)
	{
		this.name = name;//adding a this. to all the variables so that
								//we can differentiate them from non-class
								//variables
		this.SSN = SSN;
		this.exemptions = exempt;
		this.wage = rate;
		this.homeDepartment = homeDepartment;
	}
	
	/** pay produces the pay amount for this employee
	 *  pay the rate * hours.  (we are disregarding overtime at this time)
	 *
	 * @param hours The number of hours for this hourly worker
	 *
	 * @return The amount to pay this employee
	 */
	public double pay(double hours)
	{
		double pay;
		double overTimePay;
		
		overTimePay = 0;
	
		this.hours = hours;  // stores the hours worked
		if( this.hours > 80 )//checking to see if there's overtime
			overTimePay = this.wage * 1.5 * (this.hours - 80);
			
		pay = this.wage * (this.hours - (this.hours - 80)); 
			//multiplying the amount they get per hour by the hours
			//they worked
		pay += overTimePay;//adding on overtime pay
		
		return pay;
	}
	
	/** toString produces a single line for each employee
	 *
	 *  format is Name\tSSN\texemptions\thours\trate\n
	 *
	 * @return The line representing the employee
	 */
	 public String toString()
	 {
	 	String employeeInfo;
		
		employeeInfo = this.name + "\\" + this.SSN + "\\" +
			this.exemptions + "\\" + this.hours + "\\" + this.wage + "\\"
			+ this.homeDepartment + "\n"; //setting the String employeeInfo equal to the
				//required output format
	 
	 	return employeeInfo;
	 }
}