1 /* 2 * The Kuali Financial System, a comprehensive financial management system for higher education. 3 * 4 * Copyright 2005-2014 The Kuali Foundation 5 * 6 * This program is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU Affero General Public License as 8 * published by the Free Software Foundation, either version 3 of the 9 * License, or (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU Affero General Public License for more details. 15 * 16 * You should have received a copy of the GNU Affero General Public License 17 * along with this program. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 package org.kuali.kfs.fp.service; 20 21 import java.util.List; 22 23 /** 24 * 25 * This interface defines methods that a FiscalYearFunctionControl Service must provide. 26 * 27 */ 28 public interface FiscalYearFunctionControlService { 29 30 /** 31 * Retrieves list of fiscal years that the BudgetAdjustment is allowed in. 32 * 33 * @return A list of fiscal years that the current user is authorized to perform a budget adjustment against. 34 */ 35 public List getBudgetAdjustmentAllowedYears(); 36 37 /** 38 * Checks the fiscal year against the control tables to see if BudgetAdjustment to base amount is allowed. 39 * 40 * @param Posting year that the base amount is being changed for. 41 * @return True if the current user is authorized to edit the base amount, false otherwise. 42 */ 43 public boolean isBaseAmountChangeAllowed(Integer postingYear); 44 45 /** 46 * 47 * returns a list of years for which budget construction is visible in the application 48 * @return list of type integer 49 */ 50 public List<Integer> getActiveBudgetYear(); 51 52 /** 53 * 54 * checks the fiscal year against the control table to see if a user can force a refresh of human resources data for 55 * selected organizations in the budget construction security tree from the application 56 * @param universityFiscalYear 57 * @return true if selected human resources updates are allowed. 58 */ 59 public boolean isApplicationUpdateFromHumanResourcesAllowed(Integer universityFiscalYear); 60 61 /** 62 * 63 * checks the fiscal year against the control table to see if the batch process will do a global update (ALL changes found) 64 * of the human-resource derived data in budget construction 65 * @param universityFiscalYear 66 * @return true if the batch processes will feed human resource data changes into budget construction 67 */ 68 public boolean isBatchUpdateFromHumanResourcesAllowed(Integer universityFiscalYear); 69 70 /** 71 * 72 * checks the fiscal year against the control table to see if the batch process will update base salaries in the budget 73 * using the CalculatedSalaryFoundation data derived from payroll 74 * @param universityFiscalYear 75 * @return true if base salaries will be changed 76 */ 77 public boolean isBatchUpdateFromPayrollAllowed (Integer universityFiscalYear); 78 79 /** 80 * 81 * checks the fiscal year against the control table to see if users can view budget construction data in the application 82 * @param universityFiscalYear 83 * @return true if the budget construction data is viewable in general (in other words, security may still freeze some viewers 84 * out even though everyone is not excluded) 85 */ 86 public boolean isBudgetConstructionActive(Integer universityFiscalYear); 87 88 /** 89 * 90 * checks the fiscal year against the control table to see if the general ledger in budget construction should reflect 91 * current base budget amounts in the accounting general ledger for the fiscal year 92 * @param universityFiscalYear 93 * @return true if updates are allowed 94 */ 95 public boolean isBudgetGeneralLedgerUpdateAllowed(Integer universityFiscalYear); 96 97 /** 98 * 99 * checks the fiscal year against the control table to see if users can make edits to budget construction for the given year 100 * (some users may still be frozen out because of the security mechanism) 101 * @param universityFiscalYear 102 * @return true if authorized users can update budget construction using the application 103 */ 104 public boolean isBudgetUpdateAllowed(Integer universityFiscalYear); 105 }