/*
* The Kuali Financial System, a comprehensive financial management system for higher education.
*
* Copyright 2005-2014 The Kuali Foundation
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.kuali.kfs.fp.service;
import java.util.List;
/**
*
* This interface defines methods that a FiscalYearFunctionControl Service must provide.
*
*/
public interface FiscalYearFunctionControlService {
/**
* Retrieves list of fiscal years that the BudgetAdjustment is allowed in.
*
* @return A list of fiscal years that the current user is authorized to perform a budget adjustment against.
*/
public List getBudgetAdjustmentAllowedYears();
/**
* Checks the fiscal year against the control tables to see if BudgetAdjustment to base amount is allowed.
*
* @param Posting year that the base amount is being changed for.
* @return True if the current user is authorized to edit the base amount, false otherwise.
*/
public boolean isBaseAmountChangeAllowed(Integer postingYear);
/**
*
* returns a list of years for which budget construction is visible in the application
* @return list of type integer
*/
public List<Integer> getActiveBudgetYear();
/**
*
* checks the fiscal year against the control table to see if a user can force a refresh of human resources data for
* selected organizations in the budget construction security tree from the application
* @param universityFiscalYear
* @return true if selected human resources updates are allowed.
*/
public boolean isApplicationUpdateFromHumanResourcesAllowed(Integer universityFiscalYear);
/**
*
* checks the fiscal year against the control table to see if the batch process will do a global update (ALL changes found)
* of the human-resource derived data in budget construction
* @param universityFiscalYear
* @return true if the batch processes will feed human resource data changes into budget construction
*/
public boolean isBatchUpdateFromHumanResourcesAllowed(Integer universityFiscalYear);
/**
*
* checks the fiscal year against the control table to see if the batch process will update base salaries in the budget
* using the CalculatedSalaryFoundation data derived from payroll
* @param universityFiscalYear
* @return true if base salaries will be changed
*/
public boolean isBatchUpdateFromPayrollAllowed (Integer universityFiscalYear);
/**
*
* checks the fiscal year against the control table to see if users can view budget construction data in the application
* @param universityFiscalYear
* @return true if the budget construction data is viewable in general (in other words, security may still freeze some viewers
* out even though everyone is not excluded)
*/
public boolean isBudgetConstructionActive(Integer universityFiscalYear);
/**
*
* checks the fiscal year against the control table to see if the general ledger in budget construction should reflect
* current base budget amounts in the accounting general ledger for the fiscal year
* @param universityFiscalYear
* @return true if updates are allowed
*/
public boolean isBudgetGeneralLedgerUpdateAllowed(Integer universityFiscalYear);
/**
*
* checks the fiscal year against the control table to see if users can make edits to budget construction for the given year
* (some users may still be frozen out because of the security mechanism)
* @param universityFiscalYear
* @return true if authorized users can update budget construction using the application
*/
public boolean isBudgetUpdateAllowed(Integer universityFiscalYear);
}