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.batch.dataaccess;
017    
018    import java.util.Collection;
019    
020    import org.kuali.kfs.module.endow.businessobject.GlInterfaceBatchProcessKemLine;
021    
022    /**
023     * An interface to methods needed to join transaction related tables to create records
024     */
025    public interface GLInterfaceBatchProcessDao {
026    
027        /**
028         * method to find distinct document types from table END_TRAN_ARCHV_T.
029         * 
030         * @return List<Map<String, String>>
031         */
032        public Collection<String> findDocumentTypes();
033        
034        /**
035         * method to gather all the kem transactions as collection of records
036         * First all the document types are retrieved then for each document type,
037         * all cash activity records are collected and then all non-cash activity records are gathered.
038         * @param postedDate
039         * @return Collection<GlInterfaceBatchProcessKemLine>
040         */
041        public Collection<GlInterfaceBatchProcessKemLine> getAllKemTransactions(java.util.Date postedDate);
042    
043        /**
044         * method to gather all the kem transactions as collection of records
045         * First all the document types are retrieved then for each document type,
046         * all cash activity records are collected.  The single records are then grouped 
047         * based on chart, account number and object codes.
048         * The same process is done for non-cash activity records.
049         * @param postedDate
050         * @return Collection<GlInterfaceBatchProcessKemLine>
051         */
052        public Collection<GlInterfaceBatchProcessKemLine> getAllCombinedKemTransactions(java.util.Date postedDate);
053    
054        /**
055         * method to gather all the kem transactions as collection of records
056         * First all cash activity records are collected for the given document type, 
057         * The single records are then grouped based on chart, account number and object codes.
058         * The same process is done for non-cash activity records.
059         * @param documentType, postedDate
060         * @return Collection<GlInterfaceBatchProcessKemLine>
061         */
062        public Collection<GlInterfaceBatchProcessKemLine> getAllKemTransactionsByDocumentType(String documentType, java.util.Date postedDate);
063    
064        /**
065         * method to gather all the kem transactions as collection of records.
066         * First all cash activity records are collected for the given document type and then these 
067         * records are grouped based on chart, account number and object codes.
068         * The same process is done for non-cash activity records.
069         * @param documentType, postedDate
070         * @return Collection<GlInterfaceBatchProcessKemLine>
071         */
072        public Collection<GlInterfaceBatchProcessKemLine> getAllKemCombinedTransactionsByDocumentType(String documentType, java.util.Date postedDate);
073    }