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 }