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.pdp.dataaccess;
017    
018    import java.util.Iterator;
019    import java.util.List;
020    
021    import org.kuali.kfs.pdp.businessobject.DailyReport;
022    import org.kuali.kfs.pdp.businessobject.DisbursementNumberRange;
023    import org.kuali.kfs.pdp.businessobject.PaymentDetail;
024    
025    public interface PaymentDetailDao {
026        public PaymentDetail getDetailForEpic(String custPaymentDocNbr, String fdocTypeCode);
027    
028        /**
029         * Retrieves list of <code>DisbursementNumberRange</code> records for the given processing campus which are active and have
030         * range start date before or equal to the current date.
031         * 
032         * @param campus processing campus to retrieve ranges for
033         * @return List of <code>DisbursementNumberRange</code> records found
034         */
035        public List<DisbursementNumberRange> getDisbursementNumberRanges(String campus);
036    
037        /**
038         * This returns the data required for the daily report
039         * 
040         * @return
041         */
042        public List<DailyReport> getDailyReportData();
043    
044        /**
045         * This will return an iterator of all the cancelled payment details that haven't already been processed
046         * 
047         * @param organization
048         * @param subUnit
049         * @return
050         */
051        public Iterator getUnprocessedCancelledDetails(String organization, List<String> subUnits);
052    
053        /**
054         * This will return all the ACH payments that need an email sent
055         * 
056         * @return
057         */
058        public Iterator getAchPaymentsWithUnsentEmail();
059    
060        /**
061         * This will return an iterator of all the paid payment details that haven't already been processed
062         * 
063         * @param organization
064         * @param subUnit
065         * @return
066         */
067        public Iterator getUnprocessedPaidDetails(String organization, List<String> subUnits);
068    }