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.businessobject.NegativePaymentRequestApprovalLimit; 025 import org.kuali.kfs.module.purap.document.dataaccess.NegativePaymentRequestApprovalLimitDao; 026 import org.kuali.kfs.sys.KFSPropertyConstants; 027 import org.kuali.rice.kns.dao.impl.PlatformAwareDaoBaseOjb; 028 import org.kuali.rice.kns.util.KNSPropertyConstants; 029 import org.kuali.rice.kns.util.KualiDecimal; 030 031 /** 032 * OJB Implementation of NegativePaymentRequestApprovalLimitDao. 033 */ 034 public class NegativePaymentRequestApprovalLimitDaoOjb extends PlatformAwareDaoBaseOjb implements NegativePaymentRequestApprovalLimitDao { 035 private static Logger LOG = Logger.getLogger(NegativePaymentRequestApprovalLimitDaoOjb.class); 036 037 /** 038 * @see org.kuali.kfs.module.purap.document.dataaccess.NegativePaymentRequestApprovalLimitDao#findByChart(java.lang.String) 039 */ 040 public Collection<NegativePaymentRequestApprovalLimit> findByChart(String chartCode) { 041 LOG.debug("Entering findByChart(String)"); 042 Criteria criteria = new Criteria(); 043 criteria.addEqualTo(KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE, chartCode); 044 criteria.addIsNull(KFSPropertyConstants.ORGANIZATION_CODE); 045 criteria.addIsNull(KFSPropertyConstants.ACCOUNT_NUMBER); 046 criteria.addAndCriteria(buildActiveCriteria()); 047 Query query = new QueryByCriteria(NegativePaymentRequestApprovalLimit.class, criteria); 048 LOG.debug("Leaving findByChart(String)"); 049 return getPersistenceBrokerTemplate().getCollectionByQuery(query); 050 } 051 052 /** 053 * @see org.kuali.kfs.module.purap.document.dataaccess.NegativePaymentRequestApprovalLimitDao#findByChartAndAccount(java.lang.String, 054 * java.lang.String) 055 */ 056 public Collection<NegativePaymentRequestApprovalLimit> findByChartAndAccount(String chartCode, String accountNumber) { 057 LOG.debug("Entering findByChartAndAccount(String, String)"); 058 Criteria criteria = new Criteria(); 059 criteria.addEqualTo(KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE, chartCode); 060 criteria.addEqualTo(KFSPropertyConstants.ACCOUNT_NUMBER, accountNumber); 061 criteria.addIsNull(KFSPropertyConstants.ORGANIZATION_CODE); 062 criteria.addAndCriteria(buildActiveCriteria()); 063 Query query = new QueryByCriteria(NegativePaymentRequestApprovalLimit.class, criteria); 064 LOG.debug("Leaving findByChartAndAccount(String, String)"); 065 return getPersistenceBrokerTemplate().getCollectionByQuery(query); 066 } 067 068 /** 069 * @see org.kuali.kfs.module.purap.document.dataaccess.NegativePaymentRequestApprovalLimitDao#findByChartAndOrganization(java.lang.String, 070 * java.lang.String) 071 */ 072 public Collection<NegativePaymentRequestApprovalLimit> findByChartAndOrganization(String chartCode, String organizationCode) { 073 LOG.debug("Entering findByChartAndOrganization(String, String)"); 074 Criteria criteria = new Criteria(); 075 criteria.addEqualTo(KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE, chartCode); 076 criteria.addEqualTo(KFSPropertyConstants.ORGANIZATION_CODE, organizationCode); 077 criteria.addIsNull(KFSPropertyConstants.ACCOUNT_NUMBER); 078 criteria.addAndCriteria(buildActiveCriteria()); 079 Query query = new QueryByCriteria(NegativePaymentRequestApprovalLimit.class, criteria); 080 LOG.debug("Leaving findByChartAndOrganization(String, String)"); 081 return getPersistenceBrokerTemplate().getCollectionByQuery(query); 082 } 083 084 /** 085 * @see org.kuali.kfs.module.purap.document.dataaccess.NegativePaymentRequestApprovalLimitDao#findAboveLimit(org.kuali.rice.kns.util.KualiDecimal) 086 */ 087 public Collection<NegativePaymentRequestApprovalLimit> findAboveLimit(KualiDecimal limit) { 088 LOG.debug("Entering findAboveLimit(KualiDecimal)"); 089 Criteria criteria = new Criteria(); 090 criteria.addGreaterThan("negativePaymentRequestApprovalLimitAmount", limit); 091 criteria.addAndCriteria(buildActiveCriteria()); 092 Query query = new QueryByCriteria(NegativePaymentRequestApprovalLimit.class, criteria); 093 LOG.debug("Leaving findAboveLimit(KualiDecimal)"); 094 return getPersistenceBrokerTemplate().getCollectionByQuery(query); 095 } 096 097 /** 098 * @see org.kuali.kfs.module.purap.document.dataaccess.NegativePaymentRequestApprovalLimitDao#findBelowLimit(org.kuali.rice.kns.util.KualiDecimal) 099 */ 100 public Collection<NegativePaymentRequestApprovalLimit> findBelowLimit(KualiDecimal limit) { 101 LOG.debug("Entering findBelowLimit(KualiDecimal)"); 102 Criteria criteria = new Criteria(); 103 criteria.addLessThan("negativePaymentRequestApprovalLimitAmount", limit); 104 criteria.addAndCriteria(buildActiveCriteria()); 105 Query query = new QueryByCriteria(NegativePaymentRequestApprovalLimit.class, criteria); 106 LOG.debug("Leaving findBelowLimit(KualiDecimal)"); 107 return getPersistenceBrokerTemplate().getCollectionByQuery(query); 108 } 109 110 /** 111 * Builds a Criteria object for activeIndicator field set to true 112 * @return Criteria 113 */ 114 protected Criteria buildActiveCriteria(){ 115 Criteria criteria = new Criteria(); 116 criteria.addEqualTo(KNSPropertyConstants.ACTIVE, true); 117 118 return criteria; 119 } 120 }