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    }