View Javadoc
1   /*
2    * The Kuali Financial System, a comprehensive financial management system for higher education.
3    * 
4    * Copyright 2005-2014 The Kuali Foundation
5    * 
6    * This program is free software: you can redistribute it and/or modify
7    * it under the terms of the GNU Affero General Public License as
8    * published by the Free Software Foundation, either version 3 of the
9    * License, or (at your option) any later version.
10   * 
11   * This program is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   * GNU Affero General Public License for more details.
15   * 
16   * You should have received a copy of the GNU Affero General Public License
17   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
18   */
19  package org.kuali.kfs.vnd.batch.dataaccess;
20  
21  import java.util.List;
22  
23  import org.apache.ojb.broker.query.Criteria;
24  import org.apache.ojb.broker.query.QueryByCriteria;
25  import org.apache.ojb.broker.query.QueryFactory;
26  import org.kuali.kfs.vnd.businessobject.DebarredVendorMatch;
27  import org.kuali.kfs.vnd.businessobject.VendorDetail;
28  import org.kuali.rice.core.framework.persistence.ojb.dao.PlatformAwareDaoBaseOjb;
29  
30  public class DebarredVendorMatchDaoOjb extends  PlatformAwareDaoBaseOjb implements DebarredVendorMatchDao {
31  
32      /**
33       * @see org.kuali.kfs.vnd.batch.dataaccess.DebarredVendorMatchDao.getPreviousVendorExcludeConfirmation(org.kuali.kfs.vnd.businessobject.DebarredVendorMatch)
34       */
35      @Override
36      public DebarredVendorMatch getPreviousVendorExcludeConfirmation(DebarredVendorMatch match) {
37          Criteria criteria = new Criteria();
38  
39          criteria.addEqualTo("vendorHeaderGeneratedIdentifier", match.getVendorHeaderGeneratedIdentifier());
40          criteria.addEqualTo("vendorDetailAssignedIdentifier", match.getVendorDetailAssignedIdentifier());
41  
42          if (match.getName() != null) {
43              criteria.addEqualTo("upper(name)", match.getName().toUpperCase());
44          } else {
45              criteria.addIsNull("name");
46          }
47          if (match.getAddress1() != null) {
48              criteria.addEqualTo("upper(address1)", match.getAddress1().toUpperCase());
49          } else {
50              criteria.addIsNull("address1");
51          }
52          if (match.getAddress2() != null) {
53              criteria.addEqualTo("upper(address2)", match.getAddress2().toUpperCase());
54          } else {
55              criteria.addIsNull("address2");
56          }
57          if (match.getCity() != null) {
58              criteria.addEqualTo("upper(city)", match.getCity().toUpperCase());
59          } else {
60              criteria.addIsNull("city");
61          }
62          if (match.getState() != null) {
63              criteria.addEqualTo("upper(state)", match.getState().toUpperCase());
64          } else {
65              criteria.addIsNull("state");
66          }
67          if (match.getZip() != null) {
68              criteria.addEqualTo("zip", match.getZip());
69          } else {
70              criteria.addIsNull("zip");
71          }
72          QueryByCriteria query = QueryFactory.newQuery(DebarredVendorMatch.class, criteria);
73          List<DebarredVendorMatch> matches = (List<DebarredVendorMatch>)getPersistenceBrokerTemplate().getCollectionByQuery(query);
74  
75          DebarredVendorMatch oldMatch = null;
76          if (matches.size() > 0) {
77              oldMatch = matches.get(0);
78          }
79          return oldMatch;
80      }
81  
82      /**
83       * @see org.kuali.kfs.vnd.batch.dataaccess.DebarredVendorMatchDao.getDebarredVendorsUnmatched()
84       */
85      @Override
86      public List<VendorDetail> getDebarredVendorsUnmatched() {
87  
88          Criteria subcr = new Criteria();
89          subcr.addEqualToField("vendorHeaderGeneratedIdentifier", Criteria.PARENT_QUERY_PREFIX + "vendorHeaderGeneratedIdentifier");
90          subcr.addEqualToField("vendorDetailAssignedIdentifier", Criteria.PARENT_QUERY_PREFIX + "vendorDetailAssignedIdentifier");
91          Criteria orcr = new Criteria();
92          orcr.addEqualTo("confirmStatusCode", "C");
93          Criteria orcr2 = new Criteria();
94          orcr2.addEqualTo("confirmStatusCode", "U");
95          orcr.addOrCriteria(orcr2);
96          subcr.addAndCriteria(orcr);
97          QueryByCriteria subqr = QueryFactory.newQuery(DebarredVendorMatch.class, subcr);
98  
99          Criteria criteria = new Criteria();
100         criteria.addEqualTo("vendorHeader.vendorDebarredIndicator", "Y");
101         criteria.addNotExists(subqr);
102         QueryByCriteria query = QueryFactory.newQuery(VendorDetail.class, criteria);
103         List<VendorDetail> vendors = (List<VendorDetail>) getPersistenceBrokerTemplate().getCollectionByQuery(query);
104 
105         return vendors;
106       }
107 
108     @Override
109     public DebarredVendorMatch getDebarredVendor(int debarredVendorId) {
110         Criteria criteria = new Criteria();
111         criteria.addEqualTo("debarredVendorId", debarredVendorId);
112         QueryByCriteria query = QueryFactory.newQuery(DebarredVendorMatch.class, criteria);
113         return (DebarredVendorMatch)getPersistenceBrokerTemplate().getObjectByQuery(query);
114     }
115 
116 }