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.dao; 017 018 import java.util.ArrayList; 019 import java.util.List; 020 021 import org.apache.ojb.broker.query.Criteria; 022 import org.apache.ojb.broker.query.Query; 023 import org.apache.ojb.broker.query.QueryFactory; 024 import org.kuali.hr.time.batch.BatchJobEntry; 025 import org.kuali.hr.time.calendar.CalendarEntries; 026 import org.kuali.hr.time.missedpunch.MissedPunchDocument; 027 import org.kuali.hr.time.service.base.TkServiceLocator; 028 import org.kuali.hr.time.util.TkConstants; 029 import org.kuali.hr.time.workflow.TimesheetDocumentHeader; 030 import org.kuali.rice.core.framework.persistence.ojb.dao.PlatformAwareDaoBaseOjb; 031 032 public class MissedPunchDaoSpringOjbImpl extends PlatformAwareDaoBaseOjb implements MissedPunchDao { 033 034 @Override 035 public MissedPunchDocument getMissedPunchByRouteHeader(String headerId) { 036 MissedPunchDocument mp = null; 037 038 Criteria root = new Criteria(); 039 root.addEqualTo("documentNumber", headerId); 040 Query query = QueryFactory.newQuery(MissedPunchDocument.class, root); 041 mp = (MissedPunchDocument)this.getPersistenceBrokerTemplate().getObjectByQuery(query); 042 043 return mp; 044 } 045 046 @Override 047 public MissedPunchDocument getMissedPunchByClockLogId(String clockLogId) { 048 MissedPunchDocument mp = null; 049 050 Criteria root = new Criteria(); 051 root.addEqualTo("tkClockLogId", clockLogId); 052 Query query = QueryFactory.newQuery(MissedPunchDocument.class, root); 053 mp = (MissedPunchDocument)this.getPersistenceBrokerTemplate().getObjectByQuery(query); 054 055 return mp; 056 } 057 058 @Override 059 public List<MissedPunchDocument> getMissedPunchDocsByBatchJobEntry(BatchJobEntry batchJobEntry) { 060 List<MissedPunchDocument> results = new ArrayList<MissedPunchDocument>(); 061 Criteria root = new Criteria(); 062 063 root.addEqualTo("principalId", batchJobEntry.getPrincipalId()); 064 root.addEqualTo("documentStatus", TkConstants.ROUTE_STATUS.ENROUTE); 065 Query query = QueryFactory.newQuery(MissedPunchDocument.class, root); 066 List<MissedPunchDocument> aList = (List<MissedPunchDocument>) this.getPersistenceBrokerTemplate().getCollectionByQuery(query); 067 068 String pcdId = batchJobEntry.getHrPyCalendarEntryId(); 069 CalendarEntries pcd = TkServiceLocator.getCalendarEntriesService().getCalendarEntries(pcdId.toString()); 070 if(pcd != null) { 071 for(MissedPunchDocument aDoc : aList) { 072 String tscId = aDoc.getTimesheetDocumentId(); 073 TimesheetDocumentHeader tsdh = TkServiceLocator.getTimesheetDocumentHeaderService().getDocumentHeader(tscId); 074 if(tsdh != null) { 075 if(tsdh.getPayBeginDate().equals(pcd.getBeginPeriodDate()) && tsdh.getPayEndDate().equals(pcd.getEndPeriodDate())) { 076 results.add(aDoc); 077 } 078 } 079 } 080 } 081 082 return results; 083 } 084 085 }