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.purap.document.dataaccess.impl;
017    
018    import java.util.Collection;
019    
020    import org.apache.log4j.Logger;
021    import org.apache.ojb.broker.query.Criteria;
022    import org.apache.ojb.broker.query.Query;
023    import org.apache.ojb.broker.query.QueryByCriteria;
024    import org.kuali.kfs.module.purap.PurapPropertyConstants;
025    import org.kuali.kfs.module.purap.businessobject.ReceivingAddress;
026    import org.kuali.kfs.module.purap.document.dataaccess.ReceivingAddressDao;
027    import org.kuali.kfs.sys.KFSPropertyConstants;
028    import org.kuali.rice.kns.dao.impl.PlatformAwareDaoBaseOjb;
029    
030    /**
031     * OJB Implementation of ReceivingAddressDao.
032     */
033    public class ReceivingAddressDaoOjb extends PlatformAwareDaoBaseOjb implements ReceivingAddressDao {
034        private static Logger LOG = Logger.getLogger(ReceivingAddressDaoOjb.class);
035    
036        /**
037         * @see org.kuali.kfs.module.purap.document.dataaccess.ReceivingAddressDao#findActiveByChartOrg(java.lang.String,java.lang.String)
038         */
039        public Collection<ReceivingAddress> findActiveByChartOrg(String chartCode, String orgCode) {
040            LOG.debug("Entering findActiveByChartOrg(String,String)");
041            
042            Criteria criteria = new Criteria();
043            criteria.addEqualTo(KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE, chartCode);
044            if ( orgCode == null )
045                criteria.addIsNull(KFSPropertyConstants.ORGANIZATION_CODE);
046            else
047                criteria.addEqualTo(KFSPropertyConstants.ORGANIZATION_CODE, orgCode);
048            criteria.addEqualTo(PurapPropertyConstants.BO_ACTIVE, true);
049            Query query = new QueryByCriteria(ReceivingAddress.class, criteria);
050            
051            LOG.debug("Leaving findActiveByChartOrg(String,String)");
052            return getPersistenceBrokerTemplate().getCollectionByQuery(query);
053        }
054    
055        /**
056         * @see org.kuali.kfs.module.purap.document.dataaccess.ReceivingAddressDao#findDefaultByChartOrg(java.lang.String,java.lang.String)
057         */
058        public Collection<ReceivingAddress> findDefaultByChartOrg(String chartCode, String orgCode) {
059            LOG.debug("Entering findDefaultByChartOrg(String,String)");
060            
061            Criteria criteria = new Criteria();
062            criteria.addEqualTo(KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE, chartCode);
063            if ( orgCode == null )
064                criteria.addIsNull(KFSPropertyConstants.ORGANIZATION_CODE);
065            else
066                criteria.addEqualTo(KFSPropertyConstants.ORGANIZATION_CODE, orgCode);
067            criteria.addEqualTo(PurapPropertyConstants.RECEIVING_ADDRESS_DEFAULT_INDICATOR, true);
068            criteria.addEqualTo(PurapPropertyConstants.BO_ACTIVE, true);
069            Query query = new QueryByCriteria(ReceivingAddress.class, criteria);
070            
071            LOG.debug("Leaving findDefaultByChartOrg(String,String)");
072            return getPersistenceBrokerTemplate().getCollectionByQuery(query);
073        }    
074        
075        /**
076         * @see org.kuali.kfs.module.purap.document.dataaccess.ReceivingAddressDao#countActiveByChartOrg(java.lang.String,java.lang.String)
077         */
078        public int countActiveByChartOrg(String chartCode, String orgCode) {
079            LOG.debug("Entering countActiveByChartOrg(String,String)");
080            
081            Criteria criteria = new Criteria();
082            criteria.addEqualTo(KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE, chartCode);
083            if ( orgCode == null )
084                criteria.addIsNull(KFSPropertyConstants.ORGANIZATION_CODE);
085            else
086                criteria.addEqualTo(KFSPropertyConstants.ORGANIZATION_CODE, orgCode);
087            criteria.addEqualTo(PurapPropertyConstants.BO_ACTIVE, true);
088            Query query = new QueryByCriteria(ReceivingAddress.class, criteria);
089            
090            LOG.debug("Leaving countActiveByChartOrg(String,String)");
091            return getPersistenceBrokerTemplate().getCount(query);
092        }
093    
094    }