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.fp.service;
017
018 import java.util.List;
019
020 /**
021 *
022 * This interface defines methods that a FiscalYearFunctionControl Service must provide.
023 *
024 */
025 public interface FiscalYearFunctionControlService {
026
027 /**
028 * Retrieves list of fiscal years that the BudgetAdjustment is allowed in.
029 *
030 * @return A list of fiscal years that the current user is authorized to perform a budget adjustment against.
031 */
032 public List getBudgetAdjustmentAllowedYears();
033
034 /**
035 * Checks the fiscal year against the control tables to see if BudgetAdjustment to base amount is allowed.
036 *
037 * @param Posting year that the base amount is being changed for.
038 * @return True if the current user is authorized to edit the base amount, false otherwise.
039 */
040 public boolean isBaseAmountChangeAllowed(Integer postingYear);
041
042 /**
043 *
044 * returns a list of years for which budget construction is visible in the application
045 * @return list of type integer
046 */
047 public List<Integer> getActiveBudgetYear();
048
049 /**
050 *
051 * checks the fiscal year against the control table to see if a user can force a refresh of human resources data for
052 * selected organizations in the budget construction security tree from the application
053 * @param universityFiscalYear
054 * @return true if selected human resources updates are allowed.
055 */
056 public boolean isApplicationUpdateFromHumanResourcesAllowed(Integer universityFiscalYear);
057
058 /**
059 *
060 * checks the fiscal year against the control table to see if the batch process will do a global update (ALL changes found)
061 * of the human-resource derived data in budget construction
062 * @param universityFiscalYear
063 * @return true if the batch processes will feed human resource data changes into budget construction
064 */
065 public boolean isBatchUpdateFromHumanResourcesAllowed(Integer universityFiscalYear);
066
067 /**
068 *
069 * checks the fiscal year against the control table to see if the batch process will update base salaries in the budget
070 * using the CalculatedSalaryFoundation data derived from payroll
071 * @param universityFiscalYear
072 * @return true if base salaries will be changed
073 */
074 public boolean isBatchUpdateFromPayrollAllowed (Integer universityFiscalYear);
075
076 /**
077 *
078 * checks the fiscal year against the control table to see if users can view budget construction data in the application
079 * @param universityFiscalYear
080 * @return true if the budget construction data is viewable in general (in other words, security may still freeze some viewers
081 * out even though everyone is not excluded)
082 */
083 public boolean isBudgetConstructionActive(Integer universityFiscalYear);
084
085 /**
086 *
087 * checks the fiscal year against the control table to see if the general ledger in budget construction should reflect
088 * current base budget amounts in the accounting general ledger for the fiscal year
089 * @param universityFiscalYear
090 * @return true if updates are allowed
091 */
092 public boolean isBudgetGeneralLedgerUpdateAllowed(Integer universityFiscalYear);
093
094 /**
095 *
096 * checks the fiscal year against the control table to see if users can make edits to budget construction for the given year
097 * (some users may still be frozen out because of the security mechanism)
098 * @param universityFiscalYear
099 * @return true if authorized users can update budget construction using the application
100 */
101 public boolean isBudgetUpdateAllowed(Integer universityFiscalYear);
102 }