/** HourlyWorker - A class to represent workers paid on a salaried basis)
 *
 * @author - Nancy Harris and Kurt Dowswell
 * @version - V2 - 10/1/08
 */
 
 public class HourlyWorkerV2 extends Employee
 {
 
 	private double total;		// total money earned at hourly wage
	private double overtimePay; // amount of overtime pay the worker gets
 	
	/** 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 HourlyWorkerV2(String name, String SSN, int exempt, double rate)
	{
		super(name, SSN, exempt, rate);
	}
	
	/** 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)
	{
		super.hours = hours;  // stores the hours worked
		
		//are the hours worked greater than 80
		if(super.hours > 80)
		{
			//calculate overtime pay
			overtimePay = ((super.hours - 80) * super.wage) * 1.5;
			//add overtime pay to normal payed wage
			total = (80 * super.wage) + overtimePay;
		}
		else
		{
			//if no overtime just multiply wage and hours
			total = super.hours * super.wage;
		}
		
		return total;
	}
}