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.missedpunch.service;
017    
018    import java.util.List;
019    
020    import org.kuali.hr.time.batch.BatchJobEntry;
021    import org.kuali.hr.time.missedpunch.MissedPunchDocument;
022    
023    
024    public interface MissedPunchService {
025            /**
026             * Fetch missed punch by header id
027             * @param headerId
028             * @return
029             */
030        public MissedPunchDocument getMissedPunchByRouteHeader(String headerId);
031        /**
032         * Add clock log for missed punch
033         * @param missedPunch
034         * @param logEndId
035         * @param logBeginId
036         */
037        public void addClockLogForMissedPunch(MissedPunchDocument missedPunch, String logEndId, String logBeginId);
038        /**
039         * Add clock log for missed punch
040         * @param missedPunch
041         */
042        public void addClockLogForMissedPunch(MissedPunchDocument missedPunch);
043        /**
044         * Update clock log and time block if necessary
045         * @param missedPunch
046         */
047        public void updateClockLogAndTimeBlockIfNecessary(MissedPunchDocument missedPunch);
048        /**
049         * Get missed punch by clock id
050         * @param clockLogId
051         * @return
052         */
053        public MissedPunchDocument getMissedPunchByClockLogId(String clockLogId);
054        /**
055         * Approve missed punch document
056         * @param document
057         * @return
058         */
059        public void approveMissedPunch(MissedPunchDocument document);
060        /**
061         * Get missed punch documents by batchJobEntry
062         * @param batchJobEntry
063         * @return
064         */
065        public List<MissedPunchDocument> getMissedPunchDocsByBatchJobEntry(BatchJobEntry batchJobEntry);
066    }