001 /* 002 * Copyright 2011 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.kfs.module.ec.dataaccess.impl; 017 018 import java.util.ArrayList; 019 import java.util.Collection; 020 import java.util.Iterator; 021 import java.util.List; 022 023 import org.apache.ojb.broker.query.Criteria; 024 import org.apache.ojb.broker.query.QueryFactory; 025 import org.kuali.kfs.integration.ec.EffortCertificationReport; 026 import org.kuali.kfs.module.ec.EffortPropertyConstants; 027 import org.kuali.kfs.module.ec.businessobject.EffortCertificationReportDefinition; 028 import org.kuali.kfs.module.ec.dataaccess.EffortCertificationReportDefinitionDao; 029 import org.kuali.kfs.sys.KFSPropertyConstants; 030 import org.kuali.rice.kns.dao.impl.PlatformAwareDaoBaseOjb; 031 032 /** 033 * @see org.kuali.kfs.module.ec.dataaccess.EffortCertificationReportDefinitionDao 034 */ 035 public class EffortCertificationReportDefinitionDaoOjb extends PlatformAwareDaoBaseOjb implements EffortCertificationReportDefinitionDao { 036 037 /** 038 * 039 * @see org.kuali.kfs.module.ec.dataaccess.EffortCertificationReportDefinitionDao#getAll() 040 */ 041 public List<EffortCertificationReportDefinition> getAll() { 042 return (List<EffortCertificationReportDefinition>) getPersistenceBrokerTemplate().getCollectionByQuery(QueryFactory.newQuery(EffortCertificationReportDefinition.class, new Criteria())); 043 } 044 045 /** 046 * @see org.kuali.kfs.module.ec.dataaccess.EffortCertificationReportDefinitionDao#getOverlappingReportDefinitions(org.kuali.kfs.module.ec.businessobject.EffortCertificationReportDefinition) 047 */ 048 public List<EffortCertificationReportDefinition> getAllOtherActiveByType(EffortCertificationReportDefinition effortCertificationReportDefinition) { 049 Criteria criteria = new Criteria(); 050 criteria.addEqualTo(EffortPropertyConstants.EFFORT_CERTIFICATION_REPORT_TYPE_CODE, effortCertificationReportDefinition.getEffortCertificationReportTypeCode()); 051 criteria.addEqualTo(KFSPropertyConstants.ACTIVE, true); 052 053 Criteria subCriteria = new Criteria(); 054 Criteria subCriteriaReportNumber = new Criteria(); 055 056 subCriteria.addNotEqualTo(KFSPropertyConstants.UNIVERSITY_FISCAL_YEAR, effortCertificationReportDefinition.getUniversityFiscalYear()); 057 subCriteriaReportNumber.addNotEqualTo(EffortPropertyConstants.EFFORT_CERTIFICATION_REPORT_NUMBER, effortCertificationReportDefinition.getEffortCertificationReportNumber()); 058 059 subCriteria.addOrCriteria(subCriteriaReportNumber); 060 criteria.addAndCriteria(subCriteria); 061 062 Collection col = getPersistenceBrokerTemplate().getCollectionByQuery(QueryFactory.newQuery(EffortCertificationReportDefinition.class, criteria)); 063 064 Iterator i = col.iterator(); 065 List<EffortCertificationReportDefinition> overlappingReportDefinitions = new ArrayList(); 066 067 while (i.hasNext()) { 068 EffortCertificationReportDefinition temp = (EffortCertificationReportDefinition) i.next(); 069 overlappingReportDefinitions.add(temp); 070 } 071 072 return overlappingReportDefinitions; 073 } 074 075 /** 076 * @see org.kuali.kfs.module.ec.dataaccess.EffortCertificationReportDefinitionDao#getAllByYearAndPositionCode(java.lang.Integer, java.lang.String) 077 */ 078 public List<EffortCertificationReport> getAllByYearAndPositionCode(Integer fiscalYear, String positionObjectCode) { 079 Criteria criteria = new Criteria(); 080 criteria.addEqualTo(EffortPropertyConstants.EFFORT_CERTIFICATION_REPORT_BEGIN_FISCAL_YEAR, fiscalYear); 081 082 Criteria criteria2 = new Criteria(); 083 criteria2.addEqualTo(EffortPropertyConstants.EFFORT_CERTIFICATION_REPORT_END_FISCAL_YEAR, fiscalYear); 084 criteria.addOrCriteria(criteria2); 085 086 criteria.addEqualTo(EffortPropertyConstants.EFFORT_CERTIFICATION_REPORT_POSITIONS + "." + EffortPropertyConstants.EFFORT_CERTIFICATION_REPORT_POSITION_OBJECT_GROUP_CODE, positionObjectCode); 087 088 return (List<EffortCertificationReport>) getPersistenceBrokerTemplate().getCollectionByQuery(QueryFactory.newQuery(EffortCertificationReportDefinition.class, criteria)); 089 } 090 }