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.report.service;
017    
018    import java.util.List;
019    
020    import org.kuali.kfs.module.endow.report.util.KemidsWithMultipleBenefittingOrganizationsDataHolder;
021    import org.kuali.kfs.module.endow.report.util.EndowmentReportHeaderDataHolder;
022    import org.kuali.kfs.module.endow.report.util.TrialBalanceReportDataHolder;
023    
024    public interface EndowmentReportService {
025        
026        /**
027         * Gets the institution name, using the KFS parameter
028         * See 8 Report Design in the specs
029         * 
030         * @return
031         */
032        public String getInstitutionName();
033        
034        /**
035         * Gets the report name "Trial Balance"
036         * 
037         * @return
038         */
039        public String getReportRequestor();
040        
041        /**
042         * Gets the campus names of selected campuses 
043         * 
044         * @param campuses
045         * @return
046         */
047        public String getBenefittingCampuses(List<String> campuses);
048        
049        /**
050         * Gets the chart names of selected charts
051         * 
052         * @param charts
053         * @return
054         */
055        public String getBenefittingCharts(List<String> charts);
056        
057        /**
058         * Gets the organization names of selected organizations
059         * 
060         * @param organizations
061         * @return
062         */
063        public String getBenefittingOrganizations(List<String> organizations);
064        
065        /**
066         * Gets the selected type codes   
067         * 
068         * @param typeCodes
069         * @return
070         */
071        public String getKemidTypeCodes(List<String> typeCodes);
072        
073        /**
074         * Gets the selected purpose codes
075         * 
076         * @param purposes
077         * @return
078         */
079        public String getKemidPurposeCodes(List<String> purposes);
080        
081        /**
082         * Gets the selected group codes
083         * 
084         * @param groupCodes
085         * @return
086         */
087        public String getCombineGroupCodes(List<String> groupCodes);
088        
089        /**
090         * Gets the KEMIDs with multiple benefitting organizations
091         * 
092         * @param kemids
093         * @return
094         */
095        public List<KemidsWithMultipleBenefittingOrganizationsDataHolder> getKemidsWithMultipleBenefittingOrganizations(List<String> kemids);
096        
097        /**
098         * Creates the report header data
099         * 
100         * @param kemidsSelected
101         * @param reportName
102         * @param endowmnetOption
103         * @param benefittingOrganziationCampuses
104         * @param benefittingOrganziationCharts
105         * @param benefittingOrganziations
106         * @param typeCodes
107         * @param purposeCodes
108         * @param combineGroupCodes
109         * @return
110         */
111        public EndowmentReportHeaderDataHolder createReportHeaderSheetData(
112                List<String> kemidsSelected,             
113                List<String> benefittingOrganziationCampuses,
114                List<String> benefittingOrganziationCharts,
115                List<String> benefittingOrganziations,
116                List<String> typeCodes,
117                List<String> purposeCodes,
118                List<String> combineGroupCodes,
119                String reportName, 
120                String endowmnetOption,
121                String reportOption);
122        
123        /**
124         * method to pickup all kemids from the list of kemids where for each kemid, if
125         * there is record in END_HIST_CSH_T table
126         * 
127         * @param kemids
128         * @param beginningDate
129         * @param endingDate
130         * @return List<String> newKemids
131         */
132        public List<String> getKemidsInHistoryCash(List<String> kemids, String beginningDate, String endingDate);
133    
134        /**
135         * method to pickup all kemids based on user selection of endowmentOption and closed indicator
136         * 
137         * @param kemids
138         * @param endowmentOption
139         * @param endingDate
140         * @return List<String> newKemids
141         */
142        public List<String> getKemidsBasedOnUserSelection(List<String> kemids, String endowmentOption, String closedIndicator);    
143    }