001 /** 002 * Copyright 2004-2013 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package org.kuali.hr.time.batch; 017 018 import org.apache.commons.lang.StringUtils; 019 import org.kuali.hr.lm.leavecalendar.LeaveCalendarDocument; 020 import org.kuali.hr.lm.workflow.LeaveCalendarDocumentHeader; 021 import org.kuali.hr.time.calendar.Calendar; 022 import org.kuali.hr.time.calendar.CalendarEntries; 023 import org.kuali.hr.time.service.base.TkServiceLocator; 024 import org.kuali.hr.time.timesheet.TimesheetDocument; 025 import org.kuali.hr.time.util.TkConstants; 026 import org.kuali.hr.time.workflow.TimesheetDocumentHeader; 027 import org.kuali.rice.kew.api.document.DocumentStatus; 028 import org.kuali.rice.kew.service.KEWServiceLocator; 029 import org.quartz.Job; 030 import org.quartz.JobDataMap; 031 import org.quartz.JobExecutionContext; 032 import org.quartz.JobExecutionException; 033 034 public class EmployeeApprovalJob implements Job { 035 036 public void execute(JobExecutionContext context) throws JobExecutionException { 037 JobDataMap jobDataMap = context.getJobDetail().getJobDataMap(); 038 039 String hrCalendarEntriesId = jobDataMap.getString("hrCalendarEntriesId"); 040 String documentId = jobDataMap.getString("documentId"); 041 042 CalendarEntries calendarEntry = TkServiceLocator.getCalendarEntriesService().getCalendarEntries(hrCalendarEntriesId); 043 Calendar calendar = TkServiceLocator.getCalendarService().getCalendar(calendarEntry.getHrCalendarId()); 044 045 if (StringUtils.equals(calendar.getCalendarTypes(), "Pay")) { 046 TimesheetDocumentHeader timesheetDocumentHeader = TkServiceLocator.getTimesheetDocumentHeaderService().getDocumentHeader(documentId); 047 if (timesheetDocumentHeader != null) { 048 TimesheetDocument timesheetDocument = TkServiceLocator.getTimesheetService().getTimesheetDocument(documentId); 049 String documentStatus = KEWServiceLocator.getRouteHeaderService().getDocumentStatus(timesheetDocument.getDocumentId()); 050 String principalId = timesheetDocument == null ? null : timesheetDocument.getPrincipalId(); 051 052 if (DocumentStatus.INITIATED.getCode().equals(documentStatus) || DocumentStatus.SAVED.getCode().equals(documentStatus)) { 053 TkServiceLocator.getTimesheetService().routeTimesheet(principalId, timesheetDocument, TkConstants.BATCH_JOB_ACTIONS.BATCH_JOB_ROUTE); 054 } 055 } 056 } else if (StringUtils.equals(calendar.getCalendarTypes(), "Leave")) { 057 LeaveCalendarDocumentHeader leaveCalendarDocumentHeader = TkServiceLocator.getLeaveCalendarDocumentHeaderService().getDocumentHeader(documentId); 058 if (leaveCalendarDocumentHeader != null) { 059 LeaveCalendarDocument leaveCalendarDocument = TkServiceLocator.getLeaveCalendarService().getLeaveCalendarDocument(documentId); 060 String documentStatus = KEWServiceLocator.getRouteHeaderService().getDocumentStatus(leaveCalendarDocument.getDocumentId()); 061 String principalId = leaveCalendarDocument.getPrincipalId(); 062 063 if (DocumentStatus.INITIATED.getCode().equals(documentStatus) || DocumentStatus.SAVED.getCode().equals(documentStatus)) { 064 TkServiceLocator.getLeaveCalendarService().routeLeaveCalendar(principalId, leaveCalendarDocument, TkConstants.BATCH_JOB_ACTIONS.BATCH_JOB_ROUTE); 065 } 066 } 067 } 068 } 069 070 }