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.bc.document.service; 017 018 import java.io.ByteArrayOutputStream; 019 import java.util.Collection; 020 import java.util.List; 021 import java.util.Map; 022 023 import org.kuali.kfs.coa.businessobject.ObjectCode; 024 import org.kuali.kfs.module.bc.businessobject.BudgetConstructionAdministrativePost; 025 import org.kuali.kfs.module.bc.businessobject.BudgetConstructionIntendedIncumbent; 026 import org.kuali.kfs.module.bc.businessobject.BudgetConstructionObjectDump; 027 import org.kuali.kfs.module.bc.businessobject.BudgetConstructionPosition; 028 import org.kuali.kfs.module.bc.businessobject.BudgetConstructionSalaryFunding; 029 import org.kuali.kfs.module.bc.businessobject.BudgetConstructionSalarySocialSecurityNumber; 030 import org.kuali.kfs.module.bc.businessobject.PendingBudgetConstructionAppointmentFunding; 031 032 import com.lowagie.text.DocumentException; 033 034 035 /** 036 * defines methods that help build report data in Budget Construction 037 */ 038 public interface BudgetConstructionReportsServiceHelper { 039 040 /** 041 * generates the data for an object representing the report data from temporary storage for a specific user 042 * 043 * @param clazz 044 * @param principalName 045 * @param orderList 046 * @return 047 */ 048 public Collection getDataForBuildingReports(Class clazz, String principalName, List<String> orderList); 049 050 /** 051 * generates the data for an object representing the report data 052 * 053 * @param clazz 054 * @param searchCriteria 055 * @param orderList 056 * @return 057 */ 058 public Collection getDataForBuildingReports(Class clazz, Map searchCriteria, List<String> orderList); 059 060 /** 061 * generates PFD file containing the errorMessages passed in 062 * 063 * @param errorMessages 064 * @param baos 065 * @throws DocumentException 066 */ 067 public void generatePdf(List<String> errorMessages, ByteArrayOutputStream baos) throws DocumentException; 068 069 /** 070 * get an object code 071 * 072 * @param universityFiscalYear 073 * @param chartOfAccountsCode 074 * @param financialObjectCode 075 * @return 076 */ 077 public ObjectCode getObjectCode(Integer universityFiscalYear, String chartOfAccountsCode, String financialObjectCode); 078 079 /** 080 * get the selected object codes from the list displayed to the user 081 * 082 * @param principalName 083 * @return 084 */ 085 public String getSelectedObjectCodes(String principalName); 086 087 /** 088 * get the selected reason codes from the list displayed to the user 089 * 090 * @param principalName 091 * @return 092 */ 093 public String getSelectedReasonCodes(String principalName); 094 095 /** 096 * get a budget construction administrative post 097 * 098 * @param appointmentFundingEntry 099 * @return 100 */ 101 public BudgetConstructionAdministrativePost getBudgetConstructionAdministrativePost(PendingBudgetConstructionAppointmentFunding appointmentFundingEntry); 102 103 /** 104 * get a budget construction position for an appointment funding 105 * 106 * @param universityFiscalYear 107 * @param appointmentFundingEntry 108 * @return 109 */ 110 public BudgetConstructionPosition getBudgetConstructionPosition(Integer universityFiscalYear, PendingBudgetConstructionAppointmentFunding appointmentFundingEntry); 111 112 /** 113 * get a budget construction intended incumbent for an appointment funding 114 * 115 * @param appointmentFundingEntry 116 * @return 117 */ 118 public BudgetConstructionIntendedIncumbent getBudgetConstructionIntendedIncumbent(PendingBudgetConstructionAppointmentFunding appointmentFundingEntry); 119 120 /** 121 * gets the budget construction appointment fundings for an object dump 122 * 123 * @param universityFiscalYear 124 * @param budgetConstructionObjectDump 125 * @return 126 */ 127 public Collection<PendingBudgetConstructionAppointmentFunding> getPendingBudgetConstructionAppointmentFundingList(Integer universityFiscalYear, BudgetConstructionObjectDump budgetConstructionObjectDump); 128 129 /** 130 * gets a budget construction salary ssn for salary funding 131 * 132 * @param principalName 133 * @param salaryFunding 134 * @return 135 */ 136 public BudgetConstructionSalarySocialSecurityNumber getBudgetConstructionSalarySocialSecurityNumber(String principalName, BudgetConstructionSalaryFunding salaryFunding); 137 138 /** 139 * gets salary funding from temporary storage for a specific user 140 * 141 * @param principalName 142 * @param emplid 143 * @return 144 */ 145 public Collection<BudgetConstructionSalaryFunding> getSalaryFunding(String principalName, String emplid); 146 }