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    
020    /**
021     * Provides build methods and file dump services for report dumps.
022     */
023    public interface ReportExportService {
024        
025        /**
026         * Rebuilds the account dump maintenance table.
027         * 
028         * @param principalId - current user who is running the dump
029         */
030        public void updateAccountDump(String principalId);
031        
032        /**
033         * Retrieves records for organization account dump and outputs file based on user preferences
034         * 
035         * @param principalId - current user who is running the dump
036         * @param fieldSeperator - string to seperate fields 
037         * @param textDelimiter - string for text delimiter
038         */
039        public StringBuilder buildOrganizationAccountDumpFile(String principalId, String fieldSeperator, String textDelimiter);
040        
041        /**
042         * Retrieves records for organization monthly dump and outputs file based on user preferences
043         * 
044         * @param principalId - current user who is running the dump
045         * @param fieldSeperator - string to seperate fields 
046         * @param textDelimiter - string for text delimiter
047         */
048        public StringBuilder buildOrganizationMonthlyDumpFile(String principalId, String fieldSeperator, String textDelimiter);
049        
050        /**
051         * Retrieves records for organization funding dump and outputs file based on user preferences
052         * 
053         * @param principalId - current user who is running the dump
054         * @param fieldSeperator - string to seperate fields 
055         * @param textDelimiter - string for text delimiter
056         */
057        public StringBuilder buildOrganizationFundingDumpFile(String principalId, String fieldSeperator, String textDelimiter);
058        
059        /**
060         * Retrieves records for account dump and outputs file based on user preferences
061         * 
062         * @param principalId
063         * @param fieldSeperator
064         * @param textDelimiter
065         * @param universityFiscalYear
066         * @param chartOfAccountsCode
067         * @param accountNumber
068         * @param subAccountNumber
069         * @return
070         */
071        public StringBuilder buildAccountDumpFile(String principalId, String fieldSeperator, String textDelimiter, Integer universityFiscalYear, String chartOfAccountsCode, String accountNumber, String subAccountNumber);
072        
073        /**
074         * Retrieves records for account monthly dump and outputs file based on user preferences
075         * 
076         * @param principalId
077         * @param fieldSeperator
078         * @param textDelimiter
079         * @param universityFiscalYear
080         * @param chartOfAccountsCode
081         * @param accountNumber
082         * @param subAccountNumber
083         * @return
084         */
085        public StringBuilder buildAccountMonthlyDumpFile(String principalId, String fieldSeperator, String textDelimiter, Integer universityFiscalYear, String chartOfAccountsCode, String accountNumber, String subAccountNumber);
086        
087        /**
088         * Retrieves records for organization funding dump and outputs file based on user preferences
089         * 
090         * @param principalId
091         * @param fieldSeperator
092         * @param textDelimiter
093         * @param universityFiscalYear
094         * @param chartOfAccountsCode
095         * @param accountNumber
096         * @param subAccountNumber
097         * @return
098         */
099        public StringBuilder buildAccountFundingDumpFile(String principalId, String fieldSeperator, String textDelimiter, Integer universityFiscalYear, String chartOfAccountsCode, String accountNumber, String subAccountNumber);
100    }
101