Overtime California
Overtime after 8hrs in a day, double time after 12hrs in a day; overtime on the 7th consecutive day in the workweek, doubletime after the 8th hour on the 7th day
Details
Rule Type
Time
Execution
After segment
Parameters
Name | DataType | DefaultValue | Description |
---|
Decision Tree
Rule processing begins in the cell R1:Level1 and proceeds right/down. Any IF statement which results in a DONE step terminates the rule immediately.
Line# | Level1 | Level2 | Level3 | Comment |
---|---|---|---|---|
1 | Start | |||
2 | IF(EMPLOYEE(Exempt ) = 1 ) → | ↓ | Don't allow for Exempt employees | |
3 | ↓ | DONE | ||
4 | IF(CALC(consecutivedays ) = 7 ) → | ↓ | Are we working 7 consecutive days? If so, all hours are OT or OT2 | |
5 | IF(CALC(REG:day ) > 8 ) → | ↓ | Do we have more than 8 hours in the day? | |
6 | SET(hours_over2 = SUBTRACT(CALC(REG:day ), 8.0 )) | Store excess past 8hrs into temporary bucket | ||
7 | SET(RegularHours = SUBTRACT(RegularHours , hours_over2 )) | Subtract the overage from REG | ||
8 | SET(DTHours = hours_over2 ) | Add the overage to OT2 | ||
9 | IF(CALC(REG:day ) > 0 ) → | ↓ | Do we have any remaining hours still in REG? | |
10 | SET(hours_over = RegularHours ) | Add overage to temporary bucket | ||
11 | SET(RegularHours = 0 ) | Set REG to zero | ||
12 | SET(OTHours = hours_over ) | Add the overage to OT | ||
13 | IF(CALC(REG:day ) > 12 ) → | ↓ | Do we have daily OT2 if worked past 12hrs? | |
14 | SET(hours_over2 = SUBTRACT(CALC(REG.day ), 12.0 )) | Put hours past 12 into temporary bucket | ||
15 | SET(RegularHours = SUBTRACT(RegularHours , hours_over2 )) | Remove overage from REG | ||
16 | SET(DTHours = ADD(DTHours , hours_over2 )) | Add overage to OT2 | ||
17 | IF(CALC(REG:day ) > 8 ) → | ↓ | Do we have hours past 8? | |
18 | SET(hours_over = SUBTRACT(CALC(REG:day ), 8 )) | Put overage past 8 into temporary bucket | ||
19 | SET(RegularHours = SUBTRACT(RegularHours , hours_over )) | Remove overage from REG | ||
20 | SET(OTHours = ADD(OTHours , hours_over )) | Add overage to OT | ||
21 | IF(CALC(REG:week ) > 40 ) → | ↓ | Lastly, do we have weekly hours past 40? | |
22 | SET(hours_over = SUBTRACT(CALC(REG:week ), 40.0 )) | Add overage to temporary bucket | ||
23 | SET(RegularHours = SUBTRACT(RegularHours , hours_over )) | Remove overage from REG | ||
24 | SET(OTHours = ADD(OTHours , hours_over )) | Add overage to OT | ||
25 | DONE |