// Andrew Hoffmann
// Employee Class Final

public class ASHfinalemp
{
	private String lastName, firstName, middleName;
	private int code, id, deps;
	private boolean married, choosefica;
	private double rate, hours, grossPay, taxes, netpay, ficamount;





	public ASHfinalemp(int idnum, int cde, boolean mar, int dep, double rte, String ln, String fn, String mn)
	{
		id = idnum;
		code = cde;
		deps = dep;
		rate = rte;
		lastName = ln;
		firstName = fn;
		middleName = mn;
	}

	public String getName()
	{
		return firstName +" " + middleName + " " + lastName;
	}



	public double getGross()
	{
		switch (code)
		{
			case 1:
			if (hours > 40)
			{
				double temp;
				temp = hours - 40;
				grossPay = (rate * 40) + (temp * (rate * 1.5));
			}
			else
				grossPay = rate * hours;
			break;
			case 2:
				grossPay = rate * hours;
			break;
			case 3:
                                    if (hours == 0)
                                        grossPay = 0;
                                    else
                                        grossPay = rate * 40;


			break;

		}

		return grossPay;

	}

	public double getTaxes()
	{
		double taxtemp = grossPay;
		taxtemp = taxtemp - 200;
		if (married == true)
			taxtemp = taxtemp - 100;
		if (deps > 0)
			taxtemp = taxtemp - (deps * 50);
		if (taxtemp <= 0)
			taxes = 0;
		else
			taxes = taxtemp * .10;

		if (choosefica == true)
		{
			taxtemp = grossPay * .0765;
			System.out.println(taxtemp);
			taxes = taxes + taxtemp;
			ficamount = grossPay * .153;
			System.out.println(ficamount);
		}

			return taxes;
	}

	public double getNet()
	{
		netpay = grossPay - taxes;
		return netpay;
	}

	public int getId()
	{
		return id;
	}

	public double getRate()
	{
		return rate;
	}

	public void setRate(double r)
	{
		rate = r;
	}

    public double getHours()
    {
        return hours;
    }

    public boolean getMar()
    {
        return married;
    }

    public void setHours(double h)
    {
        hours = h;
    }

    public void setFica(boolean fica)
    {
		choosefica = fica;
    }

	public boolean getFicaChoice()
	{
		return choosefica;
	}

	public double getFica()
	{
		return ficamount;
	}

}

