001 /**
002 * Copyright 2004-2012 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 java.util.List;
019
020 import org.kuali.hr.time.missedpunch.MissedPunchDocument;
021 import org.kuali.hr.time.service.base.TkServiceLocator;
022
023 public class BatchApproveMissedPunchJobRunnable extends BatchJobEntryRunnable {
024
025 public BatchApproveMissedPunchJobRunnable(BatchJobEntry entry) {
026 super(entry);
027 }
028
029 @Override
030 public void doWork() throws Exception {
031 String clockLogId = batchJobEntry.getClockLogId();
032 if(clockLogId != null) { // if clock log id is provided, just approve the specified missed punch document
033 MissedPunchDocument document = TkServiceLocator.getMissedPunchService().getMissedPunchByClockLogId(clockLogId);
034 if(document != null) {
035 TkServiceLocator.getMissedPunchService().approveMissedPunch(document);
036 }
037 } else if( batchJobEntry.getDocumentId() != null) {
038 MissedPunchDocument document = TkServiceLocator.getMissedPunchService().getMissedPunchByRouteHeader(batchJobEntry.getDocumentId());
039 if(document != null) {
040 TkServiceLocator.getMissedPunchService().approveMissedPunch(document);
041 }
042 } else { // if batch job does not have clock log id, approve all enrouted missed punch docs for the given pay period
043 List<MissedPunchDocument> docList = TkServiceLocator.getMissedPunchService().getMissedPunchDocsByBatchJobEntry(batchJobEntry);
044 for(MissedPunchDocument aDoc : docList) {
045 TkServiceLocator.getMissedPunchService().approveMissedPunch(aDoc);
046 }
047 }
048
049 }
050 }