need help asap
Box Mart wants a new payroll application to generate pay checks and pay stubs for its employees. Each employee clocks in at that start of a work period and clock outs at the end of the period, this information is recorded in a time entry. BoxMart Pay Report Employee No: 48399 Employee Name: Bill Jones Pay Period: 01/14/2012 to 01/20/2012 Normal Hours Worked: Overtime Hours Worked: Hourly Wage: 40 hrs 8 hrs 12.25/hr $ Normal Pay: Overtime Pay: Gross Pay: Federal Tax: State Tax: Net Pay: $ 490.00 $ 147.00 $ 637.00 $ 13.70 $ 19.11 $ 604.19 Hours OT Hes Date 01/14/2012 01/15/2012 01/16/2012 01/17/2012 01/18/2012 01/19/2012 01/20/2012 Time Log Out 8:00 17:00 8:00 20:00 12:00 19:00 12:00 19:00 8:00 17:00 11:00 18:00 9:00 12:00 WN Pay Check 01/27/2012 $ 604.19 Pay to: Bill Jones The computations are as follows: If an employee works more than 6 hours then deduct 1 hour for a lunch period. If an employee, after deducting 1 hour works more than 8 hours in a day then the hours in excess of the 8 are considered to be overtime. Any hours in excess of 40 non-overtime hours are also considered overtime. The normal hours worked will the total of all the non-overtime hours. This cannot be more than 40 hours. The overtime hours worked will be the total of all hours considered to be overtime. Normal pay will be the normal hours worked times the hourly wage. Overtime pay will be the normal hours worked times the hourly wage times 1 Gross pay is the sum of normal pay and overtime pay. Federal tax is 10% of the gross pay in excess of $500.00 State tax is 3% of the gross pay. Net pay is gross pay less federal and state taxes. The end of the pay period will be 6 days after the start of the pay period. The date of the pay check will be 13 days after the start of the pay period. Additional Specifications: You will need 3 classes to represent the business objects for this problem, one for the employee, one for the pay stub (which includes code to print both the pay report and pay check), and one for daily time entry. Note that for the pay stub, there can be many time entries. Provide getter methods for all instance variables. The only setter methods will be the employee's pay rate (yes they can get a raise). You do not need to write a program that accepts user input. Like assignments 1 and 2, just write a test program (this will be a fourth class). Is should instantiate a sufficient set of objects to print pay reports and pay checks for 3 different employees. The test program can hard code the data which is passed to the constructors. (do not hard code other values in the business classes except for federal tax rate, state tax rate, federal tax exemption - 500, 1 hour lunch deduction, 8 hour daily overtime threshold, and 40 hour weekly threshold). Make sure you develop test cases of an employee that receives no overtime pay, an employee that receive overtime threshold, and an employee that receives overtime the weekly overtime threshold. Furthe that pays not federal tax and one that does. wee that receives overtime pays as a result of exceeding the daily oployee that receives overtime pay as a result of exceeding threshold. Furthermore, the test cases should include an employee anay stub one at a time using and add method (do not pass an array Add time entries to a pay stub one at a time usin as an argument to the constructor). place the code to print the pay report in one method and the code to print the pay check in other (thus you will need to call both in your test program on each pay stub obiect) Suggest that the time entry record the number of hours and overtime hours. Both of these are computed values (thus do not pass them in on the constructor). You will also need a method to adjust overtime. This method should have one argument, which is the number over hours to move from normal pay hours to overtime hours. Use this method once the weekly threshold has been reached to move the appropriate number of hours from normal to overtime. Suggest that the pay stub class have a method to compute pay. This method will loop over the pay entries to make appropriate adjustments to overtime hours, total the normal and over time hours, and perform all the computations. Call this method at that start of the print pay stub method. You may assume that an employee clocks in and clocks out on the hour (i.e., no minutes) Use LocalDate for date. For the time (hour), use just an int. Use good programming practices (javadoc, encapsulation, naming conventions, formatting)