001    /**
002     * Copyright 2004-2014 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.kpme.tklm.time.missedpunch.service;
017    
018    import java.util.List;
019    
020    import org.kuali.kpme.tklm.time.missedpunch.MissedPunch;
021    import org.kuali.kpme.tklm.time.missedpunch.MissedPunchDocument;
022    
023    public interface MissedPunchService {
024            
025            /**
026         * Get a list of Missed Punch Documents by Timesheet document ids.
027         * 
028         * @param timesheetDocumentId The Timesheet document id to look up
029         * 
030         * @return a list of Missed Punch Documents associated with the given Timesheet document id
031         */
032            List<MissedPunchDocument> getMissedPunchDocumentsByTimesheetDocumentId(String timesheetDocumentId);
033            
034            /**
035         * Get a Missed Punch by its unique Clock Log id.
036         * 
037         * @param clockLogId The Clock Log id to look up
038         * 
039         * @return the Missed Punch associated with the given Clock Log id
040         */
041        public MissedPunch getMissedPunchByClockLogId(String clockLogId);
042            
043            /**
044         * Add a Clock Log to the specified Missed Punch
045         * 
046         * @param missedPunch The Missed Punch to add the Clock Log to
047         * @param ipAddress The IP address of the user
048         */
049        public void addClockLog(MissedPunch missedPunch, String ipAddress);
050        
051            /**
052         * Update the Clock Log (and any Time Blocks if necessary) for the given Missed Punch.
053         * 
054         * @param missedPunch The Missed Punch to update the Clock Logs for
055         * @param ipAddress The IP address of the user
056         */
057        public void updateClockLog(MissedPunch missedPunch, String ipAddress);
058        
059            /**
060         * Approve a Missed Punch Document.
061         * 
062         * @param missedPunchDocument The Missed Punch Document to approve
063         */
064        public void approveMissedPunchDocument(MissedPunchDocument missedPunchDocument);
065    
066            public MissedPunchDocument getMissedPunchDocumentByMissedPunchId(String tkMissedPunchId);
067        
068    }