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.clocklog;
017    
018    import java.sql.Timestamp;
019    
020    import javax.persistence.Transient;
021    
022    import org.kuali.hr.job.Job;
023    import org.kuali.hr.time.task.Task;
024    import org.kuali.hr.time.util.TkConstants;
025    import org.kuali.hr.time.workarea.WorkArea;
026    import org.kuali.rice.kim.api.identity.Person;
027    import org.kuali.rice.krad.bo.PersistableBusinessObjectBase;
028    
029    public class ClockLog extends PersistableBusinessObjectBase {
030    
031            private static final long serialVersionUID = -6928657854016622568L;
032            
033            private String tkClockLogId;
034        private String principalId;
035        private Long jobNumber;
036        private Long workArea;
037        private Long task;
038        private Timestamp clockTimestamp;
039        private String clockTimestampTimezone;
040        private String clockAction;
041        private String ipAddress;
042        private String userPrincipalId;
043        private Timestamp timestamp;
044        private boolean unapprovedIP = false;
045        @Transient
046        private String documentId;
047        
048        private String missedPunchDocumentId;
049    
050        private transient Job job;
051        private transient WorkArea workAreaObj;
052        private transient Task taskObj;
053    
054        private transient Person principal;
055    
056            public Job getJob() {
057                    return job;
058            }
059    
060            public void setJob(Job job) {
061                    this.job = job;
062            }
063    
064            public String getPrincipalId() {
065            return principalId;
066        }
067    
068        public void setPrincipalId(String principalId) {
069            this.principalId = principalId;
070        }
071    
072        public Long getJobNumber() {
073            return jobNumber;
074        }
075    
076        public void setJobNumber(Long jobNumber) {
077            this.jobNumber = jobNumber;
078        }
079    
080        public Timestamp getClockTimestamp() {
081            return clockTimestamp;
082        }
083    
084        public void setClockTimestamp(Timestamp clockTimestamp) {
085            this.clockTimestamp = clockTimestamp;
086        }
087    
088        public String getClockAction() {
089            return clockAction;
090        }
091    
092        public void setClockAction(String clockAction) {
093            this.clockAction = clockAction;
094        }
095    
096        public String getIpAddress() {
097            return ipAddress;
098        }
099    
100        public void setIpAddress(String ipAddress) {
101            this.ipAddress = ipAddress;
102        }
103    
104        public String getUserPrincipalId() {
105            return userPrincipalId;
106        }
107    
108        public void setUserPrincipalId(String userPrincipalId) {
109            this.userPrincipalId = userPrincipalId;
110        }
111    
112        public Timestamp getTimestamp() {
113            return timestamp;
114        }
115    
116        public void setTimestamp(Timestamp timestamp) {
117            this.timestamp = timestamp;
118        }
119    
120        public String getClockTimestampTimezone() {
121            return clockTimestampTimezone;
122        }
123    
124        public void setClockTimestampTimezone(String clockTimestampTimezone) {
125            this.clockTimestampTimezone = clockTimestampTimezone;
126        }
127    
128        /**
129         * TODO: Fix this - may need to return multiple actions, depending on how we want the system to work.
130         * @return
131         */
132        public String getNextValidClockAction() {
133            String ret;
134    
135            if (this.getClockAction().equals(TkConstants.CLOCK_IN)) {
136                ret = TkConstants.CLOCK_OUT;
137            } else if (this.getClockAction().equals(TkConstants.CLOCK_OUT)) {
138                ret = TkConstants.CLOCK_IN;
139            } else if (this.getClockAction().equals(TkConstants.LUNCH_IN)) {
140                ret = TkConstants.LUNCH_OUT;
141            } else if (this.getClockAction().equals(TkConstants.LUNCH_OUT)) {
142                ret = TkConstants.LUNCH_IN;
143            } else {
144                ret = TkConstants.CLOCK_IN;
145            }
146    
147            return ret;
148        }
149    
150            public String getTkClockLogId() {
151                    return tkClockLogId;
152            }
153    
154            public void setTkClockLogId(String tkClockLogId) {
155                    this.tkClockLogId = tkClockLogId;
156            }
157    
158            public WorkArea getWorkAreaObj() {
159                    return workAreaObj;
160            }
161    
162            public void setWorkAreaObj(WorkArea workAreaObj) {
163                    this.workAreaObj = workAreaObj;
164            }
165    
166            public Task getTaskObj() {
167                    return taskObj;
168            }
169    
170            public void setTaskObj(Task taskObj) {
171                    this.taskObj = taskObj;
172            }
173    
174            public void setWorkArea(Long workArea) {
175                    this.workArea = workArea;
176            }
177    
178            public void setTask(Long task) {
179                    this.task = task;
180            }
181            public Long getWorkArea() {
182                    return workArea;
183            }
184            public Long getTask() {
185                    return task;
186            }
187    
188            public Person getPrincipal() {
189                    return principal;
190            }
191    
192            public void setPrincipal(Person principal) {
193                    this.principal = principal;
194            }
195    
196            public String getMissedPunchDocumentId() {
197                    return missedPunchDocumentId;
198            }
199    
200            public void setMissedPunchDocumentId(String missedPunchDocumentId) {
201                    this.missedPunchDocumentId = missedPunchDocumentId;
202            }
203    
204            public boolean getUnapprovedIP() {
205                    return unapprovedIP;
206            }
207    
208            public void setUnapprovedIP(boolean unapprovedIP) {
209                    this.unapprovedIP = unapprovedIP;
210            }
211    
212            public String getDocumentId() {
213                    return documentId;
214            }
215    
216            public void setDocumentId(String documentId) {
217                    this.documentId = documentId;
218            }
219            
220    }