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.dataaccess;
017
018 import java.math.BigDecimal;
019 import java.sql.Date;
020 import java.util.Collection;
021 import java.util.HashMap;
022 import java.util.List;
023
024 import org.kuali.kfs.module.endow.businessobject.FeeMethod;
025 import org.kuali.kfs.module.endow.businessobject.TransactionArchive;
026
027 public interface TransactionArchiveDao {
028
029 /**
030 * Gets a collection of records from END_TRAN_ARCHV_T table. The data is sorted by
031 * DOC_TYP_NM, TRAN_SUB_TYP_CD, TRAN_IP_IND_CD, TRAN_KEMID, TRAN_ETRAN_CD
032 * @param postedDate
033 * @return transactionArchives
034 */
035 public Collection<TransactionArchive> getAllTransactionArchives(java.util.Date postedDate);
036
037 /**
038 * Gets a collection of records from END_TRAN_ARCHV_T table
039 * @return transactionArchives
040 */
041 public Collection<TransactionArchive> getAllTransactionArchives();
042
043 /**
044 * Gets a transactionArchive by primary keys.
045 *
046 * @param documentNumber, lineNumber, lineTypeCode
047 * @return a transactionArchive
048 */
049 public TransactionArchive getByPrimaryKey(String documentNumber, int lineNumber, String lineTypeCode);
050
051 /**
052 * Gets a count of total number of records from END_TRAN_ARCHV_T table for a given DOC_TYP_NM
053 * @param feeMethod feeMethod object
054 * @return count of transactionArhives matching the criteria
055 */
056 public long getTransactionArchivesCountForTransactions(FeeMethod feeMethod);
057
058 /**
059 * Gets a count of total number of records from END_TRAN_ARCHV_T table for a given DOC_TYP_NM
060 * @param feeMethodCode, transactionPostedDate
061 * @return count of transactionArhives matching the passed in parameters
062 */
063 public long getTransactionArchivesCountByDocumentTypeName(String feeMethodCode, Date transactionPostedDate);
064
065 /**
066 * Gets a count of total number of records from END_TRAN_ARCHV_T table for a given DOC_TYP_NM
067 * @param feeMethodCode, transactionPostedDate
068 * @return count of transactionArhives matching the passed in parameters
069 */
070 public long getTransactionArchivesCountByETranCode(String feeMethodCode, Date transactionPostedDate);
071
072 /**
073 * Gets a count of total number of records from END_TRAN_ARCHV_T table for a given DOC_TYP_NM and TRAN_ETRAN_CD
074 * @param feeMethodCode, transactionPostedDate
075 * @return count of transactionArhives matching the passed in parameters
076 */
077 public long getTransactionArchivesCountByDocumentTypeNameAndETranCode(String feeMethodCode, Date transactionPostedDate);
078
079 /**
080 * Gets a count of total number of records from END_TRAN_ARCHV_T table for a given TRAN_IP_IND_CD
081 * @param IncomeOrPrincipalIndicator
082 * @return count of transactionArhives matching the passed in parameter
083 */
084 public long getTransactionArchivesCountByIncomeOrPrincipal(String IncomeOrPrincipalIndicator);
085
086 /**
087 * Gets a count of total number of records from END_TRAN_ARCHV_T table
088 * @param feeMethod
089 * @return count of transactionArhives based on the conditions in feeMethod object
090 */
091 public long getTransactionArchivesCountByBothIncomeAndPrincipal(FeeMethod feeMethod);
092
093 /**
094 * Gets principal income amount from the selected records from END_TRAN_ARCHV_T table
095 * @param feeMethod feeMethod object
096 * @return incomeCashAmount of transactionArhives matching the criteria
097 */
098 public BigDecimal getTransactionArchivesIncomeCashAmountForTransactions(FeeMethod feeMethod);
099
100 /**
101 * Gets principal cash amount from the selected records from END_TRAN_ARCHV_T table
102 * @param feeMethod feeMethod object
103 * @return incomeCashAmount of transactionArhives matching the criteria
104 */
105 public BigDecimal getTransactionArchivesPrincipalCashAmountForTransactions(FeeMethod feeMethod);
106
107 /**
108 * Gets Income and principal cash amount from the selected records from END_TRAN_ARCHV_T table
109 * @param feeMethod feeMethod object
110 * @return Map with both income and principal cash amount of records matching the criteria
111 */
112 public HashMap<String, BigDecimal> getTransactionArchivesIncomeAndPrincipalCashAmountForTransactions(FeeMethod feeMethod);
113
114 /**
115 * Gets total cash activity by adding income cash and principal cash amount from the selected records from END_TRAN_ARCHV_T table
116 * @param kemid, securityId
117 * @return totalCashActivity
118 */
119 public BigDecimal getTransactionArchivesTotalCashActivity(String kemid, String securityId);
120
121 /**
122 * Gets a collection of TransactionArchive by kemids and posted dates
123 *
124 * @param kemids
125 * @param endowmentOption
126 * @param beginningDate
127 * @param endingDate
128 * @return
129 */
130 public List<TransactionArchive> getTransactionArchiveByKemidsAndPostedDate(String kemid, String endowmentOption, java.util.Date beginningDate, java.util.Date endingDate, String closedIndicator, String transactionSubType);
131
132 /**
133 * Gets a collection of TransactionArchive by kemid and beginning and ending dates
134 *
135 * @param kemids
136 * @param beginningDate
137 * @param endingDate
138 * @return List<TransactionArchive>
139 */
140 public List<TransactionArchive> getTransactionArchivesByKemid(String kemid, java.util.Date beginningDate, java.util.Date endingDate);
141
142 }