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.dataaccess; 017 018 019 /** 020 * 021 * provides the data access methods to distribute a set of budget construction general ledger amounts among tweleve monthly periods in a budget 022 * construction monthly budget row with the same key. any rounding errors are added/subtracted from the first monthly period, so the total of the 023 * monthly periods equals the original amount distributed 024 */ 025 public interface BudgetConstructionMonthlyBudgetsCreateDeleteDao { 026 027 /** 028 * 029 * remove the existing revenue monthly budgets for this key 030 * @param documentNumber the budget construction document number 031 * @param fiscalYear the fiscal year for which the budget is being built 032 * @param chartCode 033 * @param accountNumber 034 * @param subAccountNumber 035 */ 036 public void deleteBudgetConstructionMonthlyBudgetsRevenue(String documentNumber, Integer fiscalYear, String chartCode, String accountNumber, String subAccountNumber); 037 038 /** 039 * 040 * remove the existing expenditure monthly budgets for this key 041 * @param documentNumber the budget construction document number 042 * @param fiscalYear the fiscal year for which the budget is being built 043 * @param chartCode 044 * @param accountNumber 045 * @param subAccountNumber 046 */ 047 public void deleteBudgetConstructionMonthlyBudgetsExpenditure(String documentNumber, Integer fiscalYear, String chartCode, String accountNumber, String subAccountNumber); 048 049 /** 050 * 051 * spread the revenue for this key evenly over 12 months, with any remainder mod 12 added to the first month 052 * @param documentNumber the budget construction document number 053 * @param fiscalYear the fiscal year for which the budget is being built 054 * @param chartCode 055 * @param accountNumber 056 * @param subAccountNumber 057 */ 058 public void spreadBudgetConstructionMonthlyBudgetsRevenue(String documentNumber, Integer fiscalYear, String chartCode, String accountNumber, String subAccountNumber); 059 060 /** 061 * 062 * spread the expenditures for this key evenly over 12 months, with any reaminder mod 12 added to the first month 063 * @param documentNumber the budget construction document number 064 * @param fiscalYear the fiscal year for which the budget is being built 065 * @param chartCode 066 * @param accountNumber 067 * @param subAccountNumber 068 * @return true benefits need to be recomputed, false otherwise 069 */ 070 public boolean spreadBudgetConstructionMonthlyBudgetsExpenditure(String documentNumber, Integer fiscalYear, String chartCode, String accountNumber, String subAccountNumber); 071 072 }