/* * 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.module.bc.document.service; /** * This class defines methods that a Benefits Calculation Service must provide The Benefits Calculation Service supports * functionality related to calculating benefits request amounts for a Budget Construction Document (account/sub-account). This * includes calculations for annual and monthly amounts. Monthly amounts are only calculated when associated monthly request amounts * exist. */ public interface BenefitsCalculationService { /** * This method returns the disabled setting of the System Parameter controlling Budget module Benefits Calculation. Disabling * Benefits Calculation will cause any UI controls related to the Benefits Calculation functionality to not be displayed. * Disabling will also cause associated business rules checks to behave differently or not be run. * * @return */ public boolean isBenefitsCalculationDisabled(); /** * no rate category used in calc * calculates the annual benefits for the budget construction general ledger key passed in, and stores them in the database * @param documentNumber the string containing the document number * @param fiscalYear the integer value of the fiscal year * @param chartOfAccounts the string containing the chart of accounts * @param accountNumber the string containing the account number * @param subAccountNumber the string containing the sub account number */ public void calculateAnnualBudgetConstructionGeneralLedgerBenefits(String documentNumber, Integer fiscalYear, String chartOfAccounts, String accountNumber, String subAccountNumber); /** * no rate category used in calc * calculates the monthly budget benefits for the budget construction general ledger key passed in, and stores them in the database * @param documentNumber the string containing the document number * @param fiscalYear the integer value of the fiscal year * @param chartOfAccounts the string containing the chart of accounts * @param accountNumber the string containing the account number * @param subAccountNumber the string containing the sub account number * */ public void calculateMonthlyBudgetConstructionGeneralLedgerBenefits(String documentNumber, Integer fiscalYear, String chartOfAccounts, String accountNumber, String subAccountNumber); /** * no rate category used in calc * calculates both the monthly budget and the annual budget budget construction general ledger benefits for the key passed in, and * stores them in the database. * @param documentNumber the string containing the document number * @param fiscalYear the integer value of the fiscal year * @param chartOfAccounts the string containing the chart of accounts * @param accountNumber the string containing the account number * @param subAccountNumber */ public void calculateAllBudgetConstructionGeneralLedgerBenefits(String documentNumber, Integer fiscalYear, String chartOfAccounts, String accountNumber, String subAccountNumber); /** * rate category used in calc * calculates the annual benefits for the budget construction general ledger key passed in, and stores them in the database * @param documentNumber the string containing the document number * @param fiscalYear the integer value of the fiscal year * @param chartOfAccounts the string containing the chart of accounts * @param accountNumber the string containing the account number * @param subAccountNumber the string containing the sub account number * @param laborBenefitRateCategoryCode the string containing the labor benefit rate category code */ public void calculateAnnualBudgetConstructionGeneralLedgerBenefits(String documentNumber, Integer universityFiscalYear, String chartOfAccountsCode, String accountNumber, String subAccountNumber, String laborBenefitRateCategoryCode); /** * rate category used in calc * calculates the monthly budget benefits for the budget construction general ledger key passed in, and stores them in the database * @param documentNumber the string containing the document number * @param fiscalYear the integer value of the fiscal year * @param chartOfAccounts the string containing the chart of accounts * @param accountNumber the string containing the account number * @param subAccountNumber the string containing the sub account number * @param laborBenefitRateCategoryCode the string containing the labor benefit rate category code * */ public void calculateMonthlyBudgetConstructionGeneralLedgerBenefits(String documentNumber, Integer fiscalYear, String chartOfAccounts, String accountNumber, String subAccountNumber, String laborBenefitRateCategoryCode); /** * rate category used in calc * calculates both the monthly budget and the annual budget budget construction general ledger benefits for the key passed in, and * stores them in the database. * @param documentNumber the string containing the document number * @param fiscalYear the integer value of the fiscal year * @param chartOfAccounts the string containing the chart of accounts * @param accountNumber the string containing the account number * @param subAccountNumber * @param laborBenefitRateCategoryCode the string containing the labor benefit rate category code */ public void calculateAllBudgetConstructionGeneralLedgerBenefits(String documentNumber, Integer fiscalYear, String chartOfAccounts, String accountNumber, String subAccountNumber, String laborBenefitRateCategoryCode); }