001 /*
002 * Copyright 2011 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 */
016 package org.kuali.kfs.module.bc.document.service;
017
018 /**
019 * This class defines methods that a Benefits Calculation Service must provide The Benefits Calculation Service supports
020 * functionality related to calculating benefits request amounts for a Budget Construction Document (account/sub-account). This
021 * includes calculations for annual and monthly amounts. Monthly amounts are only calculated when associated monthly request amounts
022 * exist.
023 */
024 public interface BenefitsCalculationService {
025
026 /**
027 * This method returns the disabled setting of the System Parameter controlling Budget module Benefits Calculation. Disabling
028 * Benefits Calculation will cause any UI controls related to the Benefits Calculation functionality to not be displayed.
029 * Disabling will also cause associated business rules checks to behave differently or not be run.
030 *
031 * @return
032 */
033 public boolean isBenefitsCalculationDisabled();
034
035 /**
036 *
037 * calculates the annual benefits for the budget construction general ledger key passed in, and stores them in the database
038 * @param documentNumber the string containing the document number
039 * @param fiscalYear the integer value of the fiscal year
040 * @param chartOfAccounts the string containing the chart of accounts
041 * @param accountNumber the string containing the account number
042 * @param subAccountNumber the string containing the sub account number
043 */
044 public void calculateAnnualBudgetConstructionGeneralLedgerBenefits(String documentNumber,
045 Integer fiscalYear,
046 String chartOfAccounts,
047 String accountNumber,
048 String subAccountNumber);
049 /**
050 *
051 * calculates the monthly budget benefits for the budget construction general ledger key passed in, and stores them in the database
052 * @param documentNumber the string containing the document number
053 * @param fiscalYear the integer value of the fiscal year
054 * @param chartOfAccounts the string containing the chart of accounts
055 * @param accountNumber the string containing the account number
056 * @param subAccountNumber the string containing the sub account number
057 *
058 */
059 public void calculateMonthlyBudgetConstructionGeneralLedgerBenefits(String documentNumber,
060 Integer fiscalYear,
061 String chartOfAccounts,
062 String accountNumber,
063 String subAccountNumber);
064
065
066 /**
067 *
068 * calculates both the monthly budget and the annual budget budget construction general ledger benefits for the key passed in, and
069 * stores them in the database.
070 * @param documentNumber the string containing the document number
071 * @param fiscalYear the integer value of the fiscal year
072 * @param chartOfAccounts the string containing the chart of accounts
073 * @param accountNumber the string containing the account number
074 * @param subAccountNumber
075 */
076 public void calculateAllBudgetConstructionGeneralLedgerBenefits(String documentNumber,
077 Integer fiscalYear,
078 String chartOfAccounts,
079 String accountNumber,
080 String subAccountNumber);
081
082 }