001/* 002 * Copyright 2008 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 */ 016package org.kuali.ole.module.purap.document.dataaccess.impl; 017 018import org.apache.ojb.broker.query.Criteria; 019import org.apache.ojb.broker.query.ReportQueryByCriteria; 020import org.kuali.ole.module.purap.PurapPropertyConstants; 021import org.kuali.ole.module.purap.document.BulkReceivingDocument; 022import org.kuali.ole.module.purap.document.dataaccess.BulkReceivingDao; 023import org.kuali.ole.sys.OLEPropertyConstants; 024import org.kuali.rice.core.framework.persistence.ojb.dao.PlatformAwareDaoBaseOjb; 025import org.springframework.transaction.annotation.Transactional; 026 027import java.sql.Date; 028import java.util.ArrayList; 029import java.util.List; 030 031@Transactional 032public class BulkReceivingDaoOjb extends PlatformAwareDaoBaseOjb implements BulkReceivingDao { 033 034 private static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(BulkReceivingDaoOjb.class); 035 036 public List<String> getDocumentNumbersByPurchaseOrderId(Integer id) { 037 038 List<String> returnList = new ArrayList<String>(); 039 Criteria criteria = new Criteria(); 040 criteria.addEqualTo(PurapPropertyConstants.PURCHASE_ORDER_IDENTIFIER, id); 041 returnList = getDocumentNumbersOfBulkReceivingByCriteria(criteria, false); 042 043 return returnList; 044 } 045 046 public List<String> duplicateBillOfLadingNumber(Integer poId, String billOfLadingNumber) { 047 List<String> returnList = new ArrayList<String>(); 048 Criteria criteria = new Criteria(); 049 criteria.addEqualTo(PurapPropertyConstants.PURCHASE_ORDER_IDENTIFIER, poId); 050 criteria.addEqualTo(PurapPropertyConstants.SHIPMENT_BILL_OF_LADING_NUMBER, billOfLadingNumber); 051 returnList = getDocumentNumbersOfBulkReceivingByCriteria(criteria, false); 052 053 return returnList; 054 } 055 056 public List<String> duplicatePackingSlipNumber(Integer poId, String packingSlipNumber) { 057 List<String> returnList = new ArrayList<String>(); 058 Criteria criteria = new Criteria(); 059 criteria.addEqualTo(PurapPropertyConstants.PURCHASE_ORDER_IDENTIFIER, poId); 060 criteria.addEqualTo(PurapPropertyConstants.SHIPMENT_PACKING_SLIP_NUMBER, packingSlipNumber); 061 returnList = getDocumentNumbersOfBulkReceivingByCriteria(criteria, false); 062 063 return returnList; 064 } 065 066 public List<String> duplicateVendorDate(Integer poId, Date vendorDate) { 067 List<String> returnList = new ArrayList<String>(); 068 Criteria criteria = new Criteria(); 069 criteria.addEqualTo(PurapPropertyConstants.PURCHASE_ORDER_IDENTIFIER, poId); 070 criteria.addEqualTo(PurapPropertyConstants.SHIPMENT_RECEIVED_DATE, vendorDate); 071 returnList = getDocumentNumbersOfBulkReceivingByCriteria(criteria, false); 072 073 return returnList; 074 } 075 076 protected List<String> getDocumentNumbersOfBulkReceivingByCriteria(Criteria criteria, boolean orderByAscending) { 077 List<String> returnList = new ArrayList<String>(); 078 079 ReportQueryByCriteria rqbc = new ReportQueryByCriteria(BulkReceivingDocument.class, criteria); 080 if (orderByAscending) { 081 rqbc.addOrderByAscending(OLEPropertyConstants.DOCUMENT_NUMBER); 082 } else { 083 rqbc.addOrderByDescending(OLEPropertyConstants.DOCUMENT_NUMBER); 084 } 085 086 List<BulkReceivingDocument> bulkReceivingDocs = (List<BulkReceivingDocument>) getPersistenceBrokerTemplate().getCollectionByQuery(rqbc); 087 088 for (BulkReceivingDocument bulkReceivingDoc : bulkReceivingDocs) { 089 returnList.add(bulkReceivingDoc.getDocumentNumber()); 090 } 091 092 return returnList; 093 } 094}