View Javadoc
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 }