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.TkConstants;
27 import org.kuali.hr.time.util.TkTimeBlockAggregate;
28
29 public class TkRuleControllerServiceImpl implements TkRuleControllerService {
30
31
32 public void applyRules(String action, List<TimeBlock> timeBlocks, CalendarEntries payEntry, TimesheetDocument timesheetDocument, String principalId){
33
34 if(StringUtils.equals(action, TkConstants.ACTIONS.ADD_TIME_BLOCK) || StringUtils.equals(action, TkConstants.ACTIONS.CLOCK_OUT)){
35 TkTimeBlockAggregate timeBlockAggregate = new TkTimeBlockAggregate(timeBlocks, payEntry, payEntry.getCalendarObj(), true);
36
37
38
39
40
41 if (TKContext.getUser().getCurrentTargetRoles().isSynchronous()) {
42 TkServiceLocator.getDepartmentLunchRuleService().applyDepartmentLunchRule(timeBlockAggregate.getFlattenedTimeBlockList());
43 }
44 TkServiceLocator.getShiftDifferentialRuleService().processShiftDifferentialRules(timesheetDocument, timeBlockAggregate);
45 TkServiceLocator.getDailyOvertimeRuleService().processDailyOvertimeRules(timesheetDocument, timeBlockAggregate);
46 TkServiceLocator.getWeeklyOvertimeRuleService().processWeeklyOvertimeRule(timesheetDocument, timeBlockAggregate);
47 }
48 }
49
50
51 }