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.endow.document.service.impl; 017 018 import java.util.ArrayList; 019 import java.util.Collection; 020 import java.util.HashMap; 021 import java.util.Map; 022 023 import org.apache.commons.lang.StringUtils; 024 import org.kuali.kfs.module.endow.EndowPropertyConstants; 025 import org.kuali.kfs.module.endow.businessobject.KemidFee; 026 import org.kuali.kfs.module.endow.businessobject.TransactionArchive; 027 import org.kuali.kfs.module.endow.document.service.TransactionArchiveService; 028 import org.kuali.kfs.sys.context.SpringContext; 029 import org.kuali.rice.kns.service.BusinessObjectService; 030 import org.kuali.rice.kns.service.DataDictionaryService; 031 import org.kuali.rice.kns.service.DateTimeService; 032 033 /** 034 * This class is the dao implementation for the TransactionArchiveServiceImpl. 035 */ 036 public class TransactionArchiveServiceImpl implements TransactionArchiveService { 037 038 private BusinessObjectService businessObjectService; 039 040 /** 041 * @see org.kuali.kfs.module.endow.document.service.TransactionArchiveService#getAllTransactionArchives() 042 */ 043 public Collection<TransactionArchive> getAllTransactionArchives() { 044 Collection<TransactionArchive> transactionArchives = new ArrayList(); 045 046 transactionArchives = businessObjectService.findAll(TransactionArchive.class); 047 048 return transactionArchives; 049 } 050 051 /** 052 * @see org.kuali.kfs.module.endow.document.service.TransactionArchiveService#getByPrimaryKey(String, int, String) 053 */ 054 public TransactionArchive getByPrimaryKey(String documentNumber, int lineNumber, String lineTypeCode) { 055 TransactionArchive transactionArchive = null; 056 057 Map primaryKeys = new HashMap(); 058 primaryKeys.put(EndowPropertyConstants.TRANSACTION_ARCHIVE_DOCUMENT_NUMBER, documentNumber); 059 primaryKeys.put(EndowPropertyConstants.TRANSACTION_ARCHIVE_LINE_NUMBER, lineNumber); 060 primaryKeys.put(EndowPropertyConstants.TRANSACTION_ARCHIVE_LINE_TYPE_CODE, lineTypeCode); 061 062 transactionArchive = (TransactionArchive) businessObjectService.findByPrimaryKey(TransactionArchive.class, primaryKeys); 063 064 return transactionArchive; 065 } 066 067 /** 068 * @see org.kuali.kfs.module.endow.document.service.TransactionArchiveService#getTransactionArchivesByDocumentTypeName(String) 069 */ 070 public Collection<TransactionArchive> getTransactionArchivesByDocumentTypeName(String typeCode) { 071 Collection<TransactionArchive> transactionArchives = new ArrayList(); 072 073 if (StringUtils.isNotBlank(typeCode)) { 074 Map<String, String> criteria = new HashMap<String, String>(); 075 076 if (SpringContext.getBean(DataDictionaryService.class).getAttributeForceUppercase(TransactionArchive.class, EndowPropertyConstants.TRANSACTION_ARCHIVE_TYPE_CODE)) { 077 typeCode = typeCode.toUpperCase(); 078 } 079 080 criteria.put(EndowPropertyConstants.TRANSACTION_ARCHIVE_TYPE_CODE, typeCode); 081 transactionArchives = businessObjectService.findMatching(TransactionArchive.class, criteria); 082 } 083 084 return transactionArchives; 085 } 086 087 /** 088 * @see org.kuali.kfs.module.endow.document.service.TransactionArchiveService#getTransactionArchivesByETranCode(String) 089 */ 090 public Collection<TransactionArchive> getTransactionArchivesByETranCode(String etranCode) { 091 Collection<TransactionArchive> transactionArchives = new ArrayList(); 092 093 if (StringUtils.isNotBlank(etranCode)) { 094 Map<String, String> criteria = new HashMap<String, String>(); 095 096 if (SpringContext.getBean(DataDictionaryService.class).getAttributeForceUppercase(TransactionArchive.class, EndowPropertyConstants.TRANSACTION_ARCHIVE_ETRAN_CODE)) { 097 etranCode = etranCode.toUpperCase(); 098 } 099 100 criteria.put(EndowPropertyConstants.TRANSACTION_ARCHIVE_ETRAN_CODE, etranCode); 101 transactionArchives = businessObjectService.findMatching(TransactionArchive.class, criteria); 102 } 103 104 return transactionArchives; 105 } 106 107 /** 108 * @see org.kuali.kfs.module.endow.document.service.TransactionArchiveService#getTransactionArchivesByDocumentTypeNameAndETranCode(String, String) 109 */ 110 public Collection<TransactionArchive> getTransactionArchivesByDocumentTypeNameAndETranCode(String typeCode, String etranCode) { 111 Collection<TransactionArchive> transactionArchives = new ArrayList(); 112 113 if (StringUtils.isNotBlank(etranCode) && StringUtils.isNotBlank(typeCode)) { 114 Map<String, String> criteria = new HashMap<String, String>(); 115 116 if (SpringContext.getBean(DataDictionaryService.class).getAttributeForceUppercase(TransactionArchive.class, EndowPropertyConstants.TRANSACTION_ARCHIVE_TYPE_CODE)) { 117 typeCode = typeCode.toUpperCase(); 118 } 119 120 if (SpringContext.getBean(DataDictionaryService.class).getAttributeForceUppercase(TransactionArchive.class, EndowPropertyConstants.TRANSACTION_ARCHIVE_ETRAN_CODE)) { 121 etranCode = etranCode.toUpperCase(); 122 } 123 124 criteria.put(EndowPropertyConstants.TRANSACTION_ARCHIVE_TYPE_CODE, typeCode); 125 criteria.put(EndowPropertyConstants.TRANSACTION_ARCHIVE_ETRAN_CODE, etranCode); 126 127 transactionArchives = businessObjectService.findMatching(TransactionArchive.class, criteria); 128 } 129 130 return transactionArchives; 131 } 132 133 /** 134 * @see org.kuali.kfs.module.endow.document.service.TransactionArchiveService#getTransactionArchivesByIncomeOrPrincipalIndicator(String) 135 */ 136 public Collection<TransactionArchive> getTransactionArchivesByIncomeOrPrincipalIndicator(String incomeOrPrincipalIndicator) { 137 Collection<TransactionArchive> transactionArchives = new ArrayList(); 138 139 if (StringUtils.isNotBlank(incomeOrPrincipalIndicator)) { 140 Map<String, String> criteria = new HashMap<String, String>(); 141 142 if (SpringContext.getBean(DataDictionaryService.class).getAttributeForceUppercase(TransactionArchive.class, EndowPropertyConstants.TRANSACTION_ARCHIVE_INCOME_PRINCIPAL_INDICATOR)) { 143 incomeOrPrincipalIndicator = incomeOrPrincipalIndicator.toUpperCase(); 144 } 145 146 criteria.put(EndowPropertyConstants.TRANSACTION_ARCHIVE_INCOME_PRINCIPAL_INDICATOR, incomeOrPrincipalIndicator); 147 148 transactionArchives = businessObjectService.findMatching(TransactionArchive.class, criteria); 149 } 150 151 return transactionArchives; 152 } 153 154 /** 155 * @see org.kuali.kfs.module.endow.document.service.TransactionArchiveService#getAllTransactionArchives(String, String, String) 156 */ 157 public Collection<TransactionArchive> getAllTransactionArchives(String typeCode, String etranCode) { 158 Collection<TransactionArchive> transactionArchives = new ArrayList(); 159 160 transactionArchives = getTransactionArchivesByDocumentTypeNameAndETranCode(typeCode, etranCode); 161 162 return transactionArchives; 163 } 164 165 /** 166 * This method gets the businessObjectService. 167 * 168 * @return businessObjectService 169 */ 170 public BusinessObjectService getBusinessObjectService() { 171 return businessObjectService; 172 } 173 174 /** 175 * This method sets the businessObjectService 176 * 177 * @param businessObjectService 178 */ 179 public void setBusinessObjectService(BusinessObjectService businessObjectService) { 180 this.businessObjectService = businessObjectService; 181 } 182 }