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.gl.batch.service;
017    
018    import java.sql.Date;
019    
020    import org.kuali.kfs.coa.businessobject.A21SubAccount;
021    import org.kuali.kfs.coa.businessobject.Account;
022    import org.kuali.kfs.coa.businessobject.AccountingPeriod;
023    import org.kuali.kfs.coa.businessobject.BalanceType;
024    import org.kuali.kfs.coa.businessobject.Chart;
025    import org.kuali.kfs.coa.businessobject.IndirectCostRecoveryType;
026    import org.kuali.kfs.coa.businessobject.ObjectCode;
027    import org.kuali.kfs.coa.businessobject.ObjectLevel;
028    import org.kuali.kfs.coa.businessobject.ObjectType;
029    import org.kuali.kfs.coa.businessobject.OffsetDefinition;
030    import org.kuali.kfs.coa.businessobject.Organization;
031    import org.kuali.kfs.coa.businessobject.ProjectCode;
032    import org.kuali.kfs.coa.businessobject.SubAccount;
033    import org.kuali.kfs.coa.businessobject.SubFundGroup;
034    import org.kuali.kfs.coa.businessobject.SubObjectCode;
035    import org.kuali.kfs.gl.businessobject.AccountBalance;
036    import org.kuali.kfs.gl.businessobject.Balance;
037    import org.kuali.kfs.gl.businessobject.Encumbrance;
038    import org.kuali.kfs.gl.businessobject.Entry;
039    import org.kuali.kfs.gl.businessobject.ExpenditureTransaction;
040    import org.kuali.kfs.gl.businessobject.Reversal;
041    import org.kuali.kfs.gl.businessobject.SufficientFundBalances;
042    import org.kuali.kfs.gl.businessobject.Transaction;
043    import org.kuali.kfs.sys.batch.service.WrappingBatchService;
044    import org.kuali.kfs.sys.businessobject.OriginationCode;
045    import org.kuali.kfs.sys.businessobject.SystemOptions;
046    import org.kuali.kfs.sys.businessobject.UniversityDate;
047    
048    public interface AccountingCycleCachingService extends WrappingBatchService {
049        public boolean isCurrentActiveAccountingDocumentType(String documentTypeCode);
050    
051        public SystemOptions getSystemOptions(Integer fiscalYear);
052    
053        public OriginationCode getOriginationCode(String financialSystemOriginationCode);
054    
055    
056        public Chart getChart(String chartOfAccountsCode);
057    
058        public Account getAccount(String chartCode, String accountNumber);
059    
060        public ObjectCode getObjectCode(Integer universityFiscalYear, String chartOfAccountsCode, String financialObjectCode);
061    
062        public BalanceType getBalanceType(String financialBalanceTypeCode);
063    
064        public ObjectType getObjectType(String financialObjectTypeCode);
065    
066        public SubAccount getSubAccount(String chartOfAccountsCode, String accountNumber, String subAccountNumber);
067    
068        public A21SubAccount getA21SubAccount(String chartOfAccountsCode, String accountNumber, String subAccountNumber);
069    
070        public SubObjectCode getSubObjectCode(Integer universityFiscalYear, String chartOfAccountsCode, String accountNumber, String financialObjectCode, String financialSubObjectCode);
071    
072        public IndirectCostRecoveryType getIndirectCostRecoveryType(String accountIcrTypeCode);
073    
074        public ProjectCode getProjectCode(String projectCode);
075    
076        public AccountingPeriod getAccountingPeriod(Integer fiscalYear, String fiscalPeriodCode);
077    
078        public SubFundGroup getSubFundGroup(String subFundGroupCode);
079    
080        public UniversityDate getUniversityDate(Date date);
081    
082        public OffsetDefinition getOffsetDefinition(Integer universityFiscalYear, String chartOfAccountsCode, String financialDocumentTypeCode, String financialBalanceTypeCode);
083    
084        public Organization getOrganization(String chartOfAccountsCode, String organizationCode);
085    
086        public ObjectLevel getObjectLevel(String chartOfAccountsCode, String financialObjectLevelCode);
087    
088    
089        public int getMaxSequenceNumber(Transaction t);
090    
091    
092        public Balance getBalance(Transaction t);
093    
094        public Encumbrance getEncumbrance(Entry entry);
095    
096        public ExpenditureTransaction getExpenditureTransaction(Transaction t);
097    
098        public SufficientFundBalances getSufficientFundBalances(Integer universityFiscalYear, String chartOfAccountsCode, String accountNumber, String financialObjectCode);
099    
100        public AccountBalance getAccountBalance(Transaction t);
101    
102    
103        public void insertReversal(Reversal reversal);
104    
105        public void insertEntry(Entry entry);
106    
107        public void insertBalance(Balance balance);
108    
109        public void updateBalance(Balance balance);
110    
111        public void insertEncumbrance(Encumbrance encumbrance);
112    
113        public void updateEncumbrance(Encumbrance encumbrance);
114    
115        public void insertExpenditureTransaction(ExpenditureTransaction expenditureTransaction);
116    
117        public void updateExpenditureTransaction(ExpenditureTransaction expenditureTransaction);
118    
119        public void insertSufficientFundBalances(SufficientFundBalances sufficientFundBalances);
120    
121        public void updateSufficientFundBalances(SufficientFundBalances sufficientFundBalances);
122    
123        public void insertAccountBalance(AccountBalance accountBalance);
124    
125        public void updateAccountBalance(AccountBalance accountBalance);
126    }