001/*
002 * Copyright 2006 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 */
016package org.kuali.ole.fp.service;
017
018import java.util.List;
019
020/**
021 * 
022 * This interface defines methods that a FiscalYearFunctionControl Service must provide.
023 * 
024 */
025public 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}