Home      Ask a Question      My Stuff      Help   
  
TimeWorksPlus: Paying AND Tracking Salaried Employees
This article outlines a means to pay Salaried Employees their pay period rate BUT also allow them to clock IN/OUT for employer tracking purposes without affecting their Salaried wage.

We will be using a few things:

1. An identifier in Employee Setup to identify our Salaried employees. We will be using "Salary" in the Home 1 field of Employee Setup.
2. Their salaried rate of pay per pay period. NOTE this will need to be a fixed amount. We will be entering this amount in the "Default Pay Rate" field of Employee Setup.
3. A script to UNPAY any tracked hours so as not to interfere with their salaried wage but still be displayed on the time card for employer review.
4. A script to ensure that they get paid their full salaried wage on the last day of the pay period.
5. A unique category/job code for these hours. In our example we will be using "Salary".
6. Using the Processing Rule "AutoHoursWeek" to auto add the punch for their salaried wage at the end of the pay period.

1. & 2. Because adding "Salary" in Home 1 and the salaried rate in "Default Pay Rate" of Employee Setup is fairly straight forward we will skip to part 3.

3. Creating an UNPAY script:

Below is an example that states if there are (IN/OUT) times and the category is "Regular" AND Home 1 contains "Salary" then UNPAY all hours. We use this so as to be able to track their hours but not include those tracking hours in the export.


if (istimes AND category = "Regular" AND employee.home1 = "Salary") {UNPAY (hours);}


4. A script to ensure that they get paid their full salaried wage on the last day of the pay period:

This is done in two parts. The first line effectively removes unwanted punches generated by the "AutoHoursWeek" Processing Rule. More on this will be explained in step 6. The second line is what generates the pay on the last day of the pay period based on the amount we put in in Employee Setup "Default Pay Rate" (step 2):


if (reportingdate.payperiodend != reportingdate.date AND ishours AND category = "Salary") {hours = 0; category = "Regular";}


if (reportingdate.payperiodend = reportingdate.date AND ishours AND category = "Salary") {hours = 1; payrate = employee.payrate1;}


5. A unique category/job code for these hours:

In our example we will be using "Salary" will need to be added for our example. This helps with ensuring it doesn't get confused with other categories being used. when we start using "AutoWeekHours". This can be added under Settings Menu > Processing Rules > PunchCategories.

6. Using the Processing Rule "AutoHoursWeek" to auto add the punch for their salaried wage at the end of the pay period:

The "AutoWeekHours" feature allows one to auto pay hours out on a weekly schedule. We will use this to pay out 1 hour per day for the whole week (SUN - SAT). As the last day of the pay period can fluctuate AND this rule works against days of the week and not a date we do this to ensure that we will always be able to pay that 1 hour on that last pay period date.

BUT as mentioned earlier in step 4 we will use that second line of scripting to effectively remove those other punches (excluding that last day of the pay period) out. Below is a screen shot on how this would be setup under this rule:







ID
1109
Category
<Unassigned>
Date Created
2/24/2014 7:12:19 AM
Date Updated
10/28/2014 10:45:32 AM
Back to Search Results