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.batch.dataaccess;
017    
018    import java.util.Map;
019    
020    public interface GenesisDao {
021    
022        /*
023         * return a map of values for the budget construction control flags for the fiscal year (flag name, flag value)
024         */
025        public Map<String, String> getBudgetConstructionControlFlags(Integer universityFiscalYear);
026    
027        /*
028         * fetch the fiscal year corresponding to today's date
029         */
030        public Integer fiscalYearFromToday();
031    
032        /*
033         * check the value of a specific budget construction control flag (on = true, off = false)
034         */
035        public boolean getBudgetConstructionControlFlag(Integer universityFiscalYear, String FlagID);
036    
037        // clear locks in headers
038        public void clearHangingBCLocks(Integer currentFiscalYear);
039    
040        // control flags
041        public void setControlFlagsAtTheStartOfGenesis(Integer currentFiscalYear);
042    
043        public void setControlFlagsAtTheEndOfGenesis(Integer currentFiscalYear);
044    
045        // chart and organization hierarchy
046        public void createChartForNextBudgetCycle();
047    
048        public void rebuildOrganizationHierarchy(Integer currentFiscalYear);
049    
050        // intialization for genesis
051        public void clearDBForGenesis(Integer BaseYear);
052    
053        // pending budget construction general ledger
054        public void ensureObjectClassRIForBudget(Integer BaseYear);
055    
056        public void initialLoadToPBGL(Integer currentFiscalYear);
057    
058        public void updateToPBGL(Integer currentFiscalYear);
059    
060        public Map verifyAccountsAreAccessible(Integer requestFiscalYear);
061    
062        // document creation
063        // create document with embedded workflow
064        public void createNewBCDocumentsFromGLCSF(Integer BaseYear, boolean GLUpdatesAllowed, boolean CSFUpdatesAllowed);
065    
066        // budget construction CSF and budget construction appointment funding
067        public void buildAppointmentFundingAndBCSF(Integer BaseYear);
068    
069    }