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 interface defines the methods that perform Pullup or Pushdown operations on Budget Construction Documents.
020     */
021    public interface BudgetPushPullService {
022        
023        /**
024         * Pulls up Budget Construction documents based on user selected Organizations and the current point of view Organization
025         * on the Organization Selection screen running in Pullup mode. 
026         * 
027         * @param principalId
028         * @param FiscalYear
029         * @param pointOfViewCharOfAccountsCode
030         * @param pointOfViewOrganizationCode
031         */
032        public void pullupSelectedOrganizationDocuments(String principalId, Integer FiscalYear, String pointOfViewCharOfAccountsCode, String pointOfViewOrganizationCode);
033    
034        /**
035         * Pushes down Budget Construction documents based on user selected Organizations and the current point of view Organization
036         * on the Organization Selection screen running in Pushdown mode. 
037         * 
038         * @param principalId
039         * @param FiscalYear
040         * @param pointOfViewCharOfAccountsCode
041         * @param pointOfViewOrganizationCode
042         */
043        public void pushdownSelectedOrganizationDocuments(String principalId, Integer FiscalYear, String pointOfViewCharOfAccountsCode, String pointOfViewOrganizationCode);
044        
045        /**
046         * Builds list of budget documents that are in the selected organizations and above the user's point of view. Called from the Org Pull Up screen to display the documents
047         * that will be affected by the pull up.
048         * 
049         * @param principalId current user doing the pullup
050         * @param FiscalYear budget fiscal year
051         * @param pointOfViewCharOfAccountsCode user's point of view chart
052         * @param pointOfViewOrganizationCode user's point of view org
053         * @return int number of rows affected (number of documents)
054         */
055        public int buildPullUpBudgetedDocuments(String principalId, Integer FiscalYear, String pointOfViewCharOfAccountsCode, String pointOfViewOrganizationCode);
056        
057        /**
058         * Builds list of budget documents that are in the selected organizations and at the user's point of view. Called from the Org Push Down screen to display the documents
059         * that will be affected by the push down.
060         * 
061         * @param principalId current user doing the pushdown
062         * @param FiscalYear budget fiscal year
063         * @param pointOfViewCharOfAccountsCode user's point of view chart
064         * @param pointOfViewOrganizationCode user's point of view org
065         * @return int number of rows affected (number of documents)
066         */
067        public int buildPushDownBudgetedDocuments(String principalId, Integer FiscalYear, String pointOfViewCharOfAccountsCode, String pointOfViewOrganizationCode);
068    
069    }
070