1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.hr.time.rule;
17
18 import java.util.List;
19
20 import org.apache.commons.lang.StringUtils;
21 import org.kuali.hr.time.calendar.CalendarEntries;
22 import org.kuali.hr.time.service.base.TkServiceLocator;
23 import org.kuali.hr.time.timeblock.TimeBlock;
24 import org.kuali.hr.time.timesheet.TimesheetDocument;
25 import org.kuali.hr.time.util.TKContext;
26 import org.kuali.hr.time.util.TKUser;
27 import org.kuali.hr.time.util.TkConstants;
28 import org.kuali.hr.time.util.TkTimeBlockAggregate;
29 import org.kuali.rice.krad.util.GlobalVariables;
30
31 public class TkRuleControllerServiceImpl implements TkRuleControllerService {
32
33
34 public void applyRules(String action, List<TimeBlock> timeBlocks, CalendarEntries payEntry, TimesheetDocument timesheetDocument, String principalId){
35
36 if(StringUtils.equals(action, TkConstants.ACTIONS.ADD_TIME_BLOCK) || StringUtils.equals(action, TkConstants.ACTIONS.CLOCK_OUT)){
37 TkTimeBlockAggregate timeBlockAggregate = new TkTimeBlockAggregate(timeBlocks, payEntry, payEntry.getCalendarObj(), true);
38
39
40
41
42
43 if (GlobalVariables.getUserSession() != null && TKUser.getCurrentTargetRoles().isSynchronous()) {
44 TkServiceLocator.getDepartmentLunchRuleService().applyDepartmentLunchRule(timeBlockAggregate.getFlattenedTimeBlockList());
45 }
46 TkServiceLocator.getShiftDifferentialRuleService().processShiftDifferentialRules(timesheetDocument, timeBlockAggregate);
47 TkServiceLocator.getDailyOvertimeRuleService().processDailyOvertimeRules(timesheetDocument, timeBlockAggregate);
48 TkServiceLocator.getWeeklyOvertimeRuleService().processWeeklyOvertimeRule(timesheetDocument, timeBlockAggregate);
49 }
50 }
51
52
53 }