1 /*
2 * Copyright 2007 The Kuali Foundation
3 *
4 * Licensed under the Educational Community License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.opensource.org/licenses/ecl2.php
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 package org.kuali.ole.fp.document.dataaccess;
17
18 import java.util.List;
19
20 import org.kuali.ole.fp.businessobject.CashieringItemInProcess;
21 import org.kuali.ole.fp.businessobject.Check;
22 import org.kuali.ole.fp.businessobject.CoinDetail;
23 import org.kuali.ole.fp.businessobject.CurrencyDetail;
24
25 public interface CashManagementDao {
26
27 /**
28 * This method returns a list of open items in process for a given campus code
29 *
30 * @param campusCode the campus code to use to search open items in process for
31 * @return a list of open items in process
32 */
33 public List<CashieringItemInProcess> findOpenItemsInProcessByCampusCode(String campusCode);
34
35 /**
36 * This finds items in process associated with the given campus code closed within the past 30 days.
37 *
38 * @param campusCode the campus code that the found items in process should be associated with
39 * @return a list of CashieringItemInProcess records
40 */
41 public List<CashieringItemInProcess> findRecentlyClosedItemsInProcess(String campusCode);
42
43 /**
44 * Retrieves all currency detail records with the given document number, document type code, and cashiering record source
45 *
46 * @param documentNumber the document number this currency detail was associated with
47 * @param documentTypeCode the type code of that document
48 * @param cashieringStatus the cashiering status
49 * @return a list of currency details matching that criteria
50 */
51 public CurrencyDetail findCurrencyDetailByCashieringStatus(String documentNumber, String documentTypeCode, String cashieringStatus);
52
53 /**
54 * Retrieves all coin detail records with the given document number, document type code, and cashiering record source
55 *
56 * @param documentNumber the document the coin details were associated with
57 * @param documentTypeCode the type of that document
58 * @param cashieringStatus the cashiering status
59 * @return a list of coin details meeting those criteria
60 */
61 public CoinDetail findCoinDetailByCashieringStatus(String documentNumber, String documentTypeCode, String cashieringStatus);
62
63 /**
64 * Retrieves from the database any undeposited cashiering transaction checks associated with the given cash management document
65 *
66 * @param documentNumber the document number of a cash management document that cashiering transaction checks may be associated
67 * with
68 * @return a list of checks associated with the document
69 */
70 public List<Check> selectUndepositedCashieringChecks(String documentNumber);
71
72 /**
73 * Retrieves from the database all cashiering transaction checks deposited for a given deposit
74 *
75 * @param documentNumber the document number of a cash management document that cashiering transaction checks have been
76 * deposited for
77 * @param depositLineNumber the line number of the deposit to find checks deposited for
78 * @return a list of checks associated with the given deposit
79 */
80 public List<Check> selectCashieringChecksForDeposit(String documentNumber, Integer depositLineNumber);
81
82 /**
83 * Retrieves all deposited cashiering checks from the database
84 *
85 * @param documentNumber the document to get checks associated with
86 * @return a list of deposited checks
87 */
88 public List<Check> selectDepositedCashieringChecks(String documentNumber);
89
90 /**
91 * This method retrieves all currency details associated with a cash management document
92 *
93 * @param documentNumber the document number of the cash management document to get currency details for
94 * @return a list of currency details
95 */
96 public List<CurrencyDetail> getAllCurrencyDetails(String documentNumber);
97
98 /**
99 * This method gets all coin details for a particular document number, irregardless of cashiering record source
100 *
101 * @param documentNumber the document number to find cash details for
102 * @return hopefully, a bunch of coin details
103 */
104 public List<CoinDetail> getAllCoinDetails(String documentNumber);
105
106 /**
107 * Select the next available check line number for the given cash management document
108 *
109 * @param documentNumber the document number of a cash management document
110 * @return the next available check line number for cashiering checks
111 */
112 public Integer selectNextAvailableCheckLineNumber(String documentNumber);
113 }