001: /*
002: * Copyright 2007 The Kuali Foundation.
003: *
004: * Licensed under the Educational Community License, Version 1.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/ecl1.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.module.financial.dao;
017:
018: import java.util.List;
019:
020: import org.kuali.module.financial.bo.CashieringItemInProcess;
021: import org.kuali.module.financial.bo.Check;
022: import org.kuali.module.financial.bo.CoinDetail;
023: import org.kuali.module.financial.bo.CurrencyDetail;
024:
025: public interface CashManagementDao {
026:
027: /**
028: * This method returns a list of open items in process for a given workgroup
029: *
030: * @param wrkgrpName the workgroup name to use to search open items in process for
031: * @return a list of open items in process
032: */
033: public List<CashieringItemInProcess> findOpenItemsInProcessByWorkgroupName(
034: String wrkgrpName);
035:
036: /**
037: * This finds items in process associated with the given workgroup closed within the past 30 days.
038: *
039: * @param workgroupName the workgroup name that the found items in process should be associated with
040: * @return a list of CashieringItemInProcess records
041: */
042: public List<CashieringItemInProcess> findRecentlyClosedItemsInProcess(
043: String workgroupName);
044:
045: /**
046: * Retrieves all currency detail records with the given document number, document type code, and cashiering record source
047: *
048: * @param documentNumber the document number this currency detail was associated with
049: * @param documentTypeCode the type code of that document
050: * @param cashieringRecordSource the cashiering record source
051: * @return a list of currency details matching that criteria
052: */
053: public CurrencyDetail findCurrencyDetailByCashieringRecordSource(
054: String documentNumber, String documentTypeCode,
055: String cashieringRecordSource);
056:
057: /**
058: * Retrieves all coin detail records with the given document number, document type code, and cashiering record source
059: *
060: * @param documentNumber the document the coin details were associated with
061: * @param documentTypeCode the type of that document
062: * @param cashieringRecordSource the cashiering record source
063: * @return a list of coin details meeting those criteria
064: */
065: public CoinDetail findCoinDetailByCashieringRecordSource(
066: String documentNumber, String documentTypeCode,
067: String cashieringRecordSource);
068:
069: /**
070: * Retrieves from the database any undeposited cashiering transaction checks associated with the given cash management document
071: *
072: * @param documentNumber the document number of a cash management document that cashiering transaction checks may be associated
073: * with
074: * @return a list of checks associated with the document
075: */
076: public List<Check> selectUndepositedCashieringChecks(
077: String documentNumber);
078:
079: /**
080: * Retrieves from the database all cashiering transaction checks deposited for a given deposit
081: *
082: * @param documentNumber the document number of a cash management document that cashiering transaction checks have been
083: * deposited for
084: * @param depositLineNumber the line number of the deposit to find checks deposited for
085: * @return a list of checks associated with the given deposit
086: */
087: public List<Check> selectCashieringChecksForDeposit(
088: String documentNumber, Integer depositLineNumber);
089:
090: /**
091: * Retrieves all deposited cashiering checks from the database
092: *
093: * @param documentNumber the document to get checks associated with
094: * @return a list of deposited checks
095: */
096: public List<Check> selectDepositedCashieringChecks(
097: String documentNumber);
098:
099: /**
100: * This method retrieves all currency details associated with a cash management document
101: *
102: * @param documentNumber the document number of the cash management document to get currency details for
103: * @return a list of currency details
104: */
105: public List<CurrencyDetail> getAllCurrencyDetails(
106: String documentNumber);
107:
108: /**
109: * This method gets all coin details for a particular document number, irregardless of cashiering record source
110: *
111: * @param documentNumber the document number to find cash details for
112: * @return hopefully, a bunch of coin details
113: */
114: public List<CoinDetail> getAllCoinDetails(String documentNumber);
115:
116: /**
117: * Select the next available check line number for the given cash management document
118: *
119: * @param documentNumber the document number of a cash management document
120: * @return the next available check line number for cashiering checks
121: */
122: public Integer selectNextAvailableCheckLineNumber(
123: String documentNumber);
124: }
|