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 }