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 }